Cómo realizar una prueba Breusch-Godfrey en Python

Uno de los supuestos clave en la regresión lineal es que no existe correlación entre los residuos, por ejemplo, los residuos son independientes.

Para probar la autocorrelación de primer orden, podemos realizar una prueba de Durbin-Watson . Sin embargo, si queremos probar la autocorrelación en órdenes superiores, entonces debemos realizar una prueba de Breusch-Godfrey .

Esta prueba utiliza las siguientes hipótesis :

H 0 (hipótesis nula): No hay autocorrelación en ningún orden menor o igual que p .

H A (hipótesis alternativa): Existe autocorrelación en algún orden menor o igual que p .

El estadístico de prueba sigue una distribución de chi-cuadrado con p grados de libertad.

Si el valor p que corresponde a este estadístico de prueba es menor que un cierto nivel de significancia (por ejemplo, 0.05), entonces podemos rechazar la hipótesis nula y concluir que existe autocorrelación entre los residuos en algún orden menor o igual ap .

Para realizar una prueba Breusch-Godfrey en Python, podemos usar la función acorr_breusch_godfrey () de la biblioteca statsmodels .

El siguiente ejemplo paso a paso explica cómo realizar la prueba Breusch-Godfrey en Python.

Paso 1: crear los datos

Primero, creemos un conjunto de datos que contenga dos variables predictoras (x1 y x2) y una variable de respuesta (y).

importar pandas como pd

#create dataset 
df = pd. DataFrame ({' x1 ': [3, 4, 4, 5, 8, 9, 11, 13, 14, 16, 17, 20],
                   ' x2 ': [7, 7, 8, 8, 12, 4, 5, 15, 9, 17, 19, 19],
                    ' y ': [24, 25, 25, 27, 29, 31, 34, 34, 39, 30, 40, 49]})

#ver las primeras cinco filas del df del conjunto de datos
 . cabeza ()

	x1 x2 y
0 3 7 24
1 4 7 25
2 4 8 25
3 5 8 27
4 8 12 29

Paso 2: ajustar un modelo de regresión

A continuación, podemos ajustar un modelo de regresión lineal múltiple utilizando x1 y x2 como variables predictoras e y como variable de respuesta .

importar modelos de estadísticas. api  como sm

#define la variable de respuesta
 y = df [' y ']

#definir variables predictoras
 x = gl [[' x1 ', ' x2 ']]

#add constante a las variables predictoras
 x = sm. add_constant (x)

#fit modelo de regresión lineal
 modelo = sm. MCO (y, x). encajar ()

Paso 3: Realice la prueba de Breusch-Godfrey

A continuación, realizaremos la prueba de Breusch-Godfrey para probar la autocorrelación entre los residuos en el orden p . Para este ejemplo, elegiremos p = 3.

importar modelos de estadísticas. estadísticas . diagnóstico  como dg
 
# realizar la prueba de Breusch-Godfrey en el orden p = 3
 imprimir (dg. acorr_breusch_godfrey (modelo, nlags = 3 ))

(8.70314827, 0.0335094873, 5.27967224, 0.0403980576)

El primer valor de la salida representa la estadística de prueba y el segundo valor representa el valor p correspondiente.

Desde la salida podemos ver lo siguiente:

  • Estadístico de prueba X 2 = 8.7031
  • Valor p = 0,0335

Dado que este valor p es menor que 0.05, podemos rechazar la hipótesis nula y concluir que existe autocorrelación entre los residuos en algún orden menor o igual a 3.

Cómo manejar la autocorrelación

Si rechaza la hipótesis nula y concluye que la autocorrelación está presente en los residuos, entonces tiene algunas opciones diferentes para corregir este problema si lo considera lo suficientemente serio:

  • Para una correlación serial positiva, considere agregar rezagos de la variable dependiente y / o independiente al modelo.
  • Para una correlación serial negativa, verifique que ninguna de sus variables esté sobrediferenciada .
  • Para la correlación estacional, considere agregar variables ficticias estacionales al modelo.

Recursos adicionales

Una guía completa para la regresión lineal en Python
Cómo realizar una prueba de Durbin-Watson en Python
Cómo realizar una prueba de Ljung-Box en Python

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

Una transformación box-cox es un método comúnmente utilizado para transformar un conjunto de datos que no se distribuye normalmente en…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!