R中线性混合模型的预测

Prediction in a linear mixed model in R

考虑 lme4 包中的 sleepstudy 数据,如下所示。包含 18 名受试者,他们在不同的日子重复测量 Reaction(Reaction 是响应)。

library("lme4")
head(sleepstudy)
  Reaction Days Subject
1 249.5600    0     308
2 258.7047    1     308
3 250.8006    2     308
4 321.4398    3     308
5 356.8519    4     308
6 414.6901    5     308

以下代码拟合具有随机截距的线性混合模型。

fit1 = lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy)

我们可以使用“ranef(fit1)”获得特定主题的随机截距。此外,可以使用“predict(fit1)”来预测原始数据中所有时间点的响应。

但是,我想预测 R 中 18 名受试者在第 12 天和第 14 天的反应(反应)(第 12 天和第 14 天不在原始数据中,但想做一个反应预测)。 也就是说,我最终应该得到一个看起来像这样的数据集。

 Days  Subject  Predicted_Response
  12     308        
  12     309
  ...
  12     371
  12     372

  14     308        
  14     309
  ...
  14     371
  14     372

我们可以使用 predict 方法的“newdata”参数来实现:

library("lme4")
fit1 = lmer(Reaction ~ Days + (1 | Subject), data = sleepstudy)
newdata <- expand.grid(
  Days = c(12, 14),
  Subject = unique(sleepstudy$Subject)
)

newdata$Predicted_Response <- predict(fit1, newdata = newdata)

   Days Subject Predicted_Response
1    12     308           417.7962
2    14     308           438.7308
3    12     309           299.1630
4    14     309           320.0976
5    12     310           313.9040
6    14     310           334.8385
7    12     330           381.4190
8    14     330           402.3536
9    12     331           387.2287
10   14     331           408.1633
11   12     332           385.2338
12   14     332           406.1683
... etc ...