我有一个实验,有2个IV,时间(3个层次,t1,t2,t3,被试内),修正类型(3个层次,被试间)。DV=态度(连续)。完整的lmer模型是这样的。
agreement ~ correction * time + (1 + time|subject) + (1 + correction + time|item)
我如何从整体模型中得到简单的效果?
我想在时间点3比较所有三个级别的校正,但考虑到时间点1(基线测量)的个体参与者的分数。这有点像时间点3的方差分析,以时间点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)
或者在emmeans中有一种方法可以不用子集数据集就能得到?
虽然看起来你想把时间1的观察值作为一个协变量,但我还是要展示一个合理的方法,用上文中的模型来估计基线的变化。
首先,设置时间为主要因素,并获得对比,将时间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)
但我认为上面的步骤不那么混乱,也更容易解释。