我一直试图用emmeans()和contrast()比较一组交互对比。但是,我在应用自定义对比并在组间进行比较时遇到了困难。在这里,我添加了一个示例数据集,这样您就可以复制我正在处理的内容。
总之,此数据集包含三个因素:组、位置、场景。位置和场景在主题变量中,组是主题变量之间的一个。我想知道位置A是否比B、C和D有更高的测量值(我在c(1, -1/2, -1/2)格式中设置了对比),然后比较各组之间的对比(对比)。到目前为止,我设法得到了每个组的对比(目前只处理一个场景):
library(afex)
library(emmeans)
data <- data.frame(
id = rep(c(100:189), each = 9),
group = rep(c("W", "X", "Y"), each = 90 * 3),
location = rep(c("A", "B", "C"), each = 3, times = 90),
scenario = rep(c("alpha", "beta", "gamma"), times = 270),
measurement = c(rnorm(length(id)))
)
test_aov <- aov_car(measurement ~ group * scenario * location +
Error(id/scenario * location),
data = data)
location_a_vs_all <- c(1, -1/2, -1/2)
test_effects <- emmeans(test_aov,
specs = ~ location | scenario | group,
at = list(scenario = c("alpha")))
test_contrast <- contrast(test_effects,
method = list("Location A vs All" = location_a_vs_all),
adjust = "none")但是,如果我试图将参数interaction设置为contrast()函数中的True,则会得到一个错误:
test_contrast <- contrast(test_effects,
method = list("Location A vs All" = location_a_vs_all),
interaction = T,
adjust = "none")Contrast.emmGrid中的错误(object,interaction[i],by = vars-pos,name = nm,:'method‘)必须是一个列表、函数或'.emmc’函数的基名。
如果我将自定义对比度直接放在interaction参数中,也会发生同样的情况。
test_contrast <- contrast(test_effects,
interaction = list("Location A vs All" = location_a_vs_all),
adjust = "none")我看了一下CRAN中的交互分析文档,但是我不知道如何正确地实现我想要做的事情,所以我很感激您给我的任何提示。提前感谢!
发布于 2022-09-22 05:12:12
解决方案是将分析分为三个步骤:
library(afex)
library(emmeans)
data <- data.frame(
id = rep(c(100:189), each = 9),
group = rep(c("W", "X", "Y"), each = 90 * 3),
location = rep(c("A", "B", "C"), each = 3, times = 90),
scenario = rep(c("alpha", "beta", "gamma"), times = 270),
measurement = c(rnorm(length(id)))
)
test_aov <- aov_car(measurement ~ group * scenario * location +
Error(id/scenario * location),
data = data)首先,我得到了特定场景的效果:
test_effects <- emmeans(test_aov,
specs = ~ location | group,
at = list(scenario = c("alpha"))) 然后,使用“治疗与控制”方法,将其中一个位置与另一个位置进行对比(我在问题设置中称之为自定义对比):
location_con <- contrast(test_effects,
method = "trt.vs.ctrl",
name = "A vs Others",
by = "group",
ref = 2:3)最后,我对此进行对比,将W组与其他组的结果进行比较,将W定义为我的参考级别:
group_con <- contrast(location_con,
method = "trt.vs.ctrl",
by = "A vs Others",
ref = "W")https://stackoverflow.com/questions/73779648
复制相似问题