【问题标题】:behavior of na.action = na.exclude using lmer in lme4 1.0-5 inconsistent with lm and with older versions of lme4na.action = na.exclude 在 lme4 1.0-5 中使用 lmer 的行为与 lm 和旧版本的 lme4 不一致
【发布时间】:2013-11-09 05:33:21
【问题描述】:

考虑一个简单的例子:

> library(lme4)
Loading required package: lattice
Loading required package: Matrix
> set.seed(1)
> df <- data.frame(x = c(rnorm(7), NA), y = rep(c("A", "B"), 4))
> length(fitted(lm(data = df, x ~ y, na.action = na.exclude)))
[1] 8

这符合我的预期。虽然第 8 次观察没有拟合值,因为 x 是该行的 NA,所以拟合值用 NA“填充”,使它们的长度与输入数据帧 df 中的行数相同,这非常便利。但是在 lme4 中调用 na.action = na.exclude 不再具有相同的效果。

> length(fitted(lmer(data = df, x ~ (1 | y), na.action = na.exclude)))
[1] 7

我相当肯定,在旧版本的 lme4 中,长度为 8,最后一个值为 NA,就像 lm() 一样。

如何让 lmer 以与 lm 相同的方式运行 --- 用 NA(在适当的位置)填充拟合向量,使其长度与输入数据帧中的行数相同?

更一般地说,关于 na.action 和 na.exclude 在这里做什么和/或打算做什么,我是否遗漏了什么?

我的目标是在应用于 lmer 模型对象时获得 fit(),以返回一个长度与输入数据帧的行数相同的向量(并且顺序相同!)并且 NA 在“适当的”位置。有没有简单的方法来做到这一点?

谢谢,

戴夫·凯恩

更新:感谢 Ben Bolker 的工作!虽然 predict() 与fitted() 不一样,但使用它确实解决了我的主要问题。

> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] lme4_1.0-5      Matrix_1.1-0    lattice_0.20-23

loaded via a namespace (and not attached):
[1] grid_3.0.2    MASS_7.3-29   minqa_1.2.1   nlme_3.1-111  splines_3.0.2 tools_3.0.2  

【问题讨论】:

  • 我会调查的。它可能更适合作为github.com/lme4/lme4/issues 上发布的lme4“问题”(也可以在那里发布)。对 SO 来说可能太窄了。
  • 这应该在 1.1-1 中修复,可能需要更长的时间才能传播到“发布”分支 (1.0-6)

标签: r lmer


【解决方案1】:

作为一种快速解决方法,您可以使用predict(不带其他参数)而不是fitted

length(predict(lmer(data = df, x ~ (1 | y), na.action = na.exclude)))
## 8

(这是 1.1-1 而不是 1.0-5,但我认为结果是一样的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多