Как выполнить апостериорный тест немени в 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 ): среднее значение каждой популяции одинаково.
Альтернативная гипотеза: (Ха): По крайней мере одно среднее значение генеральной совокупности отличается от остальных.
В этом примере статистика теста равна 13,35135 , а соответствующее значение p — 0,00126 . Поскольку это значение p меньше 0,05, мы можем отвергнуть нулевую гипотезу о том, что среднее время ответа одинаково для всех трех препаратов.
Другими словами, у нас есть достаточно доказательств, чтобы сделать вывод, что тип используемого лекарства вызывает статистически значимые различия во времени ответа.
Шаг 3. Выполните тест Неменьи.
Затем мы можем выполнить апостериорный тест Неменьи, чтобы точно определить, какие группы имеют разные средние значения.
Для этого нам нужно установить библиотеку scikit-posthocs:
pip install scikit-posthocs
Далее мы воспользуемся функцией posthoc_nemeNY_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.