Как выполнить тест тьюки в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *