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.

Comment effectuer une ANOVA à trois facteurs en Python



Une ANOVA à trois facteurs 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 qui ont été répartis sur trois facteurs.

L’exemple suivant montre comment effectuer une ANOVA à trois facteurs en Python.

Exemple : ANOVA à trois facteurs en Python

Supposons qu’un chercheur veuille déterminer si deux programmes d’entraînement conduisent à des améliorations moyennes différentes de la hauteur de saut chez les joueurs de basket-ball universitaires.

Le chercheur soupçonne que le sexe et la division (Division I ou II) peuvent également affecter la hauteur de saut, c’est pourquoi il collecte également des données sur ces facteurs.

Son objectif est d’effectuer une ANOVA à trois facteurs pour déterminer comment le programme d’entraînement, le sexe et la division affectent la hauteur de saut.

Utilisez les étapes suivantes pour effectuer cette ANOVA à trois facteurs en Python :

Étape 1 : Créer les données

Tout d’abord, créons un DataFrame pandas pour contenir les données :

import numpy as np
import pandas as pd

#create DataFrame
df = pd.DataFrame({'program': np.repeat([1, 2], 20),
                   'gender': np.tile(np.repeat(['M', 'F'], 10), 2),
                   'division': np.tile(np.repeat([1, 2], 5), 4),
                   'height': [7, 7, 8, 8, 7, 6, 6, 5, 6, 5,
                              5, 5, 4, 5, 4, 3, 3, 4, 3, 3,
                              6, 6, 5, 4, 5, 4, 5, 4, 4, 3,
                              2, 2, 1, 4, 4, 2, 1, 1, 2, 1]})

#view first ten rows of DataFrame 
df[:10]

	program	gender	division  height
0	1	M	1	  7
1	1	M	1	  7
2	1	M	1	  8
3	1	M	1	  8
4	1	M	1	  7
5	1	M	2	  6
6	1	M	2	  6
7	1	M	2	  5
8	1	M	2	  6
9	1	M	2	  5

Étape 2 : Effectuer l’ANOVA à trois facteurs

Ensuite, nous pouvons utiliser la fonction anova_lm() de la bibliothèque statsmodels pour effectuer l’ANOVA à trois :

import statsmodels.api as sm
from statsmodels.formula.api import ols

#perform three-way ANOVA
model = ols("""height ~ C(program) + C(gender) + C(division) +
               C(program):C(gender) + C(program):C(division) + C(gender):C(division) +
               C(program):C(gender):C(division)""", data=df).fit()

sm.stats.anova_lm(model, typ=2)

	                          sum_sq	df	F	        PR(>F)
C(program)	                  3.610000e+01	1.0	6.563636e+01	2.983934e-09
C(gender)	                  6.760000e+01	1.0	1.229091e+02	1.714432e-12
C(division)	                  1.960000e+01	1.0	3.563636e+01	1.185218e-06
C(program):C(gender)	          2.621672e-30	1.0	4.766677e-30	1.000000e+00
C(program):C(division)	          4.000000e-01	1.0	7.272727e-01	4.001069e-01
C(gender):C(division)	          1.000000e-01	1.0	1.818182e-01	6.726702e-01
C(program):C(gender):C(division)  1.000000e-01	1.0	1.818182e-01	6.726702e-01
Residual	                  1.760000e+01	32.0	NaN	        NaN

Étape 3 : Interpréter les résultats

La colonne Pr(>F) affiche la valeur p pour chaque facteur individuel et les interactions entre les facteurs.

D’après les résultats, nous pouvons voir qu’aucune des interactions entre les trois facteurs n’était statistiquement significative.

Nous pouvons également constater que chacun des trois facteurs (programme, sexe et division) était statistiquement significatif avec les valeurs p suivantes :

  • Valeur P du programme : 0,00000000298
  • Valeur P du sexe : 0,00000000000171
  • Valeur P de division : 0.00000185

En conclusion, nous dirions que le programme d’entraînement, le sexe et la division sont tous des indicateurs significatifs de l’augmentation de la hauteur de saut chez les joueurs.

Nous dirions également qu’il n’y a pas d’effets d’interaction significatifs entre ces trois facteurs.

Ressources additionnelles

Les didacticiels suivants expliquent comment adapter d’autres modèles ANOVA en Python :

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 *