R语言 lme4样本量和完整病例数据集之间的差异?

lymgl2op  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(127)

我目前正在使用lme 4估计阶层式缐性模型(HLM)。我的整个数据集有367个观察值。lme 4使用341个观察值估计我的模型-我假设由于遗漏数据而遗漏了一些观察值。但是,当我加总模型变数的完整案例时,我最终得到了337个观察结果。这使得当模型的长度与数据集的长度不同时,很难对假设进行测试。

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

1.为什么lme 4会使用4个不完整的案例?
1.我如何才能知道lme 4使用了哪些确切的观测值(作为ID #)?
如上所述,假设lme 4按列表方式丢弃了案例,我尝试从主数据集中删除缺失的数据,并尝试检查每个变量的缺失情况,看看lme 4是否只是在测试某个变量,但没有一个与lme 4的输出估计值341相匹配。
如果需要的话,我可以提供匿名数据集--但希望有一些我不知道的简单的东西!

vnjpjtjt

vnjpjtjt1#

最明显的原因是lme4(以及内部model.frame)仅根据模型中实际使用的变量来评估完整性。您是否在模型公式中不包含的变量中具有NA值?
(For它的价值是,这个默认值也意味着,如果你要用不同的预测变量子集拟合一系列模型,并希望模型具有可比性,那么首先过滤完整案例的完整数据集是一个好主意。
范例:

library(lme4)
ss <- sleepstudy
ss$Days[c(1, 4, 10)] <- NA
ss$extra <- 1
ss$extra[c(4, 20, 25)] <- NA

个字符
哪些行被删除了?有两种检查方法:

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


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

相关问题