Как выполнить тест тьюки в python
Однофакторный дисперсионный анализ используется для определения наличия или отсутствия статистически значимой разницы между средними значениями трех или более независимых групп.
Если общее значение p таблицы ANOVA ниже определенного уровня значимости, то у нас есть достаточно доказательств, чтобы сказать, что по крайней мере одно из групповых средних значений отличается от других.
Однако это не говорит нам о том, какие группы отличаются друг от друга. Это просто говорит нам о том, что не все средние значения по группам одинаковы. Чтобы точно узнать, какие группы отличаются друг от друга, нам нужно провести апостериорный тест .
Одним из наиболее часто используемых апостериорных тестов является тест Тьюки , который позволяет нам выполнять попарные сравнения между средними значениями каждой группы, контролируя при этом частоту семейных ошибок .
В этом руководстве представлен пошаговый пример выполнения теста Тьюки в 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. Выполните тест Тьюки.
Чтобы выполнить тест Тьюки в 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