lme4 样本量与完整案例数据集之间存在差异?

问题描述 投票:0回答:1

我目前正在使用 lme4 估计分层线性模型 (HLM)。我的整个数据集有 367 个观察值。 lme4 使用 341 个观测值估计了我的模型 - 我假设一些观测值由于缺失数据而被丢弃。然而,当我对模型变量的完整案例进行求和时,我最终得到了 337 个观察值。当模型的长度与数据集不同时,这使得测试假设变得困难。

完整案例与 lme4“使用”的观察结果之间存在差异。

  1. 为什么lme4会使用4个不完整的案例?
  2. 我如何找出 lme4 正在使用哪些确切的观察结果(如 ID 号)?

如上所述,假设 lme4 按列表删除案例,我尝试从主数据集中删除丢失的数据。我尝试检查每个变量是否缺失,以查看 lme4 是否只是测试某个变量,但没有一个与 lme4 的输出估计值 341 匹配。

如果需要,我可以提供匿名数据集 - 但希望有一些我不知道的简单内容!

r missing-data lme4 multi-level
1个回答
0
投票
library(lme4)
ss <- sleepstudy
ss$Days[c(1, 4, 10)] <- NA
ss$extra <- 1
ss$extra[c(4, 20, 25)] <- NA
nrow(ss)  ## 180
sum(complete.cases(ss))  ## 175
m <- lmer(Reaction ~ Days + (1|Subject), ss, na.action = na.omit)
mf <- model.frame(m)
nrow(mf)  ## 177

删除了哪些行?两种检查方法:

attr(mf, "na.action")
 1  4 10 
 1  4 10 
attr(,"class")
[1] "omit"
setdiff(rownames(ss), rownames(mf))
[1] "1"  "4"  "10"

相当于内部代码的是

nrow(model.frame(Reaction ~ Days + Subject, ss))  ## 177

(公式经过处理,以便随机效应分组变量也包含在公式中,以排除不完整的情况)

© www.soinside.com 2019 - 2024. All rights reserved.