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 le test de White en Python (étape par étape)



Le test de White est utilisé pour déterminer si l’hétéroscédasticité est présente dans un modèle de régression.

L’hétéroscédasticité fait référence à la dispersion inégale des résidus à différents niveaux d’une variable de réponse , ce qui viole l’ hypothèse selon laquelle les résidus sont également dispersés à chaque niveau de la variable de réponse.

L’exemple étape par étape suivant montre comment effectuer le test de White en Python pour déterminer si l’hétéroscédasticité constitue ou non un problème dans un modèle de régression donné.

Étape 1 : Charger les données

Dans cet exemple, nous ajusterons un modèle de régression linéaire multiple à l’aide de l’ensemble de données mtcars .

Le code suivant montre comment charger cet ensemble de données dans un DataFrame pandas :

from sklearn.linear_model import LinearRegression
from statsmodels.stats.diagnostic import het_white
import statsmodels.api as sm
import pandas as pd

#define URL where dataset is located
url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/mtcars.csv"

#read in data
data = pd.read_csv(url)

#view summary of data
data.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 32 entries, 0 to 31
Data columns (total 12 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   model   32 non-null     object 
 1   mpg     32 non-null     float64
 2   cyl     32 non-null     int64  
 3   disp    32 non-null     float64
 4   hp      32 non-null     int64  
 5   drat    32 non-null     float64
 6   wt      32 non-null     float64
 7   qsec    32 non-null     float64
 8   vs      32 non-null     int64  
 9   am      32 non-null     int64  
 10  gear    32 non-null     int64  
 11  carb    32 non-null     int64  
dtypes: float64(5), int64(6), object(1)

Étape 2 : Ajuster le modèle de régression

Ensuite, nous ajusterons un modèle de régression en utilisant mpg comme variable de réponse et disp et hp comme deux variables prédictives :

#define response variable
y = data['mpg']

#define predictor variables
x = data[['disp', 'hp']]

#add constant to predictor variables
x = sm.add_constant(x)

#fit regression model
model = sm.OLS(y, x).fit()

Étape 3 : Effectuer le test de White

Ensuite, nous utiliserons la fonction het_white() du package statsmodels pour effectuer le test de White afin de déterminer si l’hétéroscédasticité est présente dans le modèle de régression :

#perform White's test
white_test = het_white(model.resid,  model.model.exog)

#define labels to use for output of White's test
labels = ['Test Statistic', 'Test Statistic p-value', 'F-Statistic', 'F-Test p-value']

#print results of White's test
print(dict(zip(labels, white_test)))

{'Test Statistic': 7.076620330416624, 'Test Statistic p-value': 0.21500404394263936,
 'F-Statistic': 1.4764621093131864, 'F-Test p-value': 0.23147065943879694}

Voici comment interpréter le résultat :

  • La statistique de test est X 2 = 7,0766 .
  • La valeur p correspondante est de 0,215 .

Le test de White utilise les hypothèses nulles et alternatives suivantes :

  • Null (H 0 ) : L’homoscédasticité est présente (les résidus sont également dispersés)
  • Alternative (H A ) : L’hétéroscédasticité est présente (les résidus ne sont pas également dispersés)

Puisque la valeur p n’est pas inférieure à 0,05, nous ne parvenons pas à rejeter l’hypothèse nulle.

Cela signifie que nous ne disposons pas de preuves suffisantes pour affirmer que l’hétéroscédasticité est présente dans le modèle de régression.

Que faire ensuite

Si vous ne parvenez pas à rejeter l’hypothèse nulle du test de White, alors l’hétéroscédasticité n’est pas présente et vous pouvez procéder à l’interprétation du résultat de la régression originale.

Cependant, si vous rejetez l’hypothèse nulle, cela signifie qu’il y a une hétéroscédasticité. Dans ce cas, les erreurs types affichées dans le tableau de sortie de la régression peuvent ne pas être fiables.

Il existe deux manières courantes de résoudre ce problème :

1. Transformez la variable de réponse.

Vous pouvez essayer d’effectuer une transformation sur la variable de réponse, par exemple en prenant le journal, la racine carrée ou la racine cubique de la variable de réponse. Cela entraîne souvent la disparition de l’hétéroscédasticité.

2. Utilisez la régression pondérée.

La régression pondérée attribue un poids à chaque point de données en fonction de la variance de sa valeur ajustée. Essentiellement, cela donne de faibles poids aux points de données qui ont des variances plus élevées, ce qui réduit leurs carrés résiduels. Lorsque les pondérations appropriées sont utilisées, cela peut éliminer le problème de l’hétéroscédasticité.

Ressources additionnelles

Les didacticiels suivants fournissent des informations supplémentaires sur la régression linéaire en Python :

Un guide complet de la régression linéaire en Python
Comment créer un tracé résiduel en Python
Comment calculer VIF en Python

Ajouter un commentaire

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