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 bidirectionnelle en Python



Une ANOVA bidirectionnelle 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 deux facteurs.

Le but d’une ANOVA bidirectionnelle est de déterminer l’impact de deux facteurs sur une variable de réponse et de déterminer s’il existe ou non une interaction entre les deux facteurs sur la variable de réponse.

Ce tutoriel explique comment effectuer une ANOVA bidirectionnelle en Python.

Exemple : ANOVA bidirectionnelle en Python

Un botaniste veut savoir si la croissance des plantes est influencée par l’exposition au soleil et la fréquence des arrosages. Elle plante 30 graines et les laisse pousser pendant deux mois dans différentes conditions d’exposition au soleil et de fréquence d’arrosage. Après deux mois, elle enregistre la hauteur de chaque plante, en pouces.

Suivez les étapes suivantes pour effectuer une ANOVA bidirectionnelle afin de déterminer si la fréquence d’arrosage et l’exposition au soleil ont un effet significatif sur la croissance des plantes, et pour déterminer s’il existe un effet d’interaction entre la fréquence d’arrosage et l’exposition au soleil.

Étape 1 : Saisissez les données.

Tout d’abord, nous allons créer un DataFrame pandas qui contient les trois variables suivantes :

  • eau : à quelle fréquence chaque plante a été arrosée : quotidiennement ou hebdomadairement
  • soleil : quantité d’exposition au soleil que chaque plante a reçue : faible, moyenne ou élevée
  • hauteur : la hauteur de chaque plante (en pouces) après deux mois
import numpy as np
import pandas as pd

#create data
df = pd.DataFrame({'water': np.repeat(['daily', 'weekly'], 15),
                   'sun': np.tile(np.repeat(['low', 'med', 'high'], 5), 2),
                   'height': [6, 6, 6, 5, 6, 5, 5, 6, 4, 5,
                              6, 6, 7, 8, 7, 3, 4, 4, 4, 5,
                              4, 4, 4, 4, 4, 5, 6, 6, 7, 8]})

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

	water	sun	height
0	daily	low	6
1	daily	low	6
2	daily	low	6
3	daily	low	5
4	daily	low	6
5	daily	med	5
6	daily	med	5
7	daily	med	6
8	daily	med	4
9	daily	med	5

Étape 2 : Effectuez l’ANOVA bidirectionnelle.

Ensuite, nous effectuerons l’ANOVA bidirectionnelle en utilisant la fonction anova_lm() de la bibliothèque statsmodels :

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

#perform two-way ANOVA
model = ols('height ~ C(water) + C(sun) + C(water):C(sun)', data=df).fit()
sm.stats.anova_lm(model, typ=2)

	           sum_sq	  df	      F	   PR(>F)
C(water)	 8.533333	 1.0	16.0000	 0.000527
C(sun)	        24.866667	 2.0	23.3125	 0.000002
C(water):C(sun)	 2.466667	 2.0	 2.3125	 0.120667
Residual	12.800000	24.0	    NaN	      NaN

Étape 3 : Interprétez les résultats.

Nous pouvons voir les valeurs p suivantes pour chacun des facteurs dans le tableau :

  • eau : valeur p = 0,000527
  • soleil : valeur p = 0,0000002
  • eau*soleil : valeur p = 0,120667

Puisque les valeurs p pour l’eau et le soleil sont toutes deux inférieures à 0,05, cela signifie que les deux facteurs ont un effet statistiquement significatif sur la hauteur des plantes.

Et comme la valeur p pour l’effet d’interaction (0,120667) n’est pas inférieure à 0,05, cela nous indique qu’il n’y a pas d’effet d’interaction significatif entre l’exposition au soleil et la fréquence d’arrosage.

Remarque : Bien que les résultats de l’ANOVA nous indiquent que la fréquence d’arrosage et l’exposition au soleil ont un effet statistiquement significatif sur la hauteur des plantes, nous devrons effectuer des tests post-hoc pour déterminer exactement comment les différents niveaux d’eau et de soleil affectent la hauteur des plantes.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes en Python :

Comment effectuer une ANOVA unidirectionnelle en Python
Comment effectuer une ANOVA à trois facteurs en Python

Ajouter un commentaire

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