在 R 中使用 ezANOVA 输出进行计划对比 [英] Planned contrasts using ezANOVA output in R

查看:31
本文介绍了在 R 中使用 ezANOVA 输出进行计划对比的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在研究使用计划对比而不是事后 t 检验.我通常使用 ezANOVA(III 型 ANOVA),但目前似乎不适合使用 ezANOVA 进行计划对比.

I've been looking into using planned contrasts as opposed to post-hoc t-tests. I typically use ezANOVA (Type III ANOVA) but it seems that conducting planned contrasts using ezANOVA is not currently catered for.

aov() 另一方面是 I 型方差分析(我不想讨论哪种类型最适合哪种类型的设计).使用 aov()(用于组间设计)进行计划对比是很直接的,但我想在重复测量中进行 III 型方差分析,坦率地说 ezANOVA具有更加用户友好的输出.

aov() on the other hand is a Type I ANOVA (I don't want to get into a debate about which type is best for which type of design). It is straight forward to conduct planned contrasts using aov() (for between group designs) but I want to conduct a Type III ANOVA in a repeated measures and to be frank ezANOVA has a much more user friendly output.

记住 ezANOVA 可以选择包含 return_aov = TRUE 是否有人知道如何使用 ezANOVA 提供的信息来进行有计划的对比?

Bearing in mind ezANOVA has the option to include return_aov = TRUE does anyone know of a way to use the information provided by ezANOVA to conduct planned contrasts?

注意: return_aov = TRUE 允许通过以下方式访问 aov 的输出:

Note: return_aov = TRUE allows access to the output of aov via something along these lines:

summary.lm(ModelName$aov$'Participant:IndependentVariable1')

上面的参与者是添加到 ezANOVA 中的 wid 的示例变量:

Participant above is an example variable added to wid in ezANOVA:

wid = .(Participant)

summary.lm() 通常用于在 aov 中呈现计划对比的结果,在组 ANOVA 之间授予,而不是重复测量.

summary.lm() is typically used when presenting the results of planned contrasts in aov, granted between groups ANOVAs as opposed to repeated measures.

我对使用输出结果进行重复测量方差分析的计划对比特别感兴趣.

I'm particularly interested in using the output to conduct planned contrasts for repeated measures ANOVA.

赏金目标

我想从这个赏金中实现的目标:

Goals I would like to achieve from this bounty:

1) 使用 ezANOVA 的输出在重复测量方差分析中进行计划对比.

1) Use the output of ezANOVA to conduct planned contrasts in a repeated measures ANOVA.

1A) 使用 ezANOVA 的输出对主题 ANOVA 之间进行有计划的对比(这个应该相对容易,因此不是申请赏金的必要条件.)

1A) Use the output of ezANOVA to conduct planned contrasts on between subjects ANOVA (this one should be relatively easy & therefore not a requisite to claim the bounty.)

任何虚拟数据都应该足够了,但这里提醒一下 ezANOVA 重复测量方差分析的格式:

Any dummy data should suffice but here is a reminder of the format for ezANOVA repeated measures ANOVA:

ModelName <- ezANOVA(
data = DataSet,
dv = .(DependentVariable), 
wid = .(Participant), 
within = .(IndependentVariable1, IndependentVariable2), 
type=3, 
detailed = TRUE, 
return_aov = TRUE)

这是一个相关问题,具有可重现的数据和代码 可用于解决此问题.

This is a Related Question with reproducible data and code which can be used in relation to this problem.

您可以在此处找到 PDF 此处提供有关计划的一些背景信息对比和他们所做的.

You can find a PDF here giving some background on planned contrasts and what they do.

推荐答案

emmeans 包提供了适当的功能来计算 aovaovlist 对象(参见 此处 获取支持模型的完整列表).

The emmeans package provides the appropriate functionality to calculate custom contrasts/arbitrary linear functions of the estimates marginal means (EMMs) for aov and aovlist objects (see here for a full list of supported models).

在下面我使用 ez 包附带的 ANT 数据集.

In the following I use the ANT data set which comes with the ez package.

首先,我们使用 ezANOVA 设置混合阶乘方差分析.请注意,需要设置正交对比以获得有意义的 III 类测试(参见,例如,John Fox 的回答 此处).

