Как выполнить тест макнемара на 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.

Это означает, что в обоих случаях мы отвергнем нулевую гипотезу и придем к выводу, что доля людей, поддержавших закон до и после просмотра маркетингового видеоролика, статистически различалась.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *