La heteroscedasticidad es un término estadístico y se define como la dispersión desigual de los residuos. Más específicamente, se refiere a un rango de valores medidos, el cambio en la dispersión de los residuos. La heterocedasticidad presenta un desafío porque la regresión de mínimos cuadrados ordinarios (OLS) considera los residuos desechados de una población que tiene homocedasticidad, lo que significa una varianza constante. Si hay una heterocedasticidad presente para un análisis de regresión, entonces no se puede confiar fácilmente en el resultado del análisis.
La prueba de Breusch-Pagan es una forma de verificar si existe heterocedasticidad en el análisis de regresión. Una prueba de Breusch-Pagan sigue las siguientes hipótesis:
Hipótesis:
- La hipótesis nula (H0): Significa que la Homocedasticidad está presente.
- La hipótesis alternativa: (Ha): Significa que la Homocedasticidad no está presente (es decir, existe heterocedasticidad)
Sintaxis para instalar la biblioteca numNumPypy, pandas y statsmodels:
pip3 install numpy pandas statsmodels
Realización de una prueba de Breusch-Pegan:
Realizar una prueba de Breusch-Pegan es un proceso paso a paso. Estos se han discutido a continuación.
Paso 1: importar bibliotecas.
El primer paso es importar las bibliotecas que hemos instalado anteriormente.
Python3
# Importing libraries import numpy as np import pandas as pd import statsmodels.formula.api as smf
Paso 2: Crear un conjunto de datos.
Entonces necesitamos crear un conjunto de datos.
Python3
# Create a dataset dataframe = pd.DataFrame({'rating': [92, 84, 87, 82, 98, 94, 75, 80, 83, 89], 'points': [27, 30, 15, 26, 27, 20, 16, 18, 19, 20], 'runs': [5000, 7000, 5102, 8019, 1200, 7210, 6200, 9214, 4012, 3102], 'wickets': [110, 120, 110, 80, 90, 119, 116, 100, 90, 76]})
Paso 3: ajuste un modelo de regresión lineal múltiple.
El siguiente paso es ajustar un modelo de regresión lineal múltiple. Como ejemplo, estamos considerando la calificación como la variable de respuesta y los puntos, las carreras y los wickets como las variables explicativas.
Python3
# Importing libraries import numpy as np import pandas as pd import statsmodels.formula.api as smf # Create a dataset dataframe = pd.DataFrame({'rating': [92, 84, 87, 82, 98, 94, 75, 80, 83, 89], 'points': [27, 30, 15, 26, 27, 20, 16, 18, 19, 20], 'runs': [5000, 7000, 5102, 8019, 1200, 7210, 6200, 9214, 4012, 3102], 'wickets': [110, 120, 110, 80, 90, 119, 116, 100, 90, 76]}) # fit regression model fit = smf.ols('rating ~ points+runs+wickets', data=dataframe).fit() print(fit.summary())
Producción:
Paso 4: Realice la prueba de Breusch-Pagan.
El siguiente paso es realizar la prueba de Breusch-Pagan para determinar si existe heterocedasticidad.
Python3
# Importing libraries import numpy as np import pandas as pd import statsmodels.formula.api as smf from statsmodels.compat import lzip import statsmodels.stats.api as sms # Creating a dataset dataframe = pd.DataFrame({'rating': [92, 84, 87, 82, 98, 94, 75, 80, 83, 89], 'points': [27, 30, 15, 26, 27, 20, 16, 18, 19, 20], 'runs': [5000, 7000, 5102, 8019, 1200, 7210, 6200, 9214, 4012, 3102], 'wickets': [110, 120, 110, 80, 90, 119, 116, 100, 90, 76]}) # Fit the regression model fit = smf.ols('rating ~ points+runs+wickets', data=dataframe).fit() # Conduct the Breusch-Pagan test names = ['Lagrange multiplier statistic', 'p-value', 'f-value', 'f p-value'] # Get the test result test_result = sms.het_breuschpagan(fit.resid, fit.model.exog) lzip(names, test_result)
Producción:
Interpretación de salida:
Aquí, el estadístico del multiplicador de Lagrange para la prueba resulta ser igual a 4,364 y el valor p correspondiente resulta ser igual a 0,224. Dado que el valor p es mayor que 0,05, no podemos rechazar la hipótesis nula. Por lo tanto, no tenemos pruebas suficientes para decir que la heterocedasticidad está presente en el modelo de regresión.
Cómo corregir la heterocedasticidad:
En el ejemplo anterior, la heteroscedasticidad estaba ausente en el modelo de regresión. Pero para el caso en que realmente exista heterocedasticidad, hay tres formas de solucionar esto:
- Transformar la variable dependiente: Podemos alterar la variable dependiente usando alguna técnica. Por ejemplo, podemos tomar el registro de la variable dependiente.
- Redefinir la variable dependiente: Podemos redefinir la variable dependiente. Por ejemplo, usar una tasa para la variable dependiente que el valor defectuoso.
- Usar regresión ponderada: La última forma es usar regresión ponderada. En este tipo de regresión, el peso se asigna a cada punto de datos sobre la base de la varianza de su valor ajustado. El uso de pesos adecuados puede eliminar el problema de la heterocedasticidad.