Как выполнить тест Тьюки в 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
-----------------------------------------------------
 a b 8.4 0.0158 1.4272 15.3728 True
 a c 1.3 0.8864 -5.6728 8.2728 False
 b c -7.1 0.0453 -14.0728 -0.1272 True
-----------------------------------------------------

Вот как интерпретировать вывод:

  • P-значение для разницы в средних значениях между a и b: 0,0158 .
  • P-значение для разницы в средних значениях между a и c: 0,8864 .
  • P-значение для разницы средних значений между b и c: 0,0453 .

Таким образом, мы можем заключить, что существует статистически значимая разница между средними значениями групп а и b и групп b и c , но нет статистически значимой разницы между средними значениями групп а и с .

Дополнительные ресурсы

Как выполнить односторонний ANOVA в Python
Как выполнить двухсторонний ANOVA в Python
Как выполнить дисперсионный анализ с повторными измерениями в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.