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

lymgl2op  于 2024-01-03  发布在  其他
关注(0)|答案(1)|浏览(159)

我目前正在使用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它的价值是,这个默认值也意味着,如果你要用不同的预测变量子集拟合一系列模型,并希望模型具有可比性,那么首先过滤完整案例的完整数据集是一个好主意。
范例:

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

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

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

相当于内部代码的是

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


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

展开查看全部

相关问题