首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在in中应用自定义交互对比

在in中应用自定义交互对比
EN

Stack Overflow用户
提问于 2022-09-19 21:50:39
回答 1查看 62关注 0票数 1

我一直试图用emmeans()contrast()比较一组交互对比。但是,我在应用自定义对比并在组间进行比较时遇到了困难。在这里,我添加了一个示例数据集,这样您就可以复制我正在处理的内容。

总之,此数据集包含三个因素:组、位置、场景。位置和场景在主题变量中,组是主题变量之间的一个。我想知道位置A是否比B、C和D有更高的测量值(我在c(1, -1/2, -1/2)格式中设置了对比),然后比较各组之间的对比(对比)。到目前为止,我设法得到了每个组的对比(目前只处理一个场景):

代码语言:javascript
复制
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,则会得到一个错误:

代码语言:javascript
复制
 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参数中,也会发生同样的情况。

代码语言:javascript
复制
test_contrast <- contrast(test_effects,
                          interaction = list("Location A vs All" = location_a_vs_all),
                          adjust = "none")

我看了一下CRAN中的交互分析文档,但是我不知道如何正确地实现我想要做的事情,所以我很感激您给我的任何提示。提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-22 05:12:12

解决方案是将分析分为三个步骤:

代码语言:javascript
复制
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)

首先,我得到了特定场景的效果:

代码语言:javascript
复制
test_effects <- emmeans(test_aov,
                        specs =  ~ location | group, 
                        at    = list(scenario = c("alpha"))) 

然后,使用“治疗与控制”方法,将其中一个位置与另一个位置进行对比(我在问题设置中称之为自定义对比):

代码语言:javascript
复制
location_con <- contrast(test_effects, 
                         method = "trt.vs.ctrl", 
                         name = "A vs Others", 
                         by = "group", 
                         ref = 2:3)

最后,我对此进行对比,将W组与其他组的结果进行比较,将W定义为我的参考级别:

代码语言:javascript
复制
group_con <- contrast(location_con, 
                      method = "trt.vs.ctrl", 
                      by = "A vs Others", 
                      ref = "W")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73779648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档