Post hoc тест после 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/…
Джером Энглим,

3
По поводу вашего 2-го пункта: HSD Тьюки уже включает «поправку» на множественность (на уровне статистики теста, а не на уровне альфа, как в методе Бонферрони). Таким образом, нет необходимости сочетать оба.
хл

1
@chl: поэтому нам не нужно корректировать альфа-уровень во время множественных парных сравнений в случае HSD Тьюки?
Стан

3
@ Примечание. (Примечание: незапланированные (пост-специальные) тесты следует проводить после того, как ANOVA показал значительный результат, особенно если это касается подтверждающего подхода.)
гл.

Ответы:


20

Что вы можете сделать, это указать модель, lmeа затем использовать glhtиз multcompпакета, чтобы сделать то, что вы хотите. Тем не менее, IME дает немного другие значения 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"))

Что касается других контрастов, то 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.