我建立了一个线性混合模型并对其进行了事后测试。固定因素是阶段数(时间)和组。
statistic_of_comp <- function (x, df) {
x.full.1 <- lmer(x ~ phase_num + group + (1|mouse), data=df, REML = FALSE)
x_phase.null.1 <- lmer(x ~ group + (1|mouse), data=df, REML = FALSE)
print(anova (x.full.1, x_phase.null.1))
summary(glht(x.full.1, linfct=mcp(phase_num="Tukey")))
}
现在我的问题是,我想要使用多个固定因子进行事后测试。我找到了以下内容
linfct=mcp(phase_num="Tukey", group="Tukey)
但这并没有给出我想要的结果。目前,我得到了与Tukey(每个组与其他所有组)的组的比较以及两个阶段之间的比较。
我想要的是比较每个组的phase_numbers。例如group1 phase1-phase2 ...,group2 phase1-phase2等
我相信你可以用multcomp
做到这一点,但让我举例说明如何使用emmeans
包。我将使用常规线性模型(因为您没有给出可重复的示例),但下面的配方应该与混合模型一样好用。
来自?emmeans
的线性模型(使用内置数据集):
warp.lm <- lm(breaks ~ wool * tension, data = warpbreaks)
应用emmeans()
,然后使用pairs()
函数:
pairs(emmeans(warp.lm , ~tension|wool))
wool = A:
contrast estimate SE df t.ratio p.value
L - M 20.556 5.16 48 3.986 0.0007
L - H 20.000 5.16 48 3.878 0.0009
M - H -0.556 5.16 48 -0.108 0.9936
wool = B:
contrast estimate SE df t.ratio p.value
L - M -0.556 5.16 48 -0.108 0.9936
L - H 9.444 5.16 48 1.831 0.1704
M - H 10.000 5.16 48 1.939 0.1389
有关更多信息,请参阅?pairs.emmGrid
或vignette("comparisons",package="emmeans")
(其中明确指出这些测试确实默认使用Tukey比较)。