Плановые контрасты с использованием выхода 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