r语言 - 估计的边际均值,仅控制一个IV水平的影响(emmeans,lmer)



我有一个实验,有2个IV,时间(3个级别,t1,t2,t3,在受试者内(和校正类型(3个级别,受试者之间(。DV = 姿态(连续(。完整的 lmer 模型如下所示:

agreement ~ correction * time + (1 + time|subject) + (1 + correction + time|item)

如何从整体模型中获得简单的效果?

我想比较时间点 3 的所有三个校正级别,但要考虑时间点 1 的单个参与者分数(基线测量(。这有点像时间点 3 上的 ANCOVA,将时间点 1 的基线分数作为连续度量。

我可以这样做:

library(lsmeans)
ref_levs <- emmeans(mod2, "correction", by = "time", at = list(time = "t3"))
pairs(ref_levs)

但是我无法获得控制单个参与者分数在t1的比较的输出。

我是否被迫对数据集进行子集以获得我需要的东西,拟合像这样的模型?

agreement_t3 ~ correction + time_t1 + (1|subject) + (1 + correction|item)

或者有一种方法可以在不必对数据集进行子集的情况下获得它?

尽管您似乎希望将时间 1 的观测值视为协变量,但我仍将展示一种合理的方法,即使用 OP 中显示的模型估计基线的变化。

首先,设置好时间作为主要因素,并获得将时间 2 和 3 与时间 1 进行比较的对比:

emm1 <- emmeans(mod2, ~ time | correction)
emm2 <- contrast(emm1, "trt.vs.ctrl1, name = "time.gap")

现在,time.gap是一个只有两个水平 t2 - t1 和 t3 - t1 的新因子。因此,您现在可以比较这些更改:

pairs(emm2, by = "time.gap")

可以通过更少的步骤做到这一点:contrast(emm1, interaction = c("trt.vs.ctrl1", "pairwise"), by = NULL);但我认为以上内容不那么令人困惑,更容易解释。

最新更新