Ich versuche, ein Mixed-Effects-Modell anzupassen und dann dieses Modell zu verwenden, um Schätzungen für ein neues Dataset zu generieren, das verschiedene Ebenen haben kann. Ich erwartete, dass die Schätzungen für einen neuen Datensatz den Mittelwert der geschätzten Parameter verwenden würden, aber das scheint nicht der Fall zu sein. Hier ist ein Mindestarbeitsbeispiel:Vorhersage mit lme4 auf neuen Ebenen
library(lme4)
d = data.frame(x = rep(1:10, times = 3),
y = NA,
grp = rep(1:3, each = 10))
d$y[d$grp == 1] = 1:10 + rnorm(10)
d$y[d$grp == 2] = 1:10 * 1.5 + rnorm(10)
d$y[d$grp == 3] = 1:10 * 0.5 + rnorm(10)
fit = lmer(y ~ (1+x)|grp, data = d)
newdata = data.frame(x = 1:10, grp = 4)
predict(fit, newdata = newdata, allow.new.levels = TRUE)
In diesem Beispiel, ich bin im Wesentlichen, die drei Gruppen mit unterschiedlichen Regressionsgleichungen (Steigungen von 1, 1,5 und 0,5). Wenn ich jedoch versuche, einen neuen Datensatz mit einem ungesehenen Wert vorherzusagen, bekomme ich eine konstante Schätzung. Ich hätte erwartet, dass der erwartete Wert der Steigung und des Abschnitts verwendet wird, um Vorhersagen für diese neuen Daten zu erstellen. Erwarte ich das Falsche? Oder, was mache ich falsch mit meinem Code?
Ich glaube, 'predict.merMod' verwendet nur die Koeffizienten aus den Teilen der festen Effekte des Modells für neue Ebenen. 'y ~ x + (x | grp)' ist eine sinnvollere Modellspezifikation. – Roland
Ah, das macht Sinn! Wenn Sie das als Antwort hinzufügen, akzeptiere ich es. –