Dies ist eher eine konzeptionelle Frage, aber während ich sie verwende, werde R
ich auf die Pakete in verweisen R
. Wenn das Ziel darin besteht, ein lineares Modell für Vorhersagezwecke anzupassen und dann Vorhersagen zu treffen, bei denen die zufälligen Effekte möglicherweise nicht verfügbar sind, hat die Verwendung eines Modells mit gemischten Effekten einen Vorteil, oder sollte stattdessen ein Modell mit festen Effekten verwendet werden?
Wenn ich zum Beispiel Daten zu Gewicht und Größe mit einigen anderen Informationen habe und das folgende Modell mit verwende lme4
, wobei das Subjekt ein Faktor mit Ebenen ist ( ):n = n o . s a m p l e s
mod1 <- lmer(weight ~ height + age + (1|subject), data=df, REML=F)
Dann möchte ich in der Lage sein, das Gewicht des Modells anhand neuer Größen- und Altersdaten vorherzusagen. Natürlich wird die Varianz nach Subjekten in den Originaldaten im Modell erfasst. Ist es jedoch möglich, diese Informationen für die Vorhersage zu verwenden? Angenommen, ich habe einige neue Daten zu Größe und Alter und möchte das Gewicht vorhersagen. Ich kann dies wie folgt tun:
predict(mod1,newdata=newdf) # newdf columns for height, age, subject
Dies wird verwendet predict.merMod
, und ich kann entweder eine Spalte für (neue) Themen einfügen newdf
oder festlegen re.form =~0
. In erster Linie ist nicht klar, was das Modell mit den "neuen" Subjektfaktoren macht, und in der zweiten Instanz wird die im Modell erfasste Varianz nach Subjekten für die Vorhersage einfach ignoriert (gemittelt)?
In beiden Fällen scheint mir ein lineares Modell mit festem Effekt geeigneter zu sein. Wenn mein Verständnis korrekt ist, sollte ein Modell mit festem Effekt dieselben Werte wie das gemischte Modell vorhersagen, wenn der zufällige Effekt nicht für die Vorhersage verwendet wird. Sollte dies der Fall sein? Darin R
ist zum Beispiel nicht:
mod1 <- lmer(weight ~ height + age + (1|subject), data=df, REML=F)
predict(mod1,newdata=newdf, re.form=~0) # newdf columns for height, age, subject
liefert unterschiedliche Ergebnisse für:
mod2 <- lm(weight ~ height + age, data=df)
predict(mod2,newdata=newdf) # newdf columns for height, age