我想测试使用lme4:::lmer()
拟合的混合效应模型的系数(而不是截距)是否与零以外的值不同。car:::linearHypothesis()
应该能够做到这一点,使用Kenward Rogers近似计算p值和误差自由度,如pbkrtest
(汽车文档;pbkrtest文档)中所实现的那样。
然而,我遇到了一个我认为是错误的东西。我似乎只能获得对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
的下一个版本中得到修复。