将 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
.
的下一版本中修复
我想测试使用 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
.