Jak wykonać test post-hoc nemenyi w pythonie
Test Friedmana jest nieparametryczną alternatywądla ANOVA z powtarzanymi pomiarami . Służy do określenia, czy istnieje statystycznie istotna różnica między średnimi z trzech lub więcej grup, w których w każdej grupie występują ci sami pacjenci.
Jeśli wartość p z testu Friedmana jest istotna statystycznie, możemy wykonać test post hoc Nemenyi’ego, aby dokładnie określić, które grupy się różnią.
Poniższy przykład pokazuje krok po kroku, jak wykonać test Nemenyi w Pythonie.
Krok 1: Utwórz dane
Załóżmy, że badacz chce wiedzieć, czy czas reakcji pacjentów w przypadku trzech różnych leków jest taki sam. Aby to sprawdzić, zmierzył czas reakcji (w sekundach) 10 różnych pacjentów na każdy z trzech leków.
Możemy utworzyć następujące trzy tabele zawierające czasy reakcji każdego pacjenta na każdy z trzech leków:
group1 = [4, 6, 3, 4, 3, 2, 2, 7, 6, 5] group2 = [5, 6, 8, 7, 7, 8, 4, 6, 4, 5] group3 = [2, 2, 5, 3, 2, 2, 1, 4, 3, 2]
Krok 2: Wykonaj test Friedmana
Następnie przeprowadzimy test Friedmana wykorzystując funkcję friedmanchisquare() z biblioteki scipy.stats:
from scipy import stats #perform Friedman Test stats. friedmanchisquare (group1, group2, group3) FriedmanchisquareResult(statistic=13.3513513, pvalue=0.00126122012)
Test Friedmana wykorzystuje następujące hipotezy zerowe i alternatywne:
Hipoteza zerowa (H 0 ): Średnia w każdej populacji jest równa.
Hipoteza alternatywna: (Ha): Co najmniej jedna średnia populacji różni się od pozostałych.
W tym przykładzie statystyka testowa wynosi 13,35135 , a odpowiadająca jej wartość p wynosi 0,00126 . Ponieważ ta wartość p jest mniejsza niż 0,05, możemy odrzucić hipotezę zerową, że średni czas odpowiedzi jest taki sam dla wszystkich trzech leków.
Innymi słowy, mamy wystarczające dowody, aby stwierdzić, że rodzaj stosowanego leku powoduje statystycznie istotne różnice w czasie reakcji.
Krok 3: Wykonaj test Nemenyi
Następnie możemy wykonać test post-hoc Nemenyi’ego, aby dokładnie określić, które grupy mają różne średnie.
W tym celu musimy zainstalować bibliotekę scikit-posthocs:
pip install scikit-posthocs
Następnie użyjemy funkcji posthoc_nemenyi_friedman() do wykonania testu post-hoc Nemenyi’ego:
import scikit_posthocs as sp
import numpy as np
#combine three groups into one array
data = np. array ([group1, group2, group3])
#perform Nemenyi post-hoc test
sp. posthoc_nemenyi_friedman ( data.T )
0 1 2
0 1.000000 0.437407 0.065303
1 0.437407 1.000000 0.001533
2 0.065303 0.001533 1.000000
Uwaga: aby poprawnie wykonać test post-hoc, musieliśmy dokonać transpozycji tablicy numpy (data.T).
Test post-hoc Nemeyi’ego zwraca wartości p dla każdego porównania średnich parami. Z wyniku możemy zobaczyć następujące wartości p:
- Wartość P grupy 0 w porównaniu z grupą 1: 0,4374
- Wartość P grupy 0 w porównaniu z grupą 2: 0,0653
- Wartość P grupy 1 w porównaniu z grupą 2: 0,0015
Przy α = 0,05 jedynymi dwiema grupami, które mają statystycznie istotnie różne średnie, są Grupa 1 i Grupa 2.
Uwaga: test Nemenyi’ego przekształcił numer grupy z 1, 2, 3 na 0, 1, 2. Zatem grupy w oryginalnych danych, które znacząco się różnią, to grupy 2 i 3.