我正在尝试拟合混合效应模型,然后使用该模型对可能具有不同级别的新数据集生成估计。我预计对新数据集的估计将使用估计参数的平均值,但似乎并非如此。这是一个最小的工作示例:
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)的组。然而,当我尝试在一个未知级别的新数据集上进行预测时,我得到了一个恒定的估计值。我本来希望斜率和截距的预期值用于生成对这些新数据的预测。我期待错了吗?或者,我的代码做错了什么?