我有一个实验,其中有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)
或者有一种方法可以在不需要子集数据集的情况下获得它?
答案 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)
;但我认为以上内容不那么混乱,更易于解释。