0

数据集的Days变量sleepstudy是数字的。因此它对应于模型中的一个斜率M1: Reaction ~ Days + (1|Subject)。让我们通过与包的比较来测试Days效果:M1M0: Reaction ~ (1|Subject)pbkrtest

library(lme4)
data("sleepstudy")
M1 <- lmer(Reaction ~ Days + (1|Subject), data=sleepstudy)

library(pbkrtest)
M0 <- lmer(Reaction ~ (1 | Subject), data=sleepstudy)

那么我们得到 161 个 Kenward-Roger 自由度:

> KRmodcomp(M1, M0)
F-test with Kenward-Roger approximation; computing time: 0.30 sec.
large : Reaction ~ Days + (1 | Subject)
small : Reaction ~ (1 | Subject)
       stat   ndf   ddf F.scaling   p.value    
Ftest 169.4   1.0 161.0         1 < 2.2e-16 ***

但是当我们用 测试Days效果时emmeans,我们得到 17 个自由度:

> library(emmeans)
> emmeans(M1, ~ Days)
 Days   emmean       SE df lower.CL upper.CL
  4.5 298.5079 9.049936 17 279.4142 317.6016

Degrees-of-freedom method: kenward-roger

我们不应该获得相同数量的自由度吗?为什么它们不同?这两个程序都测试了斜率的无效性,不是吗?

4

0 回答 0