Come eseguire un test di breusch-pagan in python
Nell’analisi di regressione, l’eteroschedasticità si riferisce alla dispersione non uniforme dei residui. Più precisamente, questo è il caso in cui si verifica un cambiamento sistematico nella distribuzione dei residui nell’intervallo dei valori misurati.
L’eteroschedasticità è un problema perché la regressione dei minimi quadrati ordinari (OLS) presuppone che i residui provengano da una popolazione che presenta omoschedasticità , ovvero varianza costante.
Quando l’eteroschedasticità è presente in un’analisi di regressione, i risultati dell’analisi diventano difficili da credere.
Un modo per determinare se l’eteroschedasticità è presente in un’analisi di regressione è utilizzare un test di Breusch-Pagan .
Questo tutorial spiega come eseguire un test di Breusch-Pagan in Python.
Esempio: test di Breusch-Pagan in Python
Per questo esempio, utilizzeremo il seguente set di dati che descrive gli attributi di 10 giocatori di basket:
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
Adatteremo un modello di regressione lineare multipla utilizzando il punteggio come variabile di risposta e punti, assist e rimbalzi come variabili esplicative. Successivamente, eseguiremo un test di Breusch-Pagan per determinare se nella regressione è presente l’eteroschedasticità.
Passaggio 1: adattare un modello di regressione lineare multipla.
Innanzitutto, adatteremo un modello di regressione lineare multipla:
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())
Passaggio 2: eseguire un test di Breusch-Pagan.
Successivamente, eseguiremo un test di Breusch-Pagan per determinare se è presente eteroschedasticità.
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 multiply statistic', 6.003951995818433), ('p-value', 0.11141811013399583), ('f-value', 3.004944880309618), ('f p-value', 0.11663863538255281)]
Un test di Breusch-Pagan utilizza le seguenti ipotesi nulle e alternative:
Ipotesi nulla (H 0 ): è presente l’omoschedasticità.
Ipotesi alternativa: (Ha): l’omoschedasticità non è presente (cioè esiste l’eteroschedasticità)
In questo esempio, la statistica del moltiplicatore di Lagrange per il test è 6,004 e il valore p corrispondente è 0,1114 . Poiché questo valore p non è inferiore a 0,05, non riusciamo a rifiutare l’ipotesi nulla. Non abbiamo prove sufficienti per affermare che l’eteroschedasticità sia presente nel modello di regressione.
Come risolvere l’eteroschedasticità
Nell’esempio precedente abbiamo visto che l’eteroschedasticità non era presente nel modello di regressione.
Tuttavia, quando l’eteroschedasticità è effettivamente presente, esistono tre modi comuni per porre rimedio alla situazione:
1. Trasforma la variabile dipendente. Un modo per correggere l’eteroschedasticità è trasformare in qualche modo la variabile dipendente. Una trasformazione comune consiste semplicemente nel prendere il logaritmo della variabile dipendente.
2. Ridefinire la variabile dipendente. Un altro modo per correggere l’eteroschedasticità è ridefinire la variabile dipendente. Un modo comune per farlo è utilizzare un tasso per la variabile dipendente, anziché il valore grezzo.
3. Utilizzare la regressione ponderata. Un altro modo per correggere l’eteroschedasticità consiste nell’utilizzare la regressione ponderata. Questo tipo di regressione assegna un peso a ciascun punto dati in base alla varianza del relativo valore adattato. Quando vengono utilizzati i pesi appropriati, ciò può eliminare il problema dell’eteroschedasticità.
Leggi maggiori dettagli su ciascuno di questi tre metodi in questo articolo .