Если вы хотите придерживаться 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-значениям, если сферичность нарушена.