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.

Dodaj komentarz

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