线性混合模型中的缺失观测值

机器算法验证 混合模式 缺失数据
2022-03-26 17:24:15

假设您正在测量受试者和时间点对于主题 1,假设缺少如果您正在运行线性混合模型,您会省略主题 1 的整个记录​​吗?Tiji=1,,4j=1,,4T12T14

1个回答

如果仅缺少一些观察值,则无需省略个人。实际上,您希望将缺失的参与者包括在内,以增加您的力量并避免使您的结果产生偏差。混合效应的好处在于,它们可以通过最大似然估计很好地处理缺失数据,尤其是在纵向设计的背景下。

查看下面的语法后,您会注意到在样本量极小的情况下,完整模型和缺失模型之间的估计非常相似。此外,如果您指定一个随机斜率,您还可以使用 ranef() 函数提取经验贝叶斯估计,该函数为您提供每个参与者的估计斜率。

这些是使用来自个人的信息和来自样本其余部分的信息来计算的。在更极端的观察或样本量较小的个体(由于缺少数据)的情况下,估计值将调整为整体样本的平均值,这是一个称为“收缩”的概念。尽管作者使用的是 nlme 包而不是 lme4,但可以在此处找到关于混合效果框架中的增长曲线的非常好的评论。

require(lme4)

# Set the seed to make the code reproducible
set.seed(28)

# Simulate a growth curve for 4 participants, each with 4 time points. Assume a random
# intercept and fixed slope.
simData <- expand.grid(ID = 1:4, Time = 0:3)
simData <- simData[order(simData$ID), ]

randInt <- rnorm(n = 4, mean = 0, sd = 2)
slope <- 2
randError <- rnorm(n = nrow(simData), mean = 0, sd = 2)

response <- c(NA)

for(i in 1:nrow(simData)){

  df <- simData[i, ]

  response[i] <- randInt[df$ID] + df$Time * slope + randError[i]

}

simData$response <- response

# Use lmer to model the growth curve
fullMod <- lmer(response ~ Time + (1 | ID), data = simData)
summary(fullMod)

# Number of obs: 16, groups: ID, 4

# Add in missingness for only one time point
simData[2, 3] <- NA

missMod <- lmer(response ~ Time + (1 | ID), data = simData)
summary(missMod)

# Number of obs: 15, groups: ID, 4