Comment effectuer un test Breusch-Pagan en Python



Dans l’analyse de régression, l’hétéroscédasticité fait référence à la dispersion inégale des résidus. Plus précisément, il s’agit du cas où il y a un changement systématique dans la répartition des résidus sur la plage des valeurs mesurées.

L’hétéroscédasticité est un problème car la régression des moindres carrés ordinaires (OLS) suppose que les résidus proviennent d’une population qui a une homoscédasticité , ce qui signifie une variance constante.

Lorsque l’hétéroscédasticité est présente dans une analyse de régression, les résultats de l’analyse deviennent difficiles à croire.

Une façon de déterminer si une hétéroscédasticité est présente dans une analyse de régression consiste à utiliser un test de Breusch-Pagan .

Ce tutoriel explique comment effectuer un test de Breusch-Pagan en Python.

Exemple : test de Breusch-Pagan en Python

Pour cet exemple, nous utiliserons l’ensemble de données suivant qui décrit les attributs de 10 joueurs de basket-ball :

import numpy as np
import pandas as pd

#create dataset
df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view dataset
df

	rating	points	assists	rebounds
0	90	25	5	11
1	85	20	7	8
2	82	14	7	10
3	88	16	8	6
4	94	27	5	6
5	90	20	7	9
6	76	12	6	6
7	75	15	9	10
8	87	14	9	10
9	86	19	5	7

Nous ajusterons un modèle de régression linéaire multiple en utilisant la notation comme variable de réponse et les points, les passes décisives et les rebonds comme variables explicatives. Ensuite, nous effectuerons un test de Breusch-Pagan pour déterminer si l’hétéroscédasticité est présente dans la régression.

Étape 1 : Ajustez un modèle de régression linéaire multiple.

Tout d’abord, nous allons ajuster un modèle de régression linéaire multiple :

import statsmodels.formula.api as smf

#fit regression model
fit = smf.ols('rating ~ points+assists+rebounds', data=df).fit()

#view model summary
print(fit.summary())

Étape 2 : Effectuez un test de Breusch-Pagan.

Ensuite, nous effectuerons un test de Breusch-Pagan pour déterminer si une hétéroscédasticité est présente.

from statsmodels.compat import lzip
import statsmodels.stats.api as sms

#perform Bresuch-Pagan test
names = ['Lagrange multiplier statistic', 'p-value',
        'f-value', 'f p-value']
test = sms.het_breuschpagan(fit.resid, fit.model.exog)

lzip(names, test)

[('Lagrange multiplier statistic', 6.003951995818433),
 ('p-value', 0.11141811013399583),
 ('f-value', 3.004944880309618),
 ('f p-value', 0.11663863538255281)]

Un test de Breusch-Pagan utilise les hypothèses nulles et alternatives suivantes :

L’hypothèse nulle (H 0 ) : L’homoscédasticité est présente.

L’hypothèse alternative : (Ha) : l’homoscédasticité n’est pas présente (c’est-à-dire que l’hétéroscédasticité existe)

Dans cet exemple, la statistique du multiplicateur de Lagrange pour le test est de 6,004 et la valeur p correspondante est de 0,1114 . Comme cette valeur p n’est pas inférieure à 0,05, nous ne parvenons pas à rejeter l’hypothèse nulle. 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.

Comment réparer l’hétéroscédasticité

Dans l’exemple précédent, nous avons vu que l’hétéroscédasticité n’était pas présente dans le modèle de régression.

Cependant, lorsque l’hétéroscédasticité est effectivement présente, il existe trois manières courantes de remédier à la situation :

1. Transformez la variable dépendante. Une façon de corriger l’hétéroscédasticité consiste à transformer la variable dépendante d’une manière ou d’une autre. Une transformation courante consiste simplement à prendre le journal de la variable dépendante.

2. Redéfinissez la variable dépendante. Une autre façon de corriger l’hétéroscédasticité consiste à redéfinir la variable dépendante. Une façon courante de procéder consiste à utiliser un taux pour la variable dépendante, plutôt que la valeur brute.

3. Utilisez la régression pondérée. Une autre façon de corriger l’hétéroscédasticité consiste à utiliser la régression pondérée. Ce type de régression attribue un poids à chaque point de données en fonction de la variance de sa valeur ajustée. Lorsque les pondérations appropriées sont utilisées, cela peut éliminer le problème de l’hétéroscédasticité.

Lisez plus de détails sur chacune de ces trois méthodes dans cet article .

Ajouter un commentaire

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