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.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *