Próbuję dopasować model efektów mieszanych, a następnie użyć tego modelu do wygenerowania szacunków dla nowego zestawu danych, który może mieć różne poziomy. Spodziewałem się, że szacunki dotyczące nowego zestawu danych wykorzystają średnią wartość oszacowanych parametrów, ale wydaje się, że tak nie jest. Oto przykład minimalna pracy:Prognozy z lme4 na nowych poziomach
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)
W tym przykładzie, ja zasadniczo zdefiniowania trzech grup z różnymi równania regresji (zboczach 1, 1,5 i 0,5). Jednak gdy próbuję przewidzieć nowy zestaw danych z niewidocznym poziomem, otrzymuję stałą wartość szacunkową. Spodziewałbym się, że oczekiwana wartość nachylenia i przechwycenia zostanie wykorzystana do wygenerowania prognoz dla tych nowych danych. Czy oczekuję niewłaściwej rzeczy? Albo, co robię źle z moim kodem?
Wierzę, że 'predict.merMod' po prostu używa współczynników ze stałych części efektów dla nowych poziomów. 'y ~ x + (x | grp)' jest bardziej sensowną specyfikacją modelu. – Roland
Ach, to ma sens! Jeśli dodasz to jako odpowiedź, zaakceptuję to. –