Hoe u de nemenyi post-hoc-test uitvoert in python
De Friedman-test is een niet-parametrisch alternatiefvoor ANOVA met herhaalde metingen . Het wordt gebruikt om te bepalen of er al dan niet een statistisch significant verschil bestaat tussen de gemiddelden van drie of meer groepen waarin dezelfde onderwerpen in elke groep voorkomen.
Als de p-waarde van de Friedman-test statistisch significant is, kunnen we de Nemenyi post-hoc-test uitvoeren om precies te bepalen welke groepen verschillend zijn.
Het volgende stapsgewijze voorbeeld laat zien hoe u de Nemenyi-test in Python uitvoert.
Stap 1: Creëer de gegevens
Stel dat een onderzoeker wil weten of de reactietijden van patiënten gelijk zijn bij drie verschillende medicijnen. Om dit te testen mat hij de reactietijd (in seconden) van tien verschillende patiënten op elk van de drie medicijnen.
We kunnen de volgende drie tabellen maken die de responstijden voor elke patiënt op elk van de drie medicijnen bevatten:
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]
Stap 2: Voer de Friedman-test uit
Vervolgens zullen we de Friedman-test uitvoeren met behulp van de friedmanchisquare() functie uit de scipy.stats-bibliotheek:
from scipy import stats #perform Friedman Test stats. friedmanchisquare (group1, group2, group3) FriedmanchisquareResult(statistic=13.3513513, pvalue=0.00126122012)
De Friedman-test gebruikt de volgende nul- en alternatieve hypothesen:
De nulhypothese (H 0 ): Het gemiddelde van elke populatie is gelijk.
De alternatieve hypothese: (Ha): Ten minste één populatiegemiddelde verschilt van de andere.
In dit voorbeeld is de teststatistiek 13,35135 en de overeenkomstige p-waarde 0,00126 . Omdat deze p-waarde kleiner is dan 0,05, kunnen we de nulhypothese verwerpen dat de gemiddelde responstijd voor alle drie de geneesmiddelen hetzelfde is.
Met andere woorden, we hebben voldoende bewijs om te concluderen dat het type medicijn dat wordt gebruikt statistisch significante verschillen in responstijd veroorzaakt.
Stap 3: Voer de Nemenyi-test uit
Vervolgens kunnen we de Nemenyi post-hoc-test uitvoeren om precies te bepalen welke groepen verschillende gemiddelden hebben.
Om dit te doen, moeten we de scikit-posthocs-bibliotheek installeren:
pip install scikit-posthocs
Vervolgens zullen we de functie posthoc_nemenyi_friedman() gebruiken om de post-hoc-test van Nemenyi uit te voeren:
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
Opmerking: we moesten de numpy-array (data.T) transponeren om de post-hoc-test correct uit te voeren.
De post-hoc-test van Nemeyi retourneert p-waarden voor elke paarsgewijze vergelijking van gemiddelden. Uit het resultaat kunnen we de volgende p-waarden zien:
- P-waarde van groep 0 vergeleken met groep 1: 0,4374
- P-waarde van groep 0 vergeleken met groep 2: 0,0653
- P-waarde van groep 1 vergeleken met groep 2: 0,0015
Bij α = 0,05 zijn Groep 1 en Groep 2 de enige twee groepen met statistisch significant verschillende gemiddelden.
Opmerking: de test van Nemenyi heeft het groepsnummer omgezet van 1, 2, 3 naar 0, 1, 2. De groepen in de oorspronkelijke gegevens die significant verschillen zijn dus de groepen 2 en 3.