Przewodnik po korzystaniu z testów post-hoc z anova
ANOVA to test statystyczny stosowany do określenia, czy istnieje statystycznie istotna różnica pomiędzy średnimi z trzech lub więcej niezależnych grup.
Założenia stosowane w ANOVA są następujące:
Hipoteza zerowa (H 0 ): µ 1 = µ 2 = µ 3 = … = µ k (średnie są równe dla każdej grupy)
Hipoteza alternatywna: (Ha): przynajmniej jeden ze środków różni się od pozostałych
Jeżeli wartość p analizy ANOVA jest poniżej poziomu istotności, możemy odrzucić hipotezę zerową i stwierdzić, że mamy wystarczające dowody, aby stwierdzić, że przynajmniej jedna ze średnich grupowych różni się od pozostałych.
Nie mówi nam to jednak , które grupy różnią się od siebie. To po prostu mówi nam, że nie wszystkie średnie grupowe są równe.
Aby dokładnie wiedzieć, które grupy się od siebie różnią, musimy wykonać test post hoc (zwany także testem porównań wielokrotnych), który pozwoli nam zbadać różnicę między średnimi wielu grup, jednocześnie kontrolując rodzinę . rozsądny poziom błędów.
Uwaga techniczna: Należy zauważyć, że test post hoc powinniśmy wykonywać tylko wtedy, gdy wartość p ANOVA jest statystycznie istotna. Jeśli wartość p nie jest istotna statystycznie, oznacza to, że średnie wszystkich grup nie różnią się od siebie. Nie ma zatem potrzeby wykonywania testu post hoc w celu ustalenia, które grupy różnią się od siebie.
Poziom błędu rodzinnego
Jak wspomniano wcześniej, testy post hoc pozwalają nam przetestować różnicę między średnimi wielu grup, jednocześnie kontrolując poziom błędu na rodzinę .
Podczas testowania hipotez zawsze występuje poziom błędu I rodzaju, który jest zdefiniowany przez nasz poziom istotności (alfa) i mówi nam o prawdopodobieństwie odrzucenia hipotezy zerowej, która jest rzeczywiście prawdziwa. Innymi słowy, jest to prawdopodobieństwo uzyskania „fałszywie pozytywnego wyniku”, czyli wtedy, gdy twierdzimy, że istnieje statystycznie istotna różnica między grupami, podczas gdy w rzeczywistości tak nie jest.
Kiedy testujemy hipotezy, poziom błędu typu I jest równy poziomowi istotności, który zwykle przyjmuje się jako 0,01, 0,05 lub 0,10. Jeśli jednak przeprowadzimy wiele testów hipotez jednocześnie, prawdopodobieństwo uzyskania wyniku fałszywie pozytywnego wzrasta.
Wyobraźmy sobie na przykład, że rzucamy kostką o 20 ściankach. Prawdopodobieństwo, że kostka wypadnie na „1” wynosi tylko 5%. Jeśli jednak rzucisz dwiema kostkami na raz, prawdopodobieństwo, że jedna z nich wypadnie na „1”, wzrasta do 9,75%. Jeśli rzucimy pięcioma kostkami na raz, prawdopodobieństwo wzrasta do 22,6%.
Im więcej kości rzucimy, tym większe prawdopodobieństwo, że jedna z nich wypadnie na „1”. Podobnie, jeśli przeprowadzimy jednocześnie wiele testów hipotez przy poziomie istotności 0,05, prawdopodobieństwo, że otrzymamy wynik fałszywie dodatni, wzrośnie powyżej zaledwie 0,05.
Wiele porównań w ANOVA
Kiedy przeprowadzamy ANOVA, często porównujemy trzy lub więcej grup. Kiedy więc przeprowadzamy test post hoc, aby zbadać różnicę między średnimi grupowymi, chcemy zbadać wielokrotne porównania parami .
Załóżmy na przykład, że mamy cztery grupy: A, B, C i D. Oznacza to, że istnieje w sumie sześć porównań parami, które chcemy sprawdzić za pomocą testu post hoc:
A – B (różnica między średnią grupy A a średnią grupy B)
AC
OGŁOSZENIE
PNE.
komiksy
płyta CD
Jeśli mamy więcej niż cztery grupy, liczba porównań parami, które będziemy chcieli przeprowadzić, wzrośnie jeszcze bardziej. Poniższa tabela ilustruje liczbę porównań parami związanych z każdą liczbą grup, a także poziom błędu na rodzinę:
Należy zauważyć, że poziom błędu w przeliczeniu na rodzinę szybko rośnie wraz ze wzrostem liczby grup (a tym samym liczby porównań parami). W rzeczywistości, gdy dotrzemy do sześciu grup, szansa na uzyskanie fałszywego wyniku pozytywnego wynosi w rzeczywistości ponad 50%!
Oznacza to, że mielibyśmy poważne wątpliwości co do naszych wyników, gdybyśmy musieli przeprowadzać tak wiele porównań parami, wiedząc, że nasz poziom błędu rodzinnego jest tak wysoki.
Na szczęście testy post-hoc pozwalają nam na dokonywanie wielokrotnych porównań między grupami, jednocześnie kontrolując poziom błędów w poszczególnych rodzinach.
Przykład: Jednoczynnikowa ANOVA z testami post-hoc
Poniższy przykład ilustruje sposób przeprowadzenia jednoczynnikowej analizy ANOVA z testami post hoc.
Uwaga: w tym przykładzie zastosowano język programowania R, ale nie musisz znać języka R, aby zrozumieć wyniki testu lub najważniejsze wnioski.
Najpierw utworzymy zbiór danych zawierający cztery grupy (A, B, C, D) po 20 obserwacji w każdej grupie:
#make this example reproducible set.seed(1) #load tidyr library to convert data from wide to long format library(tidyr) #create wide dataset data <- data.frame(A = runif(20, 2, 5), B = runif(20, 3, 5), C = runif(20, 3, 6), D = runif(20, 4, 6)) #convert to long dataset for ANOVA data_long <- gather(data, key = "group", value = "amount", A, B, C, D) #view first six lines of dataset head(data_long) # group amount #1 To 2.796526 #2 A 3.116372 #3 A 3.718560 #4 A 4.724623 #5 A 2.605046 #6 A 4.695169
Następnie wykonamy jednokierunkową analizę ANOVA dla zbioru danych:
#fit anova model anova_model <- aov(amount ~ group, data = data_long) #view summary of anova model summary(anova_model) # Df Sum Sq Mean Sq F value Pr(>F) #group 3 25.37 8.458 17.66 8.53e-09 *** #Residuals 76 36.39 0.479
Z wyników tabeli ANOVA widzimy, że statystyka F wynosi 17,66, a odpowiadająca jej wartość p jest niezwykle mała.
Oznacza to, że mamy wystarczająco dużo dowodów, aby odrzucić hipotezę zerową, że wszystkie średnie grupowe są równe. Następnie możemy zastosować test post hoc, aby określić, które średnie grupowe różnią się od siebie.
Przeanalizujemy przykłady następujących testów post hoc:
Test Tukeya – przydatny, gdy chcemy dokonać wszystkich możliwych porównań parami
Metoda Holma – test nieco bardziej konserwatywny niż test Tukeya
Korekta Dunnetta – przydatna, gdy chcesz porównać średnią każdej grupy ze średnią kontrolną i nie chcesz porównywać między sobą średnich z leczenia.
Test Tukeya
Możemy wykonać test Tukeya dla wielokrotnych porównań, korzystając z wbudowanej funkcji R TukeyHSD() w następujący sposób:
#perform Tukey's Test for multiple comparisons
TukeyHSD(anova_model, conf.level=.95)
#Tukey multiple comparisons of means
# 95% family-wise confidence level
#
#Fit: aov(formula = amount ~ group, data = data_long)
#
#$group
# diff lwr upr p adj
#BA 0.2822630 -0.292540425 0.8570664 0.5721402
#CA 0.8561388 0.281335427 1.4309423 0.0011117
#DA 1.4676027 0.892799258 2.0424061 0.0000000
#CB 0.5738759 -0.000927561 1.1486793 0.0505270
#DB 1.1853397 0.610536271 1.7601431 0.0000041
#DC 0.6114638 0.036660419 1.1862672 0.0326371
Należy zauważyć, że określiliśmy, że nasz poziom ufności wynosi 95%, co oznacza, że chcemy, aby poziom błędu na rodzinę wynosił 0,05. R daje nam dwie metryki do porównania każdej różnicy parami:
- Przedział ufności dla średniej różnicy (podany przez wartości lwr i upr )
- Wartość p skorygowana o średnią różnicę
Przedział ufności i wartość p doprowadzą do tego samego wniosku.
Na przykład 95% przedział ufności dla średniej różnicy między grupą C a grupą A wynosi (0,2813, 1,4309), a ponieważ ten przedział nie zawiera zera, wiemy, że różnica między średnimi tych dwóch grup jest istotna statystycznie. W szczególności wiemy, że różnica jest dodatnia, ponieważ dolna granica przedziału ufności jest większa od zera.
Podobnie wartość p dla średniej różnicy między grupą C a grupą A wynosi 0,0011, czyli jest niższa od naszego poziomu istotności wynoszącego 0,05, co również wskazuje, że różnica między średnimi tych dwóch grup jest istotna statystycznie.
Możemy również wizualizować 95% przedziały ufności wynikające z testu Tukeya za pomocą funkcji plot() w R:
plot(TukeyHSD(anova_model, conf.level=.95))
Jeśli przedział zawiera zero, to wiemy, że różnica między średnimi grupowymi nie jest istotna statystycznie. W powyższym przykładzie różnice dla BA i CB nie są istotne statystycznie, ale różnice w przypadku pozostałych czterech porównań parami są istotne statystycznie.
Metoda Holma
Kolejnym testem post hoc, jaki możemy wykonać, jest metoda Holma. Test ten jest ogólnie uważany za bardziej konserwatywny niż test Tukeya.
Możemy użyć następującego kodu w R, aby uruchomić metodę Holma dla wielokrotnych porównań parami:
#perform holm's method for multiple comparisons
pairwise.t.test(data_long$amount, data_long$group, p.adjust="holm")
# Pairwise comparisons using t tests with pooled SD
#
#data: data_long$amount and data_long$group
#
#ABC
#B 0.20099 - -
#C 0.00079 0.02108 -
#D 1.9e-08 3.4e-06 0.01974
#
#P value adjustment method: holm
Ten test zapewnia siatkę wartości p dla każdego porównania parami. Na przykład wartość p dla różnicy między średnią grupy A i grupy B wynosi 0,20099.
Jeśli porównasz wartości p z tego testu z wartościami p z testu Tukeya, zauważysz, że każde z porównań parami prowadzi do tego samego wniosku, z wyjątkiem różnicy między grupami C i D. -wartość tej różnicy wyniosła 0,0505 w teście Tukeya w porównaniu do 0,02108 w metodzie Holma.
Tym samym za pomocą testu Tukeya doszliśmy do wniosku, że różnica między grupą C a grupą D nie była istotna statystycznie na poziomie istotności 0,05, natomiast stosując metodę Holma doszliśmy do wniosku, że różnica między grupą C a grupą D była istotna statystycznie.
Ogólnie rzecz biorąc, wartości p uzyskane metodą Holma są zwykle niższe niż wartości uzyskane za pomocą testu Tukeya.
Poprawka Dunnetta
Inną metodą, którą możemy zastosować do porównań wielokrotnych, jest korekta Dunetta. Zastosowalibyśmy to podejście, gdy chcemy porównać średnie każdej grupy ze średnią kontrolną, a nie chcemy porównywać między sobą środków leczenia.
Na przykład, korzystając z poniższego kodu, porównujemy średnie grupowe B, C i D ze średnimi grupy A. Dlatego używamy grupy A jako grupy kontrolnej i nie interesują nas różnice między grupami B, C ., i D.
#load multcomp library necessary for using Dunnett's Correction library(multicomp) #convert group variable to factor data_long$group <- as.factor(data_long$group) #fit anova model anova_model <- aov(amount ~ group, data = data_long) #performcomparisons dunnet_comparison <- glht(anova_model, linfct = mcp(group = "Dunnett")) #view summary of comparisons summary(dunnet_comparison) #Multiple Comparisons of Means: Dunnett Contrasts # #Fit: aov(formula = amount ~ group, data = data_long) # #Linear Assumptions: #Estimate Std. Error t value Pr(>|t|) #B - A == 0 0.2823 0.2188 1.290 0.432445 #C - A == 0 0.8561 0.2188 3.912 0.000545 *** #D - A == 0 1.4676 0.2188 6.707 < 1e-04 ***
Z wartości p na wyjściu możemy zobaczyć, co następuje:
- Różnica pomiędzy średnią grupy B i grupy A nie jest istotna statystycznie na poziomie istotności 0,05. Wartość p dla tego testu wynosi 0,4324 .
- Różnica pomiędzy średnią Grupy C i Grupy A jest istotna statystycznie na poziomie istotności 0,05. Wartość p dla tego testu wynosi 0,0005 .
- Różnica pomiędzy średnią Grupy D i Grupy A jest istotna statystycznie na poziomie istotności 0,05. Wartość p dla tego testu wynosi 0,00004 .
Jak zauważono wcześniej, w tym podejściu grupę A traktuje się jako grupę „kontrolną” i po prostu porównuje średnią wszystkich pozostałych grup ze średnią grupy A. Należy zauważyć, że nie przeprowadza się żadnych testów pod kątem różnic między grupami B, C i D, ponieważ nie nie zrób tego. Nie interesują mnie różnice pomiędzy tymi grupami.
Uwaga na temat testów post-hoc i mocy statystycznej
Testy post hoc doskonale kontrolują współczynnik błędów rodzinnych, ale ich kompromisem jest to, że zmniejszają moc statystyczną porównań. Rzeczywiście, jedynym sposobem na zmniejszenie poziomu błędu rodzinnego jest zastosowanie niższego poziomu istotności dla wszystkich indywidualnych porównań.
Na przykład, gdy używamy testu Tukeya do sześciu porównań parami i chcemy zachować współczynnik błędu rodzinnego wynoszący 0,05, powinniśmy zastosować poziom istotności około 0,011 dla każdego indywidualnego poziomu istotności. Im więcej porównań parami, tym niższy poziom istotności powinniśmy zastosować dla każdego indywidualnego poziomu istotności.
Problem w tym, że niższy poziom istotności odpowiada niższej mocy statystycznej. Oznacza to, że jeśli w populacji rzeczywiście istnieje różnica między średnimi grupowymi, jest mniejsze prawdopodobieństwo, że badanie o mniejszej mocy wykryje ją.
Jednym ze sposobów ograniczenia skutków tego kompromisu jest po prostu zmniejszenie liczby przeprowadzanych przez nas porównań parami. Na przykład w poprzednich przykładach przeprowadziliśmy sześć porównań parami dla czterech różnych grup. Jednakże, w zależności od potrzeb Twojego badania, możesz chcieć dokonać tylko kilku porównań.
Dokonując mniejszej liczby porównań, nie musisz tak bardzo zmniejszać mocy statystycznej.
Ważne jest, aby pamiętać, że przed wykonaniem ANOVA musisz dokładnie określić, które grupy chcesz dokonać porównań i jakiego testu post hoc użyjesz do przeprowadzenia tych porównań. W przeciwnym razie, jeśli po prostu zobaczysz, który test post hoc daje statystycznie istotne wyniki, zmniejsza to integralność badania.
Wniosek
W tym artykule dowiedzieliśmy się następujących rzeczy:
- ANOVA służy do określenia, czy istnieje statystycznie istotna różnica między średnimi z trzech lub więcej niezależnych grup.
- Jeśli analiza ANOVA daje wartość p poniżej naszego poziomu istotności, możemy zastosować testy post hoc, aby dowiedzieć się, które średnie grupowe różnią się od siebie.
- Testy post-hoc pozwalają nam kontrolować poziom błędów na rodzinę podczas wykonywania kilku porównań parami.
- Kompromisem polegającym na kontrolowaniu poziomu błędu rodzinnego jest mniejsza moc statystyczna. Możemy zmniejszyć skutki niższej mocy statystycznej, dokonując mniejszej liczby porównań parami.
- Najpierw musisz określić, na których grupach chcesz przeprowadzić porównania parami i jakiego testu post hoc w tym celu użyjesz.