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