Como realizar o teste de tukey em python
Uma ANOVA unidirecional é usada para determinar se há ou não uma diferença estatisticamente significativa entre as médias de três ou mais grupos independentes.
Se o valor p geral da tabela ANOVA estiver abaixo de um certo nível de significância, então temos evidências suficientes para dizer que pelo menos uma das médias do grupo é diferente das outras.
No entanto, isso não nos diz quais grupos são diferentes uns dos outros. Isto simplesmente nos diz que nem todas as médias dos grupos são iguais. Para saber exatamente quais grupos são diferentes entre si, precisamos realizar um teste post hoc .
Um dos testes post hoc mais comumente usados é o teste de Tukey , que nos permite realizar comparações pareadas entre as médias de cada grupo enquanto controlamos a taxa de erro familiar .
Este tutorial fornece um exemplo passo a passo de como realizar o teste de Tukey em Python.
Etapa 1: carregue os pacotes e funções necessários
Primeiro, carregaremos os pacotes e funções necessários em Python:
import pandas as pd
import numpy as np
from scipy. stats import f_oneway
from statsmodels. stats . multicomp import pairwise_tukeyhsd
Etapa 2: ajustar o modelo ANOVA
O código a seguir mostra como criar um conjunto de dados falso com três grupos (A, B e C) e ajustar um modelo ANOVA unidirecional aos dados para determinar se os valores médios de cada grupo são iguais:
#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)
Podemos ver que o valor p geral da tabela ANOVA é 0,01258 .
Como esse número é inferior a 0,05, temos evidências suficientes para afirmar que os valores médios de cada grupo não são iguais.
Portanto, podemos fazer o teste de Tukey para determinar exatamente quais médias de grupo são diferentes.
Passo 3: Realize o teste de Tukey
Para realizar o teste de Tukey em Python, podemos usar a função pairwise_tukeyhsd() da biblioteca 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 -------------------------------------------------- ---
Veja como interpretar o resultado:
- Valor P para a diferença de médias entre a e b: 0,0158
- Valor P para a diferença de médias entre a e c: 0,8864
- Valor P para a diferença de médias entre b e c: 0,0453
Assim, concluiríamos que existe uma diferença estatisticamente significativa entre as médias dos grupos a e b e dos grupos b e c , mas não há diferença estatisticamente significativa entre as médias dos grupos a e c .
Recursos adicionais
Como realizar ANOVA unidirecional em Python
Como realizar uma ANOVA bidirecional em Python
Como realizar ANOVA de medidas repetidas em Python