Comment effectuer le test de Tukey en Python
Une ANOVA unidirectionnelle est utilisée pour déterminer s’il existe ou non une différence statistiquement significative entre les moyennes de trois groupes indépendants ou plus.
Si la valeur p globale du tableau ANOVA est inférieure à un certain niveau de signification, alors nous disposons de preuves suffisantes pour affirmer qu’au moins une des moyennes des groupes est différente des autres.
Cependant, cela ne nous dit pas quels groupes sont différents les uns des autres. Cela nous dit simplement que toutes les moyennes du groupe ne sont pas égales. Afin de savoir exactement quels groupes sont différents les uns des autres, nous devons effectuer un test post hoc .
L’un des tests post hoc les plus couramment utilisés est le test de Tukey , qui nous permet d’effectuer des comparaisons par paires entre les moyennes de chaque groupe tout en contrôlant le taux d’erreur par famille .
Ce didacticiel fournit un exemple étape par étape de la façon d’effectuer le test de Tukey en Python.
Étape 1 : Charger les packages et les fonctions nécessaires
Tout d’abord, nous allons charger les packages et fonctions nécessaires en Python :
import pandas as pd
import numpy as np
from scipy.stats import f_oneway
from statsmodels.stats.multicomp import pairwise_tukeyhsd
Étape 2 : Ajuster le modèle ANOVA
Le code suivant montre comment créer un faux ensemble de données avec trois groupes (A, B et C) et ajuster un modèle ANOVA unidirectionnel aux données pour déterminer si les valeurs moyennes de chaque groupe sont égales :
#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)
Nous pouvons voir que la valeur p globale du tableau ANOVA est de 0,01258 .
Puisque ce chiffre est inférieur à 0,05, nous disposons de suffisamment de preuves pour affirmer que les valeurs moyennes dans chaque groupe ne sont pas égales.
Ainsi, nous pouvons procéder au test de Tukey pour déterminer exactement quelles moyennes de groupe sont différentes.
Étape 3 : Effectuer le test de Tukey
Pour effectuer le test de Tukey en Python, nous pouvons utiliser la fonction pairwise_tukeyhsd() de la bibliothèque 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 -----------------------------------------------------
Voici comment interpréter le résultat :
- Valeur P pour la différence de moyenne entre a et b : 0,0158
- Valeur P pour la différence de moyenne entre a et c : 0,8864
- Valeur P pour la différence de moyenne entre b et c : 0,0453
Ainsi, nous conclurions qu’il existe une différencestatistiquement significative entre les moyennes des groupes a et b et des groupes b et c , mais pas de différence statistiquement significative entre les moyennes des groupes a et c .
Ressources additionnelles
Comment effectuer une ANOVA unidirectionnelle en Python
Comment effectuer une ANOVA bidirectionnelle en Python
Comment effectuer une ANOVA à mesures répétées en Python