Пост-тест після ANOVA з повторними заходами з використанням R


24

Я здійснив повторні заходи ANOVA в R, наступним чином:

aov_velocity = aov(Velocity ~ Material + Error(Subject/(Material)), data=scrd)
summary(aov_velocity)
  • Який синтаксис у R може бути використаний для виконання пост-спеціального тесту після ANOVA з повторними заходами?
  • Чи підходить тест Тукі з корекцією Бонферроні? Якщо так, то як це можна зробити в R?

1
дивіться це пов’язане питання на тестуванні після спеціальних заходів для повторних заходів конструкції stats.stackexchange.com/questions/575/…
Jeromy Anglim

3
Про ваш другий пункт: HSD Tukey вже включає «корекцію» кратності (на рівні тестової статистики, а не на рівні альфа, як у методі Бонферроні). Отже, не потрібно поєднувати обидва.
chl

1
@chl: значить, нам не потрібно виправляти рівень альфа під час численних парних порівнянь у випадку HSD Тукі?
stan

3
@stan No. (Примітка. Незаплановані (післячасні) тести слід проводити після того, як ANOVA показав значний результат, особливо якщо це стосується підтверджуючого підходу.)
chl

Відповіді:


20

Що ви можете зробити, це вказати модель, lmeа потім використовувати glhtз multcompпакета, щоб робити те, що ви хочете. Однак, lme дає дещо інші значення F, ніж стандартні ANOVA (див. Також мої останні запитання тут ).

lme_velocity = lme(Velocity ~ Material, data=scrd, random = ~1|Subject)
anova(lme_velocity)

require(multcomp)
summary(glht(lme_velocity, linfct=mcp(Material = "Tukey")), test = adjusted(type = "bonferroni"))

Про інші контрасти, ніж бонферрони, дивіться, наприклад, книгу multcompавторів упаковки .

Ви також можете подивитися цей пост в списку R-розсилки , і цей блог для вказівки повторних вимірів ANOVA в R .

Однак, як показано в цьому питанні від мене, я не впевнений, чи такий підхід є ідентичним ANOVA. Крім того, glht повідомляє лише z -значення замість звичайних значень t або F. Це теж здається нечасто.

Поки що я не стикався з іншим способом цього.


2

Якщо ви хочете дотримуватися aov()функції, ви можете використовувати emmeansпакет, який може обробляти aovlistбагато інших ) об'єкти.

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

aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)

Після створення emmGridоб’єкта наступним чином

emm <- emmeans(aov_velocity, ~ Material)

дуже легко отримати всі (post hoc) попарні порівняння за допомогою pairs()функції або будь-якого бажаного контрасту за допомогою contrast()функції emmeansпакету. Параметри кількох тестувань можна досягти за допомогою adjustаргументу цих функцій:

pairs(emm)  # adjust argument not specified -> default p-value adjustment in this case is "tukey"  

Для отримання додаткової інформації про це я знайшов детальні віньєтки emmeans та документацію дуже корисними.

Крім того, ви можете знайти повний (відтворюваний) приклад, включаючи опис, як отримати правильні контрастні ваги у моїй відповіді тут .

Однак зауважте, що використання уніваріантної моделі для пост-хок-тестів може призвести до антиконсервативних p- значень, якщо сферичність порушена.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.