Jak wykonać test mcnemara w pythonie
Test McNemara służy do określenia, czy istnieje statystycznie istotna różnica w proporcjach pomiędzy sparowanymi danymi.
W tym samouczku wyjaśniono, jak wykonać test McNemara w języku Python.
Przykład: test McNemara w Pythonie
Załóżmy, że badacze chcą wiedzieć, czy określony film marketingowy może zmienić opinie ludzi na temat konkretnego prawa. Przeprowadzają ankietę wśród 100 osób, aby dowiedzieć się, czy popierają prawo. Następnie pokazują film marketingowy wszystkim 100 osobom i ponownie przeprowadzają z nimi ankietę po zakończeniu filmu.
Poniższa tabela przedstawia łączną liczbę osób, które poparły ustawę przed i po obejrzeniu filmu:
Film przed marketingiem | ||
---|---|---|
Film po wprowadzeniu na rynek | Wsparcie | Nie mogę znieść |
Wsparcie | 30 | 40 |
Nie mogę znieść | 12 | 18 |
Aby ustalić, czy istniała statystycznie istotna różnica w odsetku osób popierających prawo przed i po obejrzeniu filmu, możemy wykonać test McNemara.
Krok 1: Utwórz dane.
Najpierw utworzymy tabelę do przechowywania naszych danych:
data = [[30, 40], [12, 18]]
Krok 2: Wykonaj test McNemara
Następnie możemy użyć funkcji mcnemar() z biblioteki Pythona statsmodels, która wykorzystuje następującą składnię:
mcnemar(tablica, dokładne = prawda, korekta = prawda)
Złoto:
- stół: Kwadratowa tabela kontyngencji
- dokładny: Jeśli wartość dokładna ma wartość true, zastosowany zostanie rozkład dwumianowy. Jeżeli poprawna wartość jest fałszywa, zastosowany zostanie rozkład Chi-kwadrat
- korekta: jeśli ma wartość true, stosowana jest korekta ciągłości. Zwykle tę korektę stosuje się, gdy liczba komórek tabeli jest mniejsza niż 5.
Poniższy kod pokazuje, jak używać tej funkcji w naszym konkretnym przykładzie:
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
W obu przypadkach – niezależnie od tego, czy zastosowano korekcję ciągłości, czy nie – wartość p testu jest mniejsza niż 0,05.
Oznacza to, że w obu przypadkach odrzucilibyśmy hipotezę zerową i doszlibyśmy do wniosku, że odsetek osób, które poparły prawo przed i po obejrzeniu filmu marketingowego, różnił się statystycznie.