在 R 版本 4 中,Anova 无法将线性混合回归基础模型与具有不同变量的其他模型进行比较

In R version 4, Anova fails to compare linear mixed regression base model to other models with different variables

我使用的是 R 版本 3.6.3,最近更新到版本 4.0.3。我已经给出了我正在处理的模型的示例。

Model0 <- lmer(accuracy~Temperature+Relative_Humidity+scaledweek+(1 | pxids),data=ptrails.df)
Model1 <- lmer(accuracy~CO+Temperature+Relative_Humidity+scaledweek+(1 | pxids),data=ptrails.df)
Model2 <- lmer(accuracy~pm10+Temperature+Relative_Humidity+scaledweek+(1 | pxids),data=ptrails.df)
Model3 <- lmer(accuracy~NO+Temperature+Relative_Humidity+scaledweek+(1 | pxids),data=ptrails.df)

anova(Model0,Model1,Model2, Model3)

想法是让每个模型与基本模型 (Model0) 进行比较,以确定哪个变量具有显着影响。

输出示例:

我没有得到 Model2 和 Model3 的 p 值。这在以前的版本中不是这样的。我尝试将 model0 与 model1 进行比较,然后将 model0 与 model2 等进行比较。这样的比较给了我 p 值但是,我有非常大的数据,我需要一起做。

这有点猜测,因为您没有提供可重现的示例,但这可能与版本 1.1-24 之前和之后的 lme4(不是 R)版本有关: NEWS file for lme4 报告说

anova() now returns a p-value of NA if the df difference between two models is 0 (implying they are equivalent models)

“df difference”表示估计的参数个数的差异。有两种方法可以使不同的模型具有相同数量的 df:

  • 模型实际上是等效的(尽管它们的参数可能指定不同,例如,如果 fg 是因子,那么包括 f*gf:g 给出不同的参数化但等效模型拟合。在这种情况下,偏差的变化(“Chisq”)也为零。这似乎是模型 0 与 2 在您的情况下发生的情况(尽管令我困惑的是 npar 是不同的:如果没有可重现的例子很难理解。也许你添加了一个完全相关的预测变量,或者你的模型拟合是单一的?)在这种情况下,可以认为 p 值为 1,但 NA 也是合理的(看到这个 discussion)
  • 模型是非嵌套,例如一个模型包含数字协变量A,第二个模型包含数字协变量B。这不是包开发人员发生的情况......在这种情况下似然比检验是不合适的,所以return p-完全没有价值。

如果你想比较非嵌套模型,你要么需要像 Vuong 测试这样的东西,要么只比较 AIC 值。 (我认为 bbmle::AICtab() 提供了一种更有用的比较格式......)