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

Puedes opinar sobre este contenido:
  • 0
  • 0
  • 0
  • 0

Actualizado el 7 de mayo de 2021, por Luis Benites.

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/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

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!