Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

ANOVA de Welch en Python (étape par étape)



L’ANOVA de Welch est une alternative à l’ ANOVA unidirectionnelle typique lorsque l’ hypothèse d’égalité des variances n’est pas respectée.

L’exemple étape par étape suivant montre comment effectuer l’ANOVA de Welch en Python.

Étape 1 : Créer les données

Pour déterminer si trois techniques d’étude différentes conduisent à des résultats d’examen différents, un professeur assigne au hasard 10 étudiants à utiliser chaque technique (Technique A, B ou C) pendant une semaine, puis fait passer à chaque étudiant un examen de difficulté égale.

Les résultats des examens des 30 étudiants sont présentés ci-dessous :

A = [64, 66, 68, 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]

Étape 2 : Test des écarts égaux

Ensuite, nous pouvons effectuer le test de Bartlett pour déterminer si les variances entre chaque groupe sont égales.

Si la valeur p de la statistique de test est inférieure à un certain niveau de signification (comme α = 0,05), nous pouvons alors rejeter l’hypothèse nulle et conclure que tous les groupes n’ont pas la même variance.

Nous pouvons utiliser le code suivant pour effectuer le test de Bartlett en Python :

import scipy.stats as stats

#perform Bartlett's test 
stats.bartlett(A, B, C)

BartlettResult(statistic=9.039674395, pvalue=0.010890796567)

La valeur p ( .01089 ) du test de Bartlett est inférieure à α = .05, ce qui signifie que nous pouvons rejeter l’hypothèse nulle selon laquelle chaque groupe a la même variance.

Ainsi, l’hypothèse d’égalité des variances est violée et nous pouvons procéder à l’ANOVA de Welch.

Étape 3 : Effectuer l’ANOVA de Welch

Pour effectuer l’ANOVA de Welch en Python, nous pouvons utiliser la fonction welch_anova() du package Pingouin.

Tout d’abord, nous devons installer Pingouin :

pip install Pingouin

Ensuite, nous pouvons utiliser le code suivant pour effectuer l’ANOVA de Welch :

import pingouin as pg
import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'score': [64, 66, 68, 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 Welch's ANOVA
pg.welch_anova(dv='score', between='group', data=df)

        Source	ddof1	ddof2	        F	        p-unc	        np2
0	group	2	16.651295	9.717185	0.001598	0.399286

La valeur p globale ( 0,001598 ) du tableau ANOVA est inférieure à α = 0,05, ce qui signifie que nous pouvons rejeter l’hypothèse nulle selon laquelle les résultats des examens sont égaux entre les trois techniques d’étude.

Nous pouvons ensuite effectuer le test post-hoc de Games-Howell pour déterminer exactement quelles moyennes de groupe sont différentes :

pg.pairwise_gameshowell(dv='score', between='group', data=df)


        A	B	mean(A)	mean(B)	diff	se	 T	   df	   pval	
0	a	b	77.3	91.8	-14.5	3.843754 -3.772354 11.6767 0.0072
1	a	c	77.3	84.7	-7.4	3.952777 -1.872102 12.7528 0.1864
2	b	c	91.8	84.7	7.1	2.179959 3.256942  17.4419 0.0119

À partir des valeurs p, nous pouvons voir que la différence moyenne entre les groupes a et b est significativement différente et que la différence moyenne entre les groupes b et c est significativement différente.

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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *