将 car::::linearHypothesis() 与 lme4 模型一起使用

Using car:::linearHypothesis() with lme4 models

我想测试使用 lme4:::lmer() 拟合的混合效应模型的系数(不是截距)是否不同于零以外的值。 car:::linearHypothesis() 应该能够做到这一点,使用 Kenward-Rogers 近似计算 p 值和误差自由度,如 pbkrtest (car documentation; pbkrtest documentation) 中实现的那样。

但是,我 运行 遇到了一个我认为是错误的问题。我似乎只能获得针对 0 的兴趣系数测试。这是一个可重现的示例:

library(car)
library(lme4)
library(pbkrtest)

set.seed(32432)

d <- data.frame(id=rep(1:100, 4), x=rnorm(400), y=rnorm(400))
m <- lmer(y ~ x + (1|id), data=d)

linearHypothesis(m, "x=4", test="F")
# F=.1256, p=.7232
linearHypothesis(m, "x=0", test="F")
# F=.1256, p=.7232

很明显,这些 F 值和 p 值不应该相同!

作为参考,如果我使用 $\Chi^2$ 测试,我不会得到相同的错误,这表明错误是 pbkrtest:

linearHypothesis(m, "x=4")
# X2=5614.1, p=2.2e-16
linearHypothesis(m, "x=0")
# X2=.1268, p=.7218

有人有解决方法吗?

我联系了 car 包的作者 John Fox。他确认 car:::linearHypothesis() 如何处理适合 lme4:::lmer() 的模型确实存在错误。这应该在 car.

的下一版本中修复