Hoe u de mcnemar-test in python uitvoert
De McNemar-test wordt gebruikt om te bepalen of er een statistisch significant verschil is in verhoudingen tussen gepaarde gegevens.
In deze tutorial wordt uitgelegd hoe u de McNemar-test in Python uitvoert.
Voorbeeld: de McNemar-test in Python
Stel dat onderzoekers willen weten of een bepaalde marketingvideo de mening van mensen over een bepaalde wet kan veranderen. Ze ondervragen 100 mensen om erachter te komen of ze de wet wel of niet steunen. Vervolgens laten ze de marketingvideo aan alle 100 mensen zien en ondervragen ze opnieuw nadat de video is afgelopen.
De volgende tabel toont het totale aantal mensen dat de wet steunde voor en na het bekijken van de video:
Video vóór marketing | ||
---|---|---|
Video na marketing | Steun | Kan niet uitstaan |
Steun | 30 | 40 |
Kan niet uitstaan | 12 | 18 |
Om te bepalen of er een statistisch significant verschil was in het aandeel mensen dat de wet steunde voor en na het bekijken van de video, kunnen we de McNemar-test uitvoeren.
Stap 1: Creëer de gegevens.
Eerst maken we een tabel waarin we onze gegevens bewaren:
data = [[30, 40], [12, 18]]
Stap 2: Voer de McNemar-test uit
Vervolgens kunnen we de functie mcnemar() uit de Python statsmodels-bibliotheek gebruiken, die de volgende syntaxis gebruikt:
mcnemar(matrix, exact=Waar, correctie=Waar)
Goud:
- tafel: Een vierkante kruistabel
- exact: Als exact waar is, wordt de binominale verdeling gebruikt. Als correct onwaar is, wordt de Chi-kwadraatverdeling gebruikt
- correctie: indien waar, wordt er gebruik gemaakt van een continuïteitscorrectie. Deze correctie wordt doorgaans toegepast als het aantal tabelcellen kleiner is dan 5.
De volgende code laat zien hoe u deze functie kunt gebruiken in ons specifieke voorbeeld:
from statsmodels.stats.contingency_tables import mcnemar #McNemar's Test with no continuity correction print(mcnemar(data, exact=False)) pvalue 0.000181 statistic 14.019 #McNemar's Test with continuity correction print(mcnemar(data, exact=False, correction=False)) pvalue 0.000103 statistic 15,077
In beide gevallen – ongeacht of continuïteitscorrectie wordt toegepast – is de p-waarde van de test kleiner dan 0,05.
Dit betekent dat we in beide gevallen de nulhypothese zouden verwerpen en zouden concluderen dat het aandeel mensen dat de wet steunde voor en na het bekijken van de marketingvideo statistisch verschillend was.