Yönetici Özeti
Gerçekten de, tüm olası faktör seviyeleri karışık bir modele dahil edilirse, bu faktörün sabit bir etki olarak ele alınması gerektiği sıklıkla söylenir. Bu, İKİ İLÇE NEDENİ için mutlaka doğru değildir:
(1) Seviye sayısı büyükse, [çarpı] faktöre rastgele davranmak mantıklı olabilir .
Hem @Tim hem de @RobertLong ile burada hemfikirim: bir faktörün modelde yer alan çok sayıda düzeyi varsa (örneğin dünyadaki tüm ülkeler; veya bir ülkedeki tüm okullar; veya belki de tüm nüfus konular araştırılır, vb.), o zaman rastgele muamele ile ilgili yanlış bir şey yoktur - bu daha cimri olabilir, bazı büzülme sağlayabilir, vb.
lmer(size ~ age + subjectID) # fixed effect
lmer(size ~ age + (1|subjectID)) # random effect
(2) Faktör başka bir rastgele etki içinde iç içe geçmişse, düzey sayısından bağımsız olarak rastgele muamele edilmelidir.
Bu konuda büyük bir karışıklık vardı (yorumlara bakın), çünkü diğer cevaplar yukarıdaki durum # 1 ile ilgilidir, ancak verdiğiniz örnek farklı bir duruma, yani bu durum # 2'ye bir örnektir . Burada sadece iki seviye vardır (yani "çok sayıda" yoktur!) Ve tüm olasılıkları tüketirler, ancak başka bir rastgele etkinin içine yerleştirilirler ve iç içe rastgele bir etki verirler .
lmer(size ~ age + (1|subject) + (1|subject:side) # side HAS to be random
Örneğinizin ayrıntılı tartışması
Hayali denemenizdeki taraflar ve konular, standart hiyerarşik model örneğindeki sınıflar ve okullar ile ilişkilidir. Belki de her okulun (# 1, # 2, # 3 vb.) A sınıfı ve B sınıfı vardır ve bu iki sınıfın kabaca aynı olması gerekir. A ve B sınıflarını iki seviyeli sabit bir etki olarak modellemeyeceksiniz; bu bir hata olur. Ancak A ve B sınıflarını iki seviyeli "ayrı" (yani çaprazlanmış) rastgele bir etki olarak modellemeyeceksiniz; bu da bir hata olur. Bunun yerine, sınıfları okullarda iç içe rastgele bir etki olarak modellersiniz .
Buraya bakın: Çapraz ve iç içe rastgele efektler: nasıl farklıdırlar ve lme4'te nasıl doğru belirtilirler?
i=1…nj=1,2
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+ϵi+ϵij+ϵijk
ϵi∼N(0,σ2subjects),Random intercept for each subject
ϵij∼N(0,σ2subject-side),Random int. for side nested in subject
ϵijk∼N(0,σ2noise),Error term
Kendiniz yazdığınız gibi, "sağ ayakların ortalama olarak sol ayaklardan daha büyük olacağına inanmak için hiçbir neden yoktur". Bu nedenle, sağ veya sol ayağın hiçbir "küresel" etkisi (sabit veya rastgele çapraz) olmamalıdır; bunun yerine her öznenin "bir" ayağı ve "başka bir ayağı" olduğu düşünülebilir ve bu değişkenlik modele dahil edilmelidir. Bu "bir" ve "başka" ayaklar özneler içinde yuvalanmıştır, dolayısıyla yuvalanmış rastgele etkiler.
Yorumlara yanıt olarak daha fazla ayrıntı. [Eyl 26]
Yukarıdaki model, Side'yi Konular içinde iç içe rastgele bir efekt olarak içerir. İşte @Robert tarafından önerilen, Side'nin sabit bir efekt olduğu alternatif bir model:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+δ⋅Sidej+ϵi+ϵijk
ij
Olamaz.
Aynı şey @ gung'un Side'yi çapraz rastgele efekt olarak varsayımsal modeli için de geçerlidir:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+ϵi+ϵj+ϵijk
Bağımlılıkları da hesaba katmıyor.
Simülasyon yoluyla gösterim [2 Eki]
İşte R'de doğrudan bir gösteri.
Art arda beş yıl boyunca her iki ayağın üzerinde ölçülen beş süje ile bir oyuncak veri seti oluşturuyorum. Yaşın etkisi doğrusaldır. Her öznenin rastgele bir kesmesi vardır. Ve her bir öznenin ayaklarından biri (sol veya sağ) diğerinden daha büyüktür.
set.seed(17)
demo = data.frame(expand.grid(age = 1:5,
side=c("Left", "Right"),
subject=c("Subject A", "Subject B", "Subject C", "Subject D", "Subject E")))
demo$size = 10 + demo$age + rnorm(nrow(demo))/3
for (s in unique(demo$subject)){
# adding a random intercept for each subject
demo[demo$subject==s,]$size = demo[demo$subject==s,]$size + rnorm(1)*10
# making the two feet of each subject different
for (l in unique(demo$side)){
demo[demo$subject==s & demo$side==l,]$size = demo[demo$subject==s & demo$side==l,]$size + rnorm(1)*7
}
}
plot(1:50, demo$size)
Korkunç R yeteneklerim için özür dilerim. Veriler şöyle görünür (birbirini takip eden beş nokta, yıllar boyunca ölçülen bir kişinin bir ayağıdır; her ardışık on nokta aynı kişinin iki ayağıdır):
Şimdi bir grup modele uyabiliriz:
require(lme4)
summary(lmer(size ~ age + side + (1|subject), demo))
summary(lmer(size ~ age + (1|side) + (1|subject), demo))
summary(lmer(size ~ age + (1|subject/side), demo))
Tüm modeller, sabit bir etkisi age
ve rastgele bir etkisini içerir subject
, ancak side
farklı davranır .
side
age
t=1.8
side
age
t=1.4
side
age
t=37
Bu açıkça side
iç içe rastgele bir etki olarak ele alınması gerektiğini göstermektedir .
Son olarak, yorumlarda @Robert side
bir kontrol değişkeni olarak küresel etkisini eklemeyi önerdi . İç içe rastgele efekti korurken yapabiliriz:
summary(lmer(size ~ age + side + (1|subject/side), demo))
summary(lmer(size ~ age + (1|side) + (1|subject/side), demo))
side
t=0.5side