Como realizar um teste breusch-pagan em python


Na análise de regressão, a heterocedasticidade refere-se à dispersão desigual dos resíduos. Mais precisamente, este é o caso quando existe uma mudança sistemática na distribuição dos resíduos ao longo do intervalo de valores medidos.

A heterocedasticidade é um problema porque a regressão de mínimos quadrados ordinários (OLS) assume que os resíduos vêm de uma população que possui homocedasticidade , ou seja, variância constante.

Quando a heterocedasticidade está presente em uma análise de regressão, os resultados da análise tornam-se difíceis de acreditar.

Uma maneira de determinar se a heterocedasticidade está presente em uma análise de regressão é usar um teste de Breusch-Pagan .

Este tutorial explica como realizar um teste Breusch-Pagan em Python.

Exemplo: teste Breusch-Pagan em Python

Para este exemplo, usaremos o seguinte conjunto de dados que descreve os atributos de 10 jogadores de basquete:

 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

Ajustaremos um modelo de regressão linear múltipla usando pontuação como variável de resposta e pontos, assistências e rebotes como variáveis explicativas. A seguir, realizaremos um teste de Breusch-Pagan para determinar se a heterocedasticidade está presente na regressão.

Etapa 1: ajuste um modelo de regressão linear múltipla.

Primeiro, ajustaremos um modelo de regressão linear múltipla:

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

Etapa 2: execute um teste de Breusch-Pagan.

A seguir, realizaremos um teste de Breusch-Pagan para determinar se a heterocedasticidade está presente.

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

Um teste de Breusch-Pagan usa as seguintes hipóteses nulas e alternativas:

A hipótese nula (H 0 ): A homocedasticidade está presente.

A hipótese alternativa: (Ha): a homocedasticidade não está presente (ou seja, existe heterocedasticidade)

Neste exemplo, a estatística do multiplicador de Lagrange para o teste é 6,004 e o valor p correspondente é 0,1114 . Como este valor p não é inferior a 0,05, não rejeitamos a hipótese nula. Não temos evidências suficientes para afirmar que a heterocedasticidade está presente no modelo de regressão.

Como corrigir a heterocedasticidade

No exemplo anterior, vimos que a heterocedasticidade não estava presente no modelo de regressão.

No entanto, quando a heterocedasticidade está de facto presente, existem três formas comuns de remediar a situação:

1. Transforme a variável dependente. Uma maneira de corrigir a heterocedasticidade é transformar a variável dependente de alguma forma. Uma transformação comum é simplesmente obter o logaritmo da variável dependente.

2. Redefina a variável dependente. Outra forma de corrigir a heterocedasticidade é redefinir a variável dependente. Uma forma comum de fazer isso é usar uma taxa para a variável dependente, em vez do valor bruto.

3. Use regressão ponderada. Outra forma de corrigir a heterocedasticidade é usar regressão ponderada. Este tipo de regressão atribui um peso a cada ponto de dados com base na variância do seu valor ajustado. Quando os pesos apropriados são usados, isso pode eliminar o problema da heterocedasticidade.

Leia mais detalhes sobre cada um desses três métodos neste artigo .

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *