pbkrtest和emmeans之间的Kenward-Roger自由度不同

pbkrtest和emmeans之间的Kenward-Roger自由度不同,r,lme4,emmeans,R,Lme4,Emmeans,sleepstudy数据集的Days变量是数字。因此,它对应于模型中的斜率M1:Reaction~Days+(1 | Subject)。让我们通过将M1与M0:Reaction~(1 |受试者)与pbkrtest包进行比较,来测试Days效应: library(lme4) data("sleepstudy") M1 <- lmer(Reaction ~ Days + (1|Subject), data=sleepstudy) library(pbkrtest) M0 <- lmer

sleepstudy
数据集的
Days
变量是数字。因此,它对应于模型中的斜率
M1:Reaction~Days+(1 | Subject)
。让我们通过将
M1
M0:Reaction~(1 |受试者)
pbkrtest
包进行比较,来测试
Days
效应:

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

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

我们不应该得到相同的自由度吗?为什么它们不同?这两个程序都测试了斜率的零度,不是吗?

我认为emmeans正在以天数的平均值返回估计的边际平均值。您可以看到输出中的天数为4.5天,这是所需值的平均值(0-9)。可能有助于澄清emmeans如何处理数值变量。我刚刚观察到,
emtrends(M1,~Days,var=“Days”)
给出了161个自由度。我不知道
emmeans()
的输出是什么。这很奇怪。:-)我认为这是“天数”线的估计斜率,当天数设置为其平均值时。我使用
emtrends
在拟合“单独斜率”模型时,最常用于获得不同组的斜率估计值。这在@aosmith是完全正确的,但在这种情况下,
Day
的任何值的斜率都是相同的。161个df匹配,因为相同的假设正在测试中。EMM与斜率不同——不同的假设,不同的d.f。
> 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 ***
> 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