In lmer
içindeki işlevi lme4
de R
rastgele etkileri modeli matris oluşturmak için bir çağrı var olarak açıklanabilir, burada , sayfalar 7-9.
hesaplanması ve üzere iki matrisin KhatriRao ve / veya Kronecker ürünlerini gerektirir . J i X i
matrisi bir ağız : "Gruplama faktörü indekslerinin gösterge matrisi", ancak daha yüksek hiyerarşik seviyelere karşılık gelen birimi seçmek için kukla kodlamaya sahip seyrek bir matris gibi görünüyor (örneğin, tekrarlayan ölçümlerdeki özneler) herhangi bir gözlem. matrikstir "seçiciler" kombinasyonu, bir matris doğuracak böylece, alt hiyerarşik düzeyde ölçümlerin bir seçici olarak hareket ediyor gibi görünmektedir aşağıdaki örnekte ile kağıt gösterilen formun:X i Z i
(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
Bu matrislerin her birinin transpozisyonu ve bir Khatri-Rao çarpımı:
Ama bunun aktarımıdır:
(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
Bu yazarlar veritabanı faydalanmak çıkıyor sleepstudy
içinde lme4
, ancak bu özel çalışma için de geçerlidir olarak gerçekten tasarım matrisleri üzerinde durmak yok. Bu yüzden, yukarıda çoğaltılmış makaledeki uydurma kodun nasıl daha anlamlı bir sleepstudy
örneğe dönüşeceğini anlamaya çalışıyorum .
Görsel sadelik için veri setini sadece üç nesneye indirdim - "309", "330" ve "371":
require(lme4)
sleepstudy <- sleepstudy[sleepstudy$Subject %in% c(309, 330, 371), ]
rownames(sleepstudy) <- NULL
Basit bir OLS regresyonunun ayrı ayrı ele alınması durumunda her birey çok farklı bir kesişme ve eğim sergileyecek ve bu da konulara karşılık gelen daha yüksek hiyerarşiye veya birim seviyesine sahip karışık etkili bir modele ihtiyaç olduğunu düşündürmektedir:
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)
}
Karma efekt regresyon çağrısı:
fm1<-lmer(Reaction~Days+(Days|Subject), sleepstudy)
Ve fonksiyondan çıkarılan matris aşağıdakileri verir:
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
Bu doğru görünüyor, ama öyleyse, arkasında lineer cebir nedir? Anladığım kadarıyla, insanların 1
bireylerin seçimi olma sıraları . Örneğin, konu 309
temel + dokuz gözlem için açıktır, bu yüzden dört tane 1
vb. İkinci bölüm açıkça gerçek ölçümdür: 0
başlangıç 1
için, uyku yoksunluğunun ilk günü için, vb.
Ancak gerçek ve matrisleri ve karşılık gelen veya , hangisi uygun mu?X i Z i = ( J T i ∗ X T i ) ⊤ Z i = ( J T i ⊗ X T i ) ⊤
İşte bir olasılık,
Sorun, lmer
fonksiyonun çağırdığı gibi transpoze olmaması ve hala oluşturmak için kuralların ne olduğu belirsizdir .
mkZt()
( burada arayın ) iyi bir başlangıç mıdır?