【发布时间】:2015-03-25 15:22:48
【问题描述】:
我正在尝试拟合混合效应模型,然后使用该模型对可能具有不同级别的新数据集生成估计值。我预计对新数据集的估计将使用估计参数的平均值,但似乎并非如此。这是一个最小的工作示例:
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)是更明智的模型规范。 -
啊,有道理!如果您将其添加为答案,我会接受。
标签: r prediction lme4 mixed-models random-effects