Zusammenfassung
Es wird in der Tat oft gesagt, dass, wenn alle möglichen Faktorstufen in einem gemischten Modell enthalten sind, dieser Faktor als fester Effekt behandelt werden sollte. Dies gilt nicht unbedingt AUS ZWEI EINZIGARTIGEN GRÜNDEN:
(1) Wenn die Anzahl der Ebenen groß ist, kann es sinnvoll sein, den [gekreuzten] Faktor als zufällig zu behandeln.
Ich stimme hier sowohl mit @Tim als auch mit @RobertLong überein: Wenn ein Faktor eine große Anzahl von Ebenen hat, die alle in das Modell einbezogen sind (wie z. B. alle Länder der Welt; oder alle Schulen in einem Land; oder vielleicht die gesamte Bevölkerung von Probanden werden befragt, usw.), dann ist nichts falsch daran, sie als zufällig zu behandeln - dies könnte sparsamer sein, könnte zu einer gewissen Schrumpfung führen, usw.
lmer(size ~ age + subjectID) # fixed effect
lmer(size ~ age + (1|subjectID)) # random effect
(2) Wenn der Faktor in einem anderen zufälligen Effekt verschachtelt ist, muss er unabhängig von der Anzahl der Ebenen als zufällig behandelt werden.
In diesem Thread gab es eine große Verwirrung (siehe Kommentare), da sich andere Antworten auf den obigen Fall Nr. 1 beziehen, aber das Beispiel, das Sie gegeben haben, ist ein Beispiel für eine andere Situation, nämlich diesen Fall Nr. 2. Hier gibt es nur zwei Ebenen (dh überhaupt nicht "eine große Zahl"!) Und sie erschöpfen alle Möglichkeiten, aber sie sind in einem anderen Zufallseffekt verschachtelt, was zu einem verschachtelten Zufallseffekt führt.
lmer(size ~ age + (1|subject) + (1|subject:side) # side HAS to be random
Detaillierte Diskussion Ihres Beispiels
Seiten und Themen in Ihrem imaginären Experiment sind wie Klassen und Schulen im Standardbeispiel für hierarchische Modelle verwandt. Vielleicht hat jede Schule (Nr. 1, Nr. 2, Nr. 3 usw.) Klasse A und Klasse B, und diese beiden Klassen sollten ungefähr gleich sein. Sie werden die Klassen A und B nicht als festen Effekt mit zwei Ebenen modellieren. Das wäre ein Fehler. Sie werden die Klassen A und B jedoch auch nicht als "getrennten" (dh gekreuzten) Zufallseffekt mit zwei Ebenen modellieren. Das wäre auch ein Fehler. Stattdessen modellieren Sie Klassen als verschachtelten Zufallseffekt in Schulen.
Siehe hier: Gekreuzte versus verschachtelte zufällige Effekte: Wie unterscheiden sie sich und wie werden sie in lme4 korrekt angegeben?
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
Wie Sie selbst geschrieben haben, "gibt es keinen Grund zu der Annahme, dass die rechten Füße im Durchschnitt größer sind als die linken Füße". Es sollte also überhaupt keinen "globalen" Effekt (weder fest noch zufällig gekreuzt) des rechten oder linken Fußes geben. Stattdessen kann man sich vorstellen, dass jedes Subjekt "einen" Fuß und "einen anderen" Fuß hat, und diese Variabilität sollten wir in das Modell einbeziehen. Diese "einen" und "anderen" Füße sind in Subjekten verschachtelt, daher verschachtelte zufällige Effekte.
Weitere Details in Antwort auf die Kommentare. [26. September]
In meinem obigen Modell ist Side als verschachtelter Zufallseffekt in Subjects enthalten. Hier ist ein alternatives Modell, vorgeschlagen von @Robert, bei dem Side ein fester Effekt ist:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+δ⋅Sidej+ϵi+ϵijk
ij
Es kann nicht.
Gleiches gilt für @ gungs hypothetisches Modell mit Side als gekreuztem Zufallseffekt:
Sizeijk=μ+α⋅Heightijk+β⋅Weightijk+γ⋅Ageijk+ϵi+ϵj+ϵijk
Abhängigkeiten werden nicht berücksichtigt.
Demonstration über eine Simulation [2. Oktober]
Hier ist eine direkte Demonstration in R.
Ich erstelle einen Spielzeugdatensatz mit fünf Probanden, die fünf Jahre lang an beiden Füßen gemessen wurden. Der Effekt des Alters ist linear. Jedes Subjekt hat einen zufälligen Schnittpunkt. Und jedes Motiv hat einen Fuß (entweder den linken oder den rechten), der größer ist als der andere.
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)
Entschuldigung für meine schrecklichen R-Fähigkeiten. So sehen die Daten aus (jeweils fünf aufeinanderfolgende Punkte entsprechen einem Fuß einer Person im Laufe der Jahre; jeweils zehn aufeinanderfolgende Punkte entsprechen zwei Fuß derselben Person):
Jetzt können wir eine Reihe von Modellen passen:
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))
Alle Modelle enthalten einen festen Effekt von age
und einen zufälligen Effekt von subject
, werden jedoch side
unterschiedlich behandelt .
side
age
t=1.8
side
age
t=1.4
side
age
t=37
Dies zeigt deutlich, dass side
dies als verschachtelter Zufallseffekt behandelt werden sollte.
Schließlich schlug @Robert in den Kommentaren vor, den globalen Effekt von side
als Steuervariable aufzunehmen . Wir können es tun, während wir den verschachtelten Zufallseffekt beibehalten:
summary(lmer(size ~ age + side + (1|subject/side), demo))
summary(lmer(size ~ age + (1|side) + (1|subject/side), demo))
side
t = 0,5side