Як виконати тест mcnemar на python
Тест Мак-Немара використовується, щоб визначити, чи існує статистично значуща різниця в пропорціях між парними даними.
Цей підручник пояснює, як виконати тест McNemar у Python.
Приклад: тест McNemar на Python
Скажімо, дослідники хочуть знати, чи може певне маркетингове відео змінити думку людей щодо певного закону. Вони опитують 100 людей, щоб дізнатися, підтримують вони закон чи ні. Потім вони показують маркетингове відео всім 100 людям і знову опитують їх після завершення відео.
У наступній таблиці показано загальну кількість людей, які підтримали закон до та після перегляду відео:
Відео перед маркетингом | ||
---|---|---|
Відео після маркетингу | Підтримка | терпіти не можу |
Підтримка | 30 | 40 |
терпіти не можу | 12 | 18 |
Щоб визначити, чи була статистично значуща різниця у частці людей, які підтримали закон до та після перегляду відео, ми можемо виконати тест МакНемара.
Крок 1: Створіть дані.
Спочатку ми створимо таблицю для зберігання наших даних:
data = [[30, 40], [12, 18]]
Крок 2: Виконайте тест Мак-Немара
Далі ми можемо використати функцію mcnemar() із бібліотеки statsmodels Python, яка використовує такий синтаксис:
mcnemar(масив, точний=Істина, виправлення=Істина)
золото:
- таблиця: Квадратна таблиця непередбачених обставин
- exact: якщо exact має значення true, тоді буде використано біноміальний розподіл. Якщо правильне є хибним, буде використано розподіл хі-квадрат
- корекція: якщо істинно, використовується корекція безперервності. Як правило, ця корекція зазвичай застосовується, коли кількість клітинок таблиці менше 5.
Наступний код показує, як використовувати цю функцію в нашому прикладі:
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
В обох випадках – незалежно від того, застосована корекція безперервності чи ні – p-значення тесту менше 0,05.
Це означає, що в обох випадках ми відхилили б нульову гіпотезу та дійшли висновку, що частка людей, які підтримали закон до та після перегляду маркетингового відео, була статистично різною.