First we set up a mixed factorial ANOVA using ezANOVA. Note that one needs to set orthogonal contrasts in order to get meaningful Type-III tests (see, e.g., John Fox' answer here).

library("ez")
library("emmeans")

# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))

data(ANT)
rt_anova <- ezANOVA(data = ANT[ANT$error == 0, ], 
                    dv = rt,
                    wid = subnum, 
                    within = .(cue, flank),
                    between = group,
                    type = 3,
                    return_aov = TRUE)

然后我们可以计算 EMM,比如说所有组-侧翼组合.

We can then calculate the EMMs for, say all group-flank combinations.

emm <- emmeans(rt_anova$aov, ~ group * flank)
emm
## group     flank         emmean       SE    df lower.CL upper.CL
## Control   Neutral     381.5546 1.735392 53.97 378.0753 385.0339
## Treatment Neutral     379.9286 1.735392 53.97 376.4493 383.4079
## Control   Congruent   381.6363 1.735392 53.97 378.1570 385.1155
## Treatment Congruent   379.7520 1.735392 53.97 376.2727 383.2313
## Control   Incongruent 466.6770 1.735392 53.97 463.1977 470.1563
## Treatment Incongruent 452.2352 1.735392 53.97 448.7559 455.7145

现在可以轻松计算这些 EMM 的所有成对比较或任何所需的对比度.
另请参阅本书章节和我的回答这里 如果您需要更多关于如何从假设推导出对比权重的详细信息.

Now it is easy to calculate all pairwise comparisons or any desired contrast on these EMMs.
See also this book chapter and my answer here if you need a bit more detail on how one can derive the contrasts weights from the hypotheses.

# all pairwise comparisons 
pairs(emm, adjust = "Holm")
## contrast                                        estimate       SE    df t.ratio p.value
## Control,Neutral - Treatment,Neutral           1.62594836 2.454215 53.97   0.663  1.0000
## Control,Neutral - Control,Congruent          -0.08167403 2.473955 36.00  -0.033  1.0000
## Control,Neutral - Treatment,Congruent         1.80259257 2.454215 53.97   0.734  1.0000
## Control,Neutral - Control,Incongruent       -85.12239797 2.473955 36.00 -34.407  <.0001
## Control,Neutral - Treatment,Incongruent     -70.68062093 2.454215 53.97 -28.800  <.0001
## Treatment,Neutral - Control,Congruent        -1.70762239 2.454215 53.97  -0.696  1.0000
## Treatment,Neutral - Treatment,Congruent       0.17664421 2.473955 36.00   0.071  1.0000
## Treatment,Neutral - Control,Incongruent     -86.74834633 2.454215 53.97 -35.347  <.0001
## Treatment,Neutral - Treatment,Incongruent   -72.30656929 2.473955 36.00 -29.227  <.0001
## Control,Congruent - Treatment,Congruent       1.88426660 2.454215 53.97   0.768  1.0000
## Control,Congruent - Control,Incongruent     -85.04072394 2.473955 36.00 -34.374  <.0001
## Control,Congruent - Treatment,Incongruent   -70.59894690 2.454215 53.97 -28.766  <.0001
## Treatment,Congruent - Control,Incongruent   -86.92499054 2.454215 53.97 -35.419  <.0001
## Treatment,Congruent - Treatment,Incongruent -72.48321351 2.473955 36.00 -29.299  <.0001
## Control,Incongruent - Treatment,Incongruent  14.44177704 2.454215 53.97   5.884  <.0001
## 
## Results are averaged over the levels of: cue 
## P value adjustment: holm method for 15 tests 

# custom contrasts
contrast(
  emm, 
  list(c1 = c(1, -1, 0, 0, 0, 0), # reproduces first pairwise comparison
       # emmean of row 1 - (emmean of row 1 + emmean of row 2) / 2; see EMMs table
       # 381.5546 - (379.9286 + 381.6363) / 2
       c2 = c(1, -0.5, -0.5, 0, 0, 0))
 )
 ## contrast  estimate       SE    df t.ratio p.value
 ## c1       1.6259484 2.454215 53.97   0.663  0.5105
 ## c2       0.7721372 2.136825 43.84   0.361  0.7196

这同样适用于纯粹的受试者内方差分析或受试者间方差分析.

The same applies for purely within-subjects ANOVAs or between-subjects ANOVAs.

# within-subjects ANOVA
rt_anova_wi <- ezANOVA(data = ANT[ANT$error == 0, ], 
                    dv = rt,
                    wid = subnum, 
                    within = .(cue, flank),
                    type = 3,
                    return_aov = TRUE)

emm <- emmeans(rt_anova_wi$aov, ~ cue * flank)
contrast(
  emm, 
  list(c1 = c(1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), 
       c2 = c(1, -0.5, -0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0))
) 
## contrast estimate       SE     df t.ratio p.value
## c1       47.31005 3.802857 170.34  12.441  <.0001
## c2       50.35320 3.293371 170.34  15.289  <.0001

# between-subjects ANOVA
rt_anova_bw <- ezANOVA(data = ANT[ANT$error == 0, ], 
                       dv = rt,
                       wid = subnum, 
                       within_full = .(cue, flank), 
                       between = group,
                       type = 3,
                       return_aov = TRUE)

emm_bw <- emmeans(rt_anova_bw$aov, ~ group)
# custom linear function
contrast(
  emm_bw, 
  list(c1 = c(2/3, 1/2)) 
)
## contrast estimate        SE df t.ratio p.value
## c1       475.2899 0.8213448 18 578.673  <.0001

这篇关于在 R 中使用 ezANOVA 输出进行计划对比的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