Я пытаюсь подогнать под модель смешанных эффектов, а затем использовать эту модель для создания оценок для нового набора данных, который может иметь разные уровни. Я ожидал, что оценки нового набора данных будут использовать среднее значение оцененных параметров, но, похоже, это не так. Вот минимальный рабочий пример:
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)
В этом примере я, по сути, определяю три группы с разными уравнениями регрессии (наклон 1, 1,5 и 0,5). Однако, когда я пытаюсь предсказать новый набор данных с невидимым уровнем, я получаю постоянную оценку. Я ожидал, что ожидаемое значение наклона и точки пересечения будет использоваться для создания прогнозов для этих новых данных. Я жду не того? Или что я делаю не так со своим кодом?
predict.merMod
просто использует коэффициенты из частей модели с фиксированными эффектами для новых уровней.y ~ x + (x|grp)
- более разумная спецификация модели. - person Roland   schedule 25.03.2015