R版本4.0.2 lm4软件包-LMER错误

时间:2020-07-07 07:57:20

标签: r lme4

library(Matrix)
library(lme4)


data <- lme4::sleepstudy

model1 <- lm(Reaction ~ Days, data = data)
model2 <- lmer(Reaction ~ 1+Days+(1+Days|Subject), data = data)
summary(model1)
summary(model2)
anova(model1, model2)

enter image description here enter image description here

所以我需要将R更新到4.0.2,现在使用anova函数比较混合效果模型会返回错误。当我分配模型时,似乎出现了错误,因为在全局环境中,它说“带空指针的对象”。似乎仅使用lmer而不是lm出现错误。谁能告诉我该如何解决?我至少需要R版本4.0.0(我的教授写的脚本需要此版本)。

2 个答案:

答案 0 :(得分:3)

公认的解决方案(显式调用 lme4::anovaLmer())有效,但这里的实际问题是,如果您想运行 anova() 比较 a(n) [g]lm 模型和 a(n) [g]lmer 模型,您需要将 [g]lmer 模型放在参数列表的首位,<因为...无聊的技术细节:S3 方法调度等等...> . (这应该记录在案,我不能说。)对于您的示例,

anova(model2,model1)

工作正常!

“带有空指针的对象”错误是一个红鲱鱼:无关,神秘,可能与 RStudio 相关,另见 this questionthis question(都没有回答......)

答案 1 :(得分:1)

您可以直接从anova包中调用相应的lme4方法。

lme4:::anovaLmer(model1, model2)
# refitting model(s) with ML (instead of REML)
# Data: data
# Models:
# model1: Reaction ~ Days
# model2: Reaction ~ 1 + Days + (1 + Days | Subject)
#        npar    AIC    BIC  logLik deviance  Chisq Df Pr(>Chisq)    
# model1    3 1906.3 1915.9 -950.15   1900.3                         
# model2    6 1763.9 1783.1 -875.97   1751.9 148.35  3  < 2.2e-16 ***
#   ---
# Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

但是,这在例如要么R 3.6.3