Streszczenie wykonawcze
Rzeczywiście często mówi się, że jeśli wszystkie możliwe poziomy czynników są uwzględnione w modelu mieszanym, to czynnik ten należy traktować jako efekt stały. To niekoniecznie jest DOTYCZĄCE DWÓCH ROZRÓŻNYCH POWODÓW:
(1) Jeśli liczba poziomów jest duża, sensowne może być potraktowanie czynnika [skrzyżowanego] jako losowego.
Zgadzam się z @Tim i @RobertLong tutaj: jeśli czynnik ma dużą liczbę poziomów, które wszystkie są uwzględnione w modelu (np. Wszystkie kraje na świecie; lub wszystkie szkoły w kraju; a może cała populacja badani są badani itp.), wtedy nie ma nic złego w traktowaniu go jako losowego --- może to być bardziej oszczędne, może powodować pewien skurcz itp.
lmer(size ~ age + subjectID) # fixed effect
lmer(size ~ age + (1|subjectID)) # random effect
(2) Jeśli czynnik jest zagnieżdżony w innym losowym efekcie, należy go traktować jako losowy, niezależnie od liczby poziomów.
W tym wątku było ogromne zamieszanie (patrz komentarze), ponieważ inne odpowiedzi dotyczą przypadku nr 1 powyżej, ale podany przez ciebie przykład jest przykładem innej sytuacji, mianowicie tego przypadku nr 2. Tutaj są tylko dwa poziomy (tj. Wcale nie „duża liczba”!) I wyczerpują wszystkie możliwości, ale są zagnieżdżone w innym losowym efekcie , dając zagnieżdżony efekt losowy.
lmer(size ~ age + (1|subject) + (1|subject:side) # side HAS to be random
Szczegółowa dyskusja twojego przykładu
Strony i przedmioty w twoim wyimaginowanym eksperymencie są powiązane jak klasy i szkoły w standardowym przykładzie modelu hierarchicznego. Być może każda szkoła (# 1, # 2, # 3 itd.) Ma klasę A i klasę B, a te dwie klasy powinny być mniej więcej takie same. Nie będziesz modelować klas A i B jako stałego efektu z dwoma poziomami; to byłby błąd. Nie będziesz jednak modelować klas A i B jako „osobnego” (tj. Skrzyżowanego) efektu losowego z dwoma poziomami; to też byłby błąd. Zamiast tego zamodelujesz klasy jako zagnieżdżony efekt losowy w szkołach.
Zobacz tutaj: Skrzyżowane vs zagnieżdżone efekty losowe: czym się różnią i jak są poprawnie określone w lme4?
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
Jak sam napisałeś, „nie ma powodu, aby sądzić, że prawa stopa będzie średnio większa niż lewa”. Zatem nie powinno być żadnego „globalnego” efektu (ani stałego, ani losowego skrzyżowania) prawej lub lewej stopy; zamiast tego można pomyśleć o tym, że każdy ma stopę „jedną” i „drugą”, a tę zmienność powinniśmy uwzględnić w modelu. Te „jedna” i „druga” stopa są zagnieżdżone w podmiotach, stąd zagnieżdżone efekty losowe.
Więcej szczegółów w odpowiedzi na komentarze. [26 września]
Mój model powyżej zawiera Side jako zagnieżdżony efekt losowy w Tematach. Oto alternatywny model, sugerowany przez @Robert, w którym Side jest stałym efektem:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+δ⋅Sidej+ϵi+ϵijk
ij
Nie może
To samo dotyczy hipotetycznego modelu @ gung z Side jako efektem losowym skrzyżowania:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+ϵi+ϵj+ϵijk
Nie uwzględnia również zależności.
Demonstracja za pomocą symulacji [2 października]
Oto bezpośrednia demonstracja w języku R.
Generuję zestaw danych zabawek z pięcioma badanymi mierzonymi na obu stopach przez pięć kolejnych lat. Wpływ wieku jest liniowy. Każdy obiekt ma losowy punkt przechwytywania. I każdy obiekt ma jedną stopę (lewą lub prawą) większą od drugiej.
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)
Przepraszamy za moje okropne umiejętności R. Oto jak wyglądają dane (każda kolejna pięć kropek to jedna stopa jednej osoby mierzona na przestrzeni lat; każda kolejna dziesięć kropek to dwie stopy tej samej osoby):
Teraz możemy zmieścić kilka modeli:
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))
Wszystkie modele mają ustalony efekt age
losowy i efekt losowy subject
, ale traktują side
inaczej.
side
age
t=1.8
side
age
t=1.4
side
age
t=37
To wyraźnie pokazuje, że side
należy je traktować jako zagnieżdżony efekt losowy.
Wreszcie w komentarzach @Robert zasugerował uwzględnienie globalnego efektu side
jako zmiennej kontrolnej. Możemy to zrobić, zachowując zagnieżdżony efekt losowy:
summary(lmer(size ~ age + side + (1|subject/side), demo))
summary(lmer(size ~ age + (1|side) + (1|subject/side), demo))
Te dwa modele niewiele różnią się od # 3. Model 4 daje niewielki i nieznaczny stały efekt side
(t=0.5side