估计边际均值,仅控制一个 IV 水平的影响(emmeans、lmer)
Estimated marginal means, controlling for the effect of only one IV level (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)
或者在 emmeans 中有一种方法可以在不必对数据集进行子集化的情况下获得它?
尽管您似乎希望将时间 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)
;但我认为上面的内容更容易理解。
我有一个实验,有 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)
或者在 emmeans 中有一种方法可以在不必对数据集进行子集化的情况下获得它?
尽管您似乎希望将时间 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)
;但我认为上面的内容更容易理解。