Как выполнить апостериорный тест Немени в Python


Критерий Фридмана — это непараметрическая альтернатива дисперсионному анализу повторных измерений.Он используется для определения того, существует ли статистически значимая разница между средними значениями трех или более групп, в которых одни и те же субъекты обнаруживаются в каждой группе.

Если p-значение теста Фридмана статистически значимо, мы можем выполнить апостериорный тест Неменьи, чтобы точно определить, какие группы отличаются.

В следующем пошаговом примере показано, как выполнить тест Неменьи в Python.

Шаг 1: Создайте данные

Предположим, исследователь хочет знать, одинаково ли время реакции пациентов на три разных препарата. Чтобы проверить это, он измеряет время реакции (в секундах) 10 разных пациентов на каждый из трех препаратов.

Мы можем создать следующие три массива, содержащие время отклика каждого пациента на каждое из трех лекарств:

group1 = [4, 6, 3, 4, 3, 2, 2, 7, 6, 5]
group2 = [5, 6, 8, 7, 7, 8, 4, 6, 4, 5]
group3 = [2, 2, 5, 3, 2, 2, 1, 4, 3, 2]

Шаг 2: Выполните тест Фридмана

Далее мы проведем тест Фридмана, используя функцию friedmanchisquare() из библиотеки scipy.stats:

from scipy import stats

#perform Friedman Test
stats. friedmanchisquare (group1, group2, group3)

FriedmanchisquareResult(statistic=13.3513513, pvalue=0.00126122012)

Тест Фридмана использует следующие нулевые и альтернативные гипотезы:

Нулевая гипотеза (H 0 ): Среднее значение для каждой совокупности равно.

Альтернативная гипотеза: (Ha): по крайней мере одно среднее значение генеральной совокупности отличается от остальных.

В этом примере тестовая статистика равна 13,35135 , а соответствующее значение p равно 0,00126.Поскольку это p-значение меньше 0,05, мы можем отвергнуть нулевую гипотезу о том, что среднее время ответа одинаково для всех трех препаратов.

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

Шаг 3: Проведите тест Неменьи

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

Для этого нам нужно установить библиотеку scikit-posthocs:

pip install scikit-posthocs

Далее мы будем использовать функцию posthoc_nemenyi_friedman() для выполнения апостериорного теста Неменьи:

import scikit_posthocs as sp
import numpy as np

#combine three groups into one array
data = np.array([group1, group2, group3])

#perform Nemenyi post-hoc test
sp. posthoc_nemenyi_friedman (data. T )

 0 1 2
0 1.000000 0.437407 0.065303
1 0.437407 1.000000 0.001533
2 0.065303 0.001533 1.000000

Примечание. Нам пришлось перенести массив numpy (data.T), чтобы правильно выполнить апостериорный тест.

Апостериорный тест Немейи возвращает p-значения для каждого попарного сравнения средних. На выходе мы можем увидеть следующие p-значения:

  • P-значение группы 0 по сравнению с группой 1: 0,4374
  • P-значение группы 0 по сравнению с группой 2: 0,0653
  • P-значение группы 1 по сравнению с группой 2: 0,0015

При α = 0,05 единственные две группы, которые имеют статистически значимо разные средние значения, — это группа 1 и группа 2.

Примечание. Тест Неменьи преобразовал номер группы из 1, 2, 3 в 0, 1, 2. Таким образом, группы из исходных данных, которые достоверно различаются, - это группы 2 и 3.

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.