Как выполнить тест макнемара на python
Тест Макнемара используется для определения наличия статистически значимой разницы в пропорциях между парными данными.
В этом руководстве объясняется, как выполнить тест Макнемара в Python.
Пример: тест Макнемара на Python
Допустим, исследователи хотят знать, может ли определенное маркетинговое видео изменить мнение людей о конкретном законе. Они опросили 100 человек, чтобы выяснить, поддерживают ли они закон. Затем они показывают маркетинговое видео всем 100 людям и снова опрашивают их после того, как видео будет готово.
В следующей таблице показано общее количество людей, поддержавших закон до и после просмотра видео:
Видео перед маркетингом | ||
---|---|---|
Видео после маркетинга | Поддерживать | Терпеть не могу |
Поддерживать | 30 | 40 |
Терпеть не могу | 12 | 18 |
Чтобы определить, существовала ли статистически значимая разница в доле людей, поддержавших закон до и после просмотра видео, мы можем провести тест Макнемара.
Шаг 1: Создайте данные.
Сначала мы создадим таблицу для хранения наших данных:
data = [[30, 40], [12, 18]]
Шаг 2. Проведите тест Макнемара.
Далее мы можем использовать функцию mcnemar() из библиотеки statsmodels Python, которая использует следующий синтаксис:
mcnemar (массив, точное = Истина, коррекция = Истина)
Золото:
- table: квадратная таблица непредвиденных обстоятельств.
- точное: если значение «точное» истинно, то будет использоваться биномиальное распределение. Если правильное значение ложно, то будет использоваться распределение Хи-квадрат.
- коррекция: если 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.
Это означает, что в обоих случаях мы отвергнем нулевую гипотезу и придем к выводу, что доля людей, поддержавших закон до и после просмотра маркетингового видеоролика, статистически различалась.