Плановые контрасты с использованием выхода eZANOVA в R

Я искал использование запланированных контрастов в отличие от специальных тестов. Я обычно использую ezANOVA (Тип III ANOVA), но кажется, что проведение запланированных контрастов с использованием ezANOVA в настоящее время не обслуживается.

aov() с другой стороны, это ANOVA типа I (я не хочу вступать в дискуссию о том, какой тип лучше подходит для какого типа дизайна). Это просто для проведения запланированных контрастов, используя aov() (для групповых проектов), но я хочу провести ANOVA типа III в повторных мерах и быть откровенным ezANOVA имеет гораздо более удобный вывод.

Принимая во внимание ezANOVA имеет возможность включить return_aov = TRUE Кто-нибудь знает способ использования информации, предоставленной ezANOVA проводить запланированные контрасты?

Замечания: return_aov = TRUE позволяет получить доступ к выводу aov через что-то вроде этого:

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

Участник выше - пример переменной, добавленной к wid в ezANOVA:

wid = .(Participant)

summary.lm() обычно используется при представлении результатов запланированных контрастов в aov Предоставляется между группами ANOVA в отличие от повторных мер.

Я особенно заинтересован в использовании выходных данных для проведения запланированных контрастов для повторных измерений ANOVA.

ЦЕЛЕВЫЕ ЦЕЛИ

Цели, которые я хотел бы достичь из этой награды:

1) Используйте вывод ezANOVA проводить плановые контрасты при повторных мерах ANOVA.

1А) Используйте вывод ezANOVA проводить запланированные контрасты между субъектами ANOVA (этот должен быть относительно простым и, следовательно, не обязательным для получения награды.)

Любые фиктивные данные должны быть достаточными, но вот напоминание о формате для ezANOVA Повторные измерения ANOVA:

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

Это сопутствующий вопрос с воспроизводимыми данными и кодом, который можно использовать в связи с этой проблемой.

Вы можете найти здесь PDF-файл, содержащий некоторую справочную информацию о запланированных контрастах и о том, что они делают.

0 ответов

emmeans Пакет предоставляет соответствующие функциональные возможности для вычисления пользовательских контрастов / произвольных линейных функций средних значений оценок (EMM) для aov а также aovlist объекты (полный список поддерживаемых моделей см. здесь).

В следующем я использую ANT набор данных, который поставляется с ez пакет.

Сначала мы создали смешанный факторный ANOVA с помощью ezANOVA, Обратите внимание, что необходимо установить ортогональные контрасты, чтобы получить значимые тесты типа III (см., Например, ответ Джона Фокса здесь).

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, скажем, для всех групповых фланговых комбинаций.

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.
Смотрите также эту главу книги и мой ответ здесь, если вам нужно немного больше подробностей о том, как можно вывести веса контрастов из гипотез.

# 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

То же самое относится к ANOVA только между субъектами или ANOVA между субъектами.

# 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
Другие вопросы по тегам