Cómo realizar una prueba de Ljung-Box en Python

Actualizado por ultima vez el 7 de mayo de 2021, por .

La prueba de Ljung-Box es una prueba estadística que verifica si existe autocorrelación en una serie de tiempo.

Utiliza las siguientes hipótesis:

H 0 : Los residuos se distribuyen de forma independiente.

H A : Los residuos no se distribuyen de forma independiente; exhiben correlación serial.

Idealmente, nos gustaría no rechazar la hipótesis nula. Es decir, nos gustaría ver que el valor p de la prueba sea mayor que 0.05 porque esto significa que los residuos de nuestro modelo de series de tiempo son independientes, lo que a menudo es una suposición que hacemos al crear un modelo.

Este tutorial explica cómo realizar una prueba de Ljung-Box en Python.

Ejemplo: prueba de Ljung-Box en Python

Para realizar la prueba Ljung-Box en una serie de datos en Python, podemos usar la función acorr_ljungbox () de la biblioteca statsmodels que usa la siguiente sintaxis:

acorr_ljungbox (x, rezagos = Ninguno)

dónde:

  • x: la serie de datos
  • retrasos: número de retrasos para probar

Esta función devuelve una estadística de prueba y un valor p correspondiente. Si el valor p es menor que algún umbral (por ejemplo, α = .05), puede rechazar la hipótesis nula y concluir que los residuos no se distribuyen de forma independiente.

El siguiente código muestra cómo usar esta función para realizar la prueba Ljung-Box en el conjunto de datos de statsmodels incorporado llamado «SUNACTIVITY»:

importar statsmodels.api como sm

#load data series
datos = sm.datasets.sunspots.load_pandas (). datos

#ver las primeras diez filas de series de datos 
datos [: 5]

AÑO SUNACTIVIDAD
0 1700,0 5,0
1 1701,0 11,0
2 1702,0 16,0
3 1703,0 23,0
4 1704,0 36,0

#ajustar el modelo ARMA al conjunto de datos
 res = sm. tsa . ARMA (dato [" SUNACTIVIDAD "], (1,1)). encajar (disp = -1)

# Realice la prueba de Ljung-Box en los residuos con retraso = 5 
cm. estadísticas . acorr_ljungbox (res. resid , lags = [5], return_df = True )

          lb_stat lb_pvalue
5 107.86488 1.157710e-21

El estadístico de prueba de la prueba es 107.86488 y el valor p de la prueba es 1.157710e-21 , que es mucho menor que 0.05. Por lo tanto, rechazamos la hipótesis nula de la prueba y concluimos que los residuales no son independientes.

Tenga en cuenta que elegimos usar un valor de retraso de 5 en este ejemplo, pero puede elegir cualquier valor que le gustaría usar para el retraso. Por ejemplo, podríamos usar en su lugar un valor de 20:

# Realice la prueba de Ljung-Box en los residuos con retraso = 20 
cm. estadísticas . acorr_ljungbox (res. resid , lags = [20], return_df = True )

           lb_stat lb_pvalue
20 343.634016 9.117477e-61

El estadístico de prueba de la prueba es 343.634016 y el valor p de la prueba es 9.117477e-61 , que es mucho menor que 0.05. Por lo tanto, rechazamos la hipótesis nula de la prueba una vez más y concluimos que los residuales no son independientes.

Dependiendo de su situación particular, puede elegir un valor más bajo o más alto para usar para el retraso.

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

Deja un comentario

Cuando la relación entre un conjunto de variables predictoras y una variable de respuesta es lineal, a menudo podemos usar…
statologos comunidad-2

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

You have Successfully Subscribed!