Як виконати тест tukey на python
Односторонній дисперсійний аналіз використовується для визначення того, чи існує статистично значуща різниця між середніми значеннями трьох або більше незалежних груп.
Якщо загальне p-значення таблиці ANOVA нижче певного рівня значущості, то ми маємо достатньо доказів, щоб стверджувати, що принаймні одне з групових середніх відрізняється від інших.
Однак це не говорить нам , які групи відрізняються одна від одної. Це просто говорить нам про те, що не всі середні групові показники однакові. Для того, щоб точно знати, які групи відрізняються одна від одної, нам потрібно провести ретельний тест .
Одним із найбільш часто використовуваних репресивних тестів є тест Тьюкі , який дозволяє нам виконувати попарні порівняння між середніми значеннями кожної групи, контролюючи при цьому частоту помилок у групі .
Цей підручник надає покроковий приклад того, як виконати тест Tukey у Python.
Крок 1. Завантажте необхідні пакети та функції
Спочатку ми завантажимо необхідні пакети та функції на Python:
import pandas as pd
import numpy as np
from scipy. stats import f_oneway
from statsmodels. stats . multicomp import pairwise_tukeyhsd
Крок 2: Підберіть модель ANOVA
Наступний код показує, як створити фальшивий набір даних із трьома групами (A, B і C) і підібрати односторонню модель ANOVA до даних, щоб визначити, чи рівні середні значення кожної групи:
#enter data for three groups a = [85, 86, 88, 75, 78, 94, 98, 79, 71, 80] b = [91, 92, 93, 90, 97, 94, 82, 88, 95, 96] c = [79, 78, 88, 94, 92, 85, 83, 85, 82, 81] #perform one-way ANOVA f_oneway(a, b, c) F_onewayResult(statistic=5.167774552944481, pvalue=0.012582197136592609)
Ми бачимо, що загальне p-значення з таблиці ANOVA становить 0,01258 .
Оскільки це число менше 0,05, у нас є достатньо доказів, щоб стверджувати, що середні значення в кожній групі не однакові.
Отже, ми можемо виконати тест Тьюкі, щоб точно визначити, які групові середні відрізняються.
Крок 3: Виконайте тест Тьюкі
Щоб виконати тест Tukey у Python, ми можемо використати функцію pairwise_tukeyhsd() із бібліотеки statsmodels :
#create DataFrame to hold data df = pd. DataFrame ({'score': [85, 86, 88, 75, 78, 94, 98, 79, 71, 80, 91, 92, 93, 90, 97, 94, 82, 88, 95, 96, 79, 78, 88, 94, 92, 85, 83, 85, 82, 81], 'group': np. repeat (['a', 'b', 'c'], repeats= 10 )}) # perform Tukey's test tukey = pairwise_tukeyhsd(endog=df['score'], groups=df['group'], alpha= 0.05 ) #display results print (tukey) Multiple Comparison of Means - Tukey HSD, FWER=0.05 ==================================================== === group1 group2 meandiff p-adj lower upper reject -------------------------------------------------- --- ab 8.4 0.0158 1.4272 15.3728 True ac 1.3 0.8864 -5.6728 8.2728 False bc -7.1 0.0453 -14.0728 -0.1272 True -------------------------------------------------- ---
Ось як інтерпретувати результат:
- Значення P для різниці середніх між a і b: 0,0158
- Значення P для різниці середніх значень між a і c: 0,8864
- Значення P для різниці середніх між b і c: 0,0453
Таким чином, можна зробити висновок, що існує статистично значуща різниця між середніми значеннями груп a і b і груп b і c , але немає статистично значущої різниці між середніми значеннями груп a і c .
Додаткові ресурси
Як виконати односторонній дисперсійний аналіз у Python
Як виконати двосторонній дисперсійний аналіз у Python
Як виконувати повторювані вимірювання ANOVA в Python