Hoe een breusch-pagan-test uit te voeren in python


In regressieanalyse verwijst heteroskedasticiteit naar de ongelijke spreiding van residuen. Meer precies is dit het geval wanneer er een systematische verandering optreedt in de verdeling van de residuen over het bereik van de gemeten waarden.

Heteroscedasticiteit is een probleem omdat de gewone kleinste kwadratenregressie (OLS) ervan uitgaat dat de residuen afkomstig zijn uit een populatie met homoscedasticiteit , wat constante variantie betekent.

Wanneer heteroscedasticiteit aanwezig is in een regressieanalyse, worden de resultaten van de analyse moeilijk te geloven.

Eén manier om te bepalen of heteroskedasticiteit aanwezig is in een regressieanalyse is het gebruik van een Breusch-Pagan-test .

In deze tutorial wordt uitgelegd hoe u een Breusch-Pagan-test in Python uitvoert.

Voorbeeld: Breusch-Pagan-test in Python

Voor dit voorbeeld gebruiken we de volgende gegevensset die de kenmerken van 10 basketbalspelers beschrijft:

 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

We zullen een meervoudig lineair regressiemodel toepassen met behulp van scores als de responsvariabele en punten, assists en rebounds als de verklarende variabelen. Vervolgens zullen we een Breusch-Pagan-test uitvoeren om te bepalen of heteroskedasticiteit aanwezig is in de regressie.

Stap 1: Pas een meervoudig lineair regressiemodel toe.

Eerst zullen we een meervoudig lineair regressiemodel passen:

 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())

Stap 2: Voer een Breusch-Pagan-test uit.

Vervolgens zullen we een Breusch-Pagan-test uitvoeren om te bepalen of heteroscedasticiteit aanwezig is.

 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)]

Een Breusch-Pagan-test gebruikt de volgende nul- en alternatieve hypothesen:

De nulhypothese (H 0 ): Homoscedasticiteit is aanwezig.

De alternatieve hypothese: (Ha): homoscedasticiteit is niet aanwezig (dwz heteroskedasticiteit bestaat)

In dit voorbeeld is de Lagrange-vermenigvuldigingsstatistiek voor de test 6,004 en de overeenkomstige p-waarde 0,1114 . Omdat deze p-waarde niet kleiner is dan 0,05, slagen we er niet in de nulhypothese te verwerpen. We hebben niet voldoende bewijs om te beweren dat heteroscedasticiteit aanwezig is in het regressiemodel.

Hoe heteroscedasticiteit te verhelpen

In het vorige voorbeeld zagen we dat heteroscedasticiteit niet aanwezig was in het regressiemodel.

Wanneer er inderdaad sprake is van heteroscedasticiteit, zijn er drie gebruikelijke manieren om de situatie te verhelpen:

1. Transformeer de afhankelijke variabele. Eén manier om te corrigeren voor heteroskedasticiteit is door de afhankelijke variabele op de een of andere manier te transformeren. Een gebruikelijke transformatie is om eenvoudigweg de log van de afhankelijke variabele te nemen.

2. Definieer de afhankelijke variabele opnieuw. Een andere manier om heteroscedasticiteit te corrigeren is door de afhankelijke variabele opnieuw te definiëren. Een gebruikelijke manier om dit te doen is door een tarief te gebruiken voor de afhankelijke variabele, in plaats van de ruwe waarde.

3. Gebruik gewogen regressie. Een andere manier om te corrigeren voor heteroscedasticiteit is het gebruik van gewogen regressie. Dit type regressie kent een gewicht toe aan elk gegevenspunt op basis van de variantie van de aangepaste waarde. Wanneer de juiste gewichten worden gebruikt, kan dit het probleem van heteroscedasticiteit elimineren.

Lees meer details over elk van deze drie methoden in dit artikel .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert