Jeśli chcesz pozostać przy tej aov()funkcji, możesz użyć emmeanspakietu, który obsługuje aovlist(i wiele innych ) obiektów.
library("emmeans")
# set orthogonal contrasts
options(contrasts = c("contr.sum", "contr.poly"))
aov_velocity <- aov(Velocity ~ Material + Error(Subject / Material), data = scrd)
Po utworzeniu emmGridobiektu w następujący sposób
emm <- emmeans(aov_velocity, ~ Material)
bardzo łatwo jest uzyskać wszystkie porównania (post hoc) parami za pomocą pairs()funkcji lub dowolnego pożądanego kontrastu za pomocą contrast()funkcji emmeanspakietu. adjustArgumenty tych funkcji umożliwiają wielokrotne dostosowanie testów :
pairs(emm) # adjust argument not specified -> default p-value adjustment in this case is "tukey"
Aby uzyskać więcej informacji na ten temat, uważam, że szczegółowe emmeans winiety i dokumentacja są bardzo pomocne.
Ponadto, można znaleźć kompletne (powtarzalne) Przykład wraz z opisem, w jaki sposób uzyskać odpowiednie ciężary kontrast w moją odpowiedź tutaj .
Należy jednak zauważyć, że zastosowanie modelu jednoczynnikowego do testów post hoc może prowadzić do antykonserwatywnych wartości p, jeśli sferyczność zostanie naruszona.