Як виконати тест nemenyi post-hoc у python
Критерій Фрідмана є непараметричною альтернативою дисперсійному аналізу повторних вимірювань . Він використовується для визначення того, чи існує статистично значуща різниця між середніми значеннями трьох або більше груп, у яких однакові суб’єкти з’являються в кожній групі.
Якщо p-значення за критерієм Фрідмана є статистично значущим, ми можемо виконати пост-критерій Неменного, щоб точно визначити, які групи відрізняються.
Наступний покроковий приклад показує, як виконати тест Nemenyi у 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() , щоб виконати пост-тест Nemenyi:
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), щоб правильно виконати пост-тест.
Тест Nemeyi повертає 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.