Переменная Days
набора данных sleepstudy
является числовой. Поэтому это соответствует уклону в модели M1: Reaction ~ Days + (1|Subject)
. Давайте проверим эффект Days
, сравнив M1
с M0: 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 степень свободы Кенварда-Роджера:
> 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
Разве мы не должны получить одинаковое количество степеней свободы? Почему они отличаются? Обе процедуры проверяют нулевой уклон, не так ли?