我想知道如何从拟合的混合效应模型(在常客框架中)对新主题进行预测。
具体来说,我们对一组受试者进行了多次观察,我们可以在一系列时间点(例如 0-9)内拟合具有受试者特定随机截距和随机斜率的混合效应模型。
现在,我们观察几个初始时间点(比如 0-5)的新主题。我们想使用拟合模型在时间点 6-9 对这些新主题进行预测。
所以,我设想的步骤是:
- 使用第一组受试者估计模型,获得固定效应和随机效应协方差。
- 使用拟合模型,根据观察到的数据获取新主题随机截距和随机斜率的估计值。
- 最后,使用特定于主题的随机效应在未观察到的时间对新主题进行预测。
我不确定如何进行步骤 (2)。我假设可以使用最大似然 (ML) 来估计特定于主题的随机效应,并且这些估计对于每个新主题都是独立的 - 因为我们不希望新主题的任何反馈用于推理模型(步骤 2 应该对步骤 1 没有影响)。然而,在受限最大似然 (REML) 框架中拟合混合效应模型是很典型的,因为 ML 会导致对随机效应协方差的有偏估计……但对于估计特定主题的随机效应来说,这是否正确以协方差为条件,还是 ML 就足够了?
对于步骤(3),有一个明显的问题是通过这个过程会传播多少不确定性。如果我们使用 ML 来估计新的特定主题随机效应,我们将完全忽略第一个模型中的不确定性。我们可以引导整个过程以获得特定主题随机效应的分布。B 计划是改用贝叶斯方法,尽管现在我对常客版本感兴趣。
为了具体说明,我提出了以下使用lme4
inGNU R
和内置sleepstudy
数据集的最小工作示例
R.Version()$version.string
## "R version 3.4.1 (2017-06-30)"
library("lme4")
packageVersion("lme4")
## ‘1.1.13’
library("merTools")
packageVersion("merTools")
## ‘0.3.0’
data("sleepstudy")
summary(sleepstudy)
nlevels(sleepstudy$Subject) ## 18 subjects
## Fit model to "Observed" data (only 15 subjects)
sleepstudy.reduced <- subset( sleepstudy, Subject %in% levels(sleepstudy$Subject)[1:15] )
FITTED.reduced <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy.reduced)
## Then imagine we get new observations on three new subjects on fewer days
sleepstudy.newdata <- subset( sleepstudy, (Subject %in% levels(sleepstudy$Subject)[16:18]) & (Days<=5) )
## ... and we want to make predictions for these subjects at new Days
sleepstudy.toPredict <- subset( sleepstudy, (Subject %in% levels(sleepstudy$Subject)[16:18]), c("Days","Subject") )
## So, given FITTED.reduced,
## can we estimates random-effects for the new subjects (sleepstudy.newdata)
##
## Then plug those into predict(?) to get outcomes at new Days (sleepstudy.toPredict)
## something like
## FITTED.newdata <- ( sleepstudy.newdata | FITTED.reduced )
## ^^^^ this is the bit I can't see how to do ^^^^
## followed by
## PREDICT <- predict( FITTED.newdata, newdata=sleepstudy.toPredict )
我玩过predict.merMod()
,simulate.merMod()
和predictInterval()
from merTools
-package,但我不太明白如何使用它们来解决这个问题。
在我看来,下一步是根据拟合模型获得观察新受试者的可能性。