估计的边际均值,仅控制一个IV级水平的影响(平均数,lmer)

时间:2020-06-08 20:34:41

标签: r lme4 interaction contrast emmeans

我有一个实验,其中有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 个答案:

答案 0 :(得分:0)

尽管您似乎希望将时间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);但我认为以上内容不那么混乱,更易于解释。