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

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

问题描述

我一直在研究使用计划的对比,而不是事后的t检验.我通常使用ezANOVA(III型方差分析),但似乎目前不适合使用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型ANOVA(我不想就哪种类型最适合哪种类型的设计进行辩论).直接使用aov()进行计划的对比(用于组间设计)是很直接的,但是我想重复进行III型ANOVA,坦率地说,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')

上面的

参与者是在ezANOVAwid中添加的示例变量:

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

wid = .(Participant)

summary.lm()通常在呈现aov中计划的对比结果时使用,这是在方差分析组之间给予的,而不是重复进行的测量.

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的输出在受试者方差分析之间进行计划的对比(这一对比应该相对容易,因此不必索要赏金.)

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.

您可以在此处找到在此处提供有关计划的一些背景信息对比及其作用.

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

推荐答案

emmeans软件包提供了适当的功能来计算aovaovlist的估计边际均值(EMM)的自定义对比度/任意线性函数.对象(有关支持的完整列表,请参见此处楷模).

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天全站免登陆