ではlmer
内機能lme4
でR
ランダム効果のモデル行列を構築するための呼び出しがあり、、のように説明し、ここ 9 -ページ7。
計算には、2つの行列および KhatriRaoおよび/またはKronecker積が伴います。
マトリックスは一口です:「グループ化因子インデックスのインジケーターマトリックス」ですが、より高い階層レベルに対応するユニット(たとえば、反復測定の対象)を選択するためのダミーコーディングを持つスパースマトリックスのようです。観察。マトリックスが共に「セレクタ」の組み合わせは、マトリックスを生じるように、下位階層での測定のセレクタとして機能するように思われ、形態の以下の例を介して紙に示します:
(f<-gl(3,2))
[1] 1 1 2 2 3 3
Levels: 1 2 3
(Ji<-t(as(f,Class="sparseMatrix")))
6 x 3 sparse Matrix of class "dgCMatrix"
1 2 3
[1,] 1 . .
[2,] 1 . .
[3,] . 1 .
[4,] . 1 .
[5,] . . 1
[6,] . . 1
(Xi<-cbind(1,rep.int(c(-1,1),3L)))
[,1] [,2]
[1,] 1 -1
[2,] 1 1
[3,] 1 -1
[4,] 1 1
[5,] 1 -1
[6,] 1 1
これらの各行列を転置し、Khatri-Rao乗算を実行します。
しかし、はその転置です。
(Zi<-t(KhatriRao(t(Ji),t(Xi))))
6 x 6 sparse Matrix of class "dgCMatrix"
[1,] 1 -1 . . . .
[2,] 1 1 . . . .
[3,] . . 1 -1 . .
[4,] . . 1 1 . .
[5,] . . . . 1 -1
[6,] . . . . 1 1
作者はでデータベースを利用していますsleepstudy
がlme4
、この特定の研究に適用されるため、設計マトリックスについては詳しく説明していません。だから私は、上で再現された紙の構成されたコードがどのようにより意味のあるsleepstudy
例に翻訳されるかを理解しようとしています。
見やすくするために、データセットを「309」、「330」、「371」の3つのサブジェクトに減らしました。
require(lme4)
sleepstudy <- sleepstudy[sleepstudy$Subject %in% c(309, 330, 371), ]
rownames(sleepstudy) <- NULL
単純なOLS回帰を個別に検討した場合、各個人は非常に異なる切片と傾きを示し、被験者に対応するより高い階層または単位レベルの混合効果モデルの必要性を示唆します。
par(bg = 'peachpuff')
plot(1,type="n", xlim=c(0, 12), ylim=c(200, 360),
xlab='Days', ylab='Reaction')
for (i in sleepstudy$Subject){
fit<-lm(Reaction ~ Days, sleepstudy[sleepstudy$Subject==i,])
lines(predict(fit), col=i, lwd=3)
text(x=11, y=predict(fit, data.frame(Days=9)), cex=0.6,labels=i)
}
混合効果回帰の呼び出しは次のとおりです。
fm1<-lmer(Reaction~Days+(Days|Subject), sleepstudy)
そして、関数から抽出された行列は次のようになります。
parsedFormula<-lFormula(formula= Reaction~Days+(Days|Subject),data= sleepstudy)
parsedFormula$reTrms
$Ztlist
$Ztlist$`Days | Subject`
6 x 12 sparse Matrix of class "dgCMatrix"
309 1 1 1 1 1 1 1 1 1 1 . . . . . . . . . . . . . . . . . . . .
309 0 1 2 3 4 5 6 7 8 9 . . . . . . . . . . . . . . . . . . . .
330 . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1 . . . . . . . . . .
330 . . . . . . . . . . 0 1 2 3 4 5 6 7 8 9 . . . . . . . . . .
371 . . . . . . . . . . . . . . . . . . . . 1 1 1 1 1 1 1 1 1 1
371 . . . . . . . . . . . . . . . . . . . . 0 1 2 3 4 5 6 7 8 9
これは正しいように見えますが、正しい場合、その背後にある線形代数とは何ですか?の行が1
好きな個人の選択であることを理解しています。たとえば、サブジェクト309
はベースライン+ 9つの観測でオンになっているので、4 1
が続きます。2番目の部分は明らかに実際の測定値です。0
ベースライン、1
睡眠不足の初日などです。
実際何 と行列および対応又は、方適切ですか?
ここに可能性があります、
問題は、lmer
関数が要求しているように転置されておらず、を作成するためのルールがまだ不明であることです。