Mi IBM Inicie sesión Suscríbase

¿Qué son los modelos ARIMA?

24 de mayo de 2024

Autores

Joshua Noble

Data Scientist

Presentamos los modelos ARIMA

ARIMA son las siglas de Autoregressive Integrated Moving Average (media móvil integrada autorregresiva) y es una técnica de análisis de series temporales y de previsión de posibles valores futuros de una serie temporal.

El modelado autorregresivo y el modelado de medias móviles son dos enfoques diferentes para prever datos de series temporales. ARIMA integra estos dos enfoques, de ahí su nombre. La previsión es una rama del machine learning que utiliza el comportamiento pasado de una serie temporal para predecir uno o más valores futuros de esa serie temporal. Imagine que está comprando helado para abastecer una pequeña tienda. Si sabe que las ventas de helados han aumentado constantemente a medida que el clima se calienta, probablemente debería predecir que el pedido de la próxima semana debería ser un poco mayor que el pedido de esta semana. El aumento dependerá de la diferencia entre las ventas de esta semana y las de la anterior. No podemos prever el futuro sin un pasado con el que compararlo, por lo que los datos de series temporales pasadas son muy importantes para ARIMA y para todos los métodos de forecasting y análisis de series temporales.

ARIMA es uno de los enfoques más utilizados para la previsión de series temporales y se puede utilizar de dos maneras diferentes en función del tipo de datos de series temporales con los que se trabaje. En el primer caso, hemos creado un modelo ARIMA no estacional que no requiere tener en cuenta la estacionalidad en sus datos de series temporales. Predecimos el futuro simplemente basándonos en patrones en los datos pasados. En el segundo caso, tenemos en cuenta la estacionalidad, que son los ciclos regulares que afectan a la serie temporal. Estos ciclos pueden ser diarios, semanales o mensuales y ayudan a definir patrones en los datos pasados de la serie temporal que se pueden utilizar para pronosticar valores futuros. Al igual que gran parte de la ciencia de datos, la base de la previsión es disponer de buenos datos de series temporales con los que entrenar los modelos. Una serie temporal es una secuencia ordenada de mediciones de una variable a intervalos de tiempo igualmente espaciados. Es importante recordar que no todos los conjuntos de datos que tienen un elemento temporal son realmente datos de series temporales debido a este requisito de intervalos de tiempo igualmente espaciados.

El método Box-Jenkins

En 1970, los estadísticos George Box y Gwilym Jenkins propusieron lo que se conoce como el método Box-Jenkins para ajustar cualquier tipo de modelo de series temporales1. El enfoque parte del supuesto de que el proceso que generó la serie temporal puede aproximarse mediante un modelo si es estacionario.Consta de cuatro pasos:

Identificación: evalúe si la serie temporal es estacionaria y, si no lo es, cuántas diferencias son necesarias para hacerla estacionaria. Luego, genere datos diferenciados para utilizarlos en gráficos de diagnóstico. Identificar los parámetros de un modelo ARMA para los datos de autocorrelación y autocorrelación parcial.

Estimación: utilice los datos para entrenar los parámetros del modelo (es decir, los coeficientes).

Comprobación de diagnóstico: evalúe el modelo ajustado en el contexto de los datos disponibles y compruebe las áreas en las que se puede mejorar el modelo. En particular, esto implica comprobar el sobreajuste y calcular los errores residuales.

Previsión: ahora que tiene un modelo, puede comenzar a prever valores con su modelo.

Una vez que haya confirmado que su modelo se ajusta correctamente a sus datos, estará listo para comenzar la previsión ARIMA. Examinaremos cada uno de estos pasos en detalle.

Características de los datos de series temporales

Una serie temporal puede ser estacionaria o no estacionaria. Una serie de tiempo estacionaria tiene propiedades estadísticas que son constantes a lo largo del tiempo. Esto significa que las estadísticas como la media, la varianza y la autocorrelación no cambian a lo largo de los datos. La mayoría de los métodos estadísticos de previsión, incluido ARIMA, se basan en el supuesto de que las series temporales pueden hacerse aproximadamente estacionarias mediante una o varias transformaciones. Una serie estacionaria es comparativamente fácil de predecir porque se puede predecir simplemente que las propiedades estadísticas serán aproximadamente las mismas en el futuro que en el pasado. Trabajar con datos no estacionarios es posible pero difícil con un enfoque como ARIMA.

Otra característica clave de los datos de series temporales es si presentan una tendencia. Por ejemplo, los precios de los productos básicos en una tienda de comestibles de los últimos 50 años mostrarían una tendencia porque la inflación haría subir esos precios. Predecir datos que contienen tendencias puede ser difícil porque la tendencia oscurece los otros patrones en los datos. Si los datos tienen una línea de tendencia estable a la que vuelven constantemente, es posible que sean estacionarios, en cuyo caso la tendencia puede eliminarse simplemente ajustando una línea de tendencia y restando la tendencia de los datos antes de ajustarlos a un modelo. Si los datos no son estacionarios en tendencia, entonces podrían ser estacionarios en diferencia, en cuyo caso la tendencia puede eliminarse mediante la diferenciación. La forma más sencilla de diferenciar es restar el valor anterior de cada valor para obtener una medida de cuánto cambio está presente en los datos de la serie temporal. Por lo tanto, por ejemplo, si Yt es el valor de la serie temporal Y en el periodo t, entonces la primera diferencia de Y en el periodo t es igual a Yt-Yt-1.

Aquí podemos ver un gráfico de series temporales que no son estacionarias. Tiene una evidente tendencia al alza y muestra estacionalidad.

La estacionalidad aquí es un ciclo regular de 12 meses. Esto se podría solucionar diferenciando las series de tiempo en 12 unidades, de modo que podamos diferenciar abril de 1990 con abril de 1989. Una vez aplicada la diferenciación con un rezago de 12 unidades a la serie temporal, podemos ver una serie temporal más estacionaria. La varianza de esta serie temporal todavía cambia, pero se podría ajustar un modelo ARIMA a esta serie temporal y realizar pronósticos utilizándolo.

La estacionariedad puede ser confusa, por ejemplo, una serie temporal que tiene un comportamiento cíclico pero no una tendencia o estacionalidad sigue siendo estacionaria. Mientras los ciclos no tengan una duración fija, cuando observamos la serie no podemos saber dónde se producirán los picos y valles de los ciclos. Por lo general, una serie temporal estacionaria no tendrá patrones predecibles a largo plazo. Si se representaran los datos de la serie temporal en un gráfico lineal, tendrían un aspecto más o menos horizontal, con una varianza constante y sin picos ni caídas significativos.

Autocorrelación

Podemos ver el grado en que una serie de tiempo está correlacionada con sus valores pasados al calcular la autocorrelación. El cálculo de la autocorrelación puede responder a preguntas sobre si los datos exhiben aleatoriedad y qué tan relacionada está una observación con una observación inmediatamente adyacente. Esto nos puede dar una idea de qué tipo de modelo podría representar mejor los datos. Las autocorrelaciones suelen representarse gráficamente para ver la correlación entre los puntos, hasta la unidad de rezago inclusive.

Cada rezago en la autocorrelación se define como:

 rk=t=k+1T(yt-y¯)-(yt-k-y¯)t=1T(yt-y¯)2

r es cualquier rezago en la autocorrelación, T es la longitud de la serie temporal e y es el valor de la serie temporal. Los coeficientes de autocorrelación forman la función de autocorrelación o ACF.

En ACF, el coeficiente de correlación se encuentra en el eje x, mientras que el número de rezagos (denominado orden de rezago) se muestra en el eje y. Se puede crear un gráfico de autocorrelación en Python usando plot_acf de la biblioteca statsmodels y se puede crear en R usando la función acf.

En este gráfico ACF de una serie temporal diferenciada con un rezago de 12 unidades temporales, el rezago cero se correlaciona perfectamente consigo mismo. El primer rezago es negativo, el segundo rezago es ligeramente positivo, el tercer rezago es negativo, y así sucesivamente. Notará que el 12.º rezago está fuertemente correlacionado consigo mismo. Como estábamos viendo datos mensuales, esto tiene sentido. Podemos ver que la autocorrelación mantiene aproximadamente el mismo ciclo a lo largo de la serie temporal, una indicación de que nuestra serie temporal aún contiene una estacionalidad significativa. Los gráficos ACF también son útiles para ayudar a inferir los parámetros del modelo ARIMA que mejor se ajusten a estos datos.

Función de autocorrelación parcial (PACF)

Otro gráfico importante en la preparación para utilizar un modelo ARIMA en datos de series temporales es la función de autocorrelación parcial. Un gráfico ACF muestra la relación entre yt y yt−k para diferentes valores de k. Si yt e yt−1 están correlacionados, entonces yt−1 e yt−2 también lo estarán. Pero también es posible que yt e yt−2 estén correlacionados porque ambos están conectados a yt−1, en lugar de por cualquier nueva información contenida en yt−2 que pueda utilizarse para prever yt. Para superar este problema, podemos utilizar autocorrelaciones parciales para eliminar una serie de observaciones rezagadas. Estos miden la relación entre yt e yt−k  después de eliminar los efectos de los rezagos 1 a k. Por lo tanto, la primera autocorrelación parcial es idéntica a la primera autocorrelación, porque no hay nada entre ellas para eliminar. Cada autocorrelación parcial puede estimarse como el último coeficiente de un modelo autorregresivo.

Tanto si trabaja en R como en Python u otro lenguaje de programación o biblioteca, tendrá una forma de calcular el PACF y crear un gráfico PACF para facilitar la inspección. Se puede crear un gráfico de autocorrelación en Python utilizando plot_pacf de la biblioteca statsmodels y se puede crear en R utilizando la función pacf.

Este PACF utiliza los mismos datos que en el gráfico de ACF anterior. El gráfico PACF parte de 1 en lugar de 0 como en el gráfico ACF y muestra fuertes correlaciones hasta el desfase de 1,0, que se correlaciona con el mismo mes del año anterior. Después de ese primer año, vemos una cantidad decreciente de autocorrelación a medida que aumenta el número de rezagos. Ya que analizábamos los datos mensuales con una varianza que cambia de un año a otro, tiene sentido.

Autorregresión y media móvil

Como su nombre indica, las siglas ARIMA integran los modelos de autorregresión y media móvil en un solo modelo según los parámetros aprobados. Estas dos formas de modelar el cambio a lo largo de la serie temporal están relacionadas, pero tienen algunas diferencias clave. En un modelo de autorregresión, pronosticamos la variable de interés utilizando una combinación lineal de valores pasados de la variable. El término autorregresión indica que se trata de una regresión de la variable contra sí misma. Esta técnica es similar a un modelo de regresión lineal en cuanto a que utiliza los valores del pasado como entradas para la regresión. La autorregresión se define como:

 yt=C+ϕ1yt-1+ϕ2yt-2+...ϕqyt-q+ϵt

donde εt es ruido blanco. Esto es como una regresión múltiple pero con valores rezagados de yt como predictores. A esto lo llamamos un modelo AR(p), un modelo autorregresivo de orden p.

Por otro lado, un modelo de media móvil utiliza los errores de previsión pasados en lugar de utilizar los valores pasados de la variable de previsión en una regresión. Una media móvil simplemente calcula la media de k valores en una ventana, donde k es el tamaño de la ventana de la media móvil, y luego avanza la ventana. Los valores previstos se evalúan utilizando los valores reales para determinar el error en cada paso de la serie temporal. Una media móvil se define como:

 yt=C+ϵt+θ1ϵt-1+θ2ϵt-2+...θqϵt-q

εt es ruido blanco. Nos referimos a esto como un modelo MA(q), un modelo de media móvil de orden q. Por supuesto, no observamos los valores de εt, por lo que no es realmente una regresión en el sentido habitual. Observe que cada valor deyt puede considerarse como una media móvil ponderada de los últimos errores de previsión.

Normalmente, en un modelo ARIMA, se utiliza el término autorregresivo (AR) o el término de media móvil (MA). El diagrama ACF y el diagrama PACF se utilizan a menudo para determinar cuál de estos términos es el más apropiado.

Especificación de un modelo ARIMA

Una vez que la serie temporal se ha hecho estacionaria y se ha determinado la naturaleza de las autocorrelaciones, es posible ajustar un modelo ARIMA. Hay 3 parámetros clave para un modelo ARIMA que normalmente se denominan p, d y q.

p: el orden de la parte autorregresiva de ARIMA

d: el grado de diferenciación implicado

q: el orden de la parte de la media móvil

Suelen escribirse en el siguiente orden: ARIMA(p, d, q). Muchos lenguajes y paquetes de programación proporcionan una función ARIMA a la que se puede acceder con las series temporales que se van a analizar y estos tres parámetros. La mayoría de las veces, los datos se dividen en un conjunto de entrenamiento y otro de prueba para que la precisión del modelo pueda probarse después de haber sido entrenado. Por lo general, no es posible saber con solo mirar un gráfico temporal qué valores de p y q serán los más apropiados para los datos. Sin embargo, a menudo es posible utilizar los gráficos ACF y PACF para determinar los valores adecuados para p y q y, por lo tanto, esos gráficos son términos importantes para trabajar con ARIMA

Una rúbrica aproximada sobre cuándo utilizar términos de RA en el modelo es cuando:

  • los gráficos ACF muestran que la autocorrelación decae hacia cero
  • la gráfica PACF se corta rápidamente hacia cero
  • ACF de una serie estacionaria muestra positivo en Lag - 1

Una rúbrica aproximada para saber cuándo usar términos de MA en el modelo es cuando:

  • autocorrelación negativa en Lag - 1
  • ACF que cae bruscamente después de algunos retrasos
  • el PACF disminuye de forma gradual y no repentina

Hay algunos tipos de modelos ARIMA clásicos que puede encontrar.

ARIMA(1,0,0) = modelo autorregresivo de primer orden: si la serie es estacionaria y autocorrelacionada, quizás pueda predecirse como un múltiplo de su propio valor anterior, más una constante. Si las ventas de helados de mañana pueden predecirse directamente utilizando sólo las ventas de helados de hoy, se trata de un modelo autorregresivo de primer orden.

ARIMA(0,1,0) = paseo aleatorio: si la serie temporal no es estacionaria, el modelo más simple posible es un modelo de paseo aleatorio. Un paseo aleatorio es diferente de una lista de números aleatorios porque el siguiente valor de la secuencia es una modificación del valor anterior de la misma. Así es como modelamos a menudo los valores diferenciados de los precios de las acciones.

ARIMA(1,1,0) = modelo autorregresivo diferenciado de primer orden: si los errores de un modelo de paseo aleatorio están autocorrelacionados, tal vez el problema pueda solucionarse añadiendo un desfase de la variable dependiente a la ecuación de predicción, es decir, regresando la primera diferencia de Y sobre sí misma con un desfase de un periodo.

ARIMA(0,1,1) sin constante = modelos de suavizado exponencial simple: se utiliza para datos de series temporales sin estacionalidad ni tendencia. Requiere un único parámetro de suavizado que controle la tasa de influencia de las observaciones históricas (indicado con un valor de coeficiente entre 0 y 1). En esta técnica, los valores más cercanos a 1 significan que el modelo presta poca atención a las observaciones pasadas, mientras que los valores más pequeños estipulan que se tiene en cuenta una mayor parte del historial durante las predicciones.

ARIMA(0,1,1) con constante = modelos de suavizado exponencial simple con crecimiento. Es lo mismo que el suavizado exponencial simple, salvo que hay un término constante aditivo que hace que el valor Y de la serie temporal crezca a medida que avanza.

Por supuesto, hay muchas otras formas de ajustar los modelos ARIMA, por lo que a menudo calculamos varios modelos y los comparamos para ver cuál se ajusta mejor a nuestros datos. Todos estos son modelos de primer orden, lo que significa que mapean procesos lineales. Hay modelos de segundo orden que mapean procesos cuadráticos y modelos superiores que mapean procesos más complejos.

Comparación de modelos ARIMA

Normalmente, varios modelos ARIMA se ajustan a los datos y se comparan entre sí para encontrar cuál predice los patrones observados en los datos de series temporales. Existen tres métricas clave para evaluar la precisión de un modelo ARIMA:

Criterio de información de Akaike o AIC. Se utiliza ampliamente para seleccionar predictores para modelos de regresión, y también es útil para determinar el orden de un modelo ARIMA. El AIC cuantifica tanto la bondad del ajuste del modelo como la simplicidad/parsimonia del modelo en una única estadística. Una puntuación AIC más baja es mejor que una más alta, por lo que preferiríamos el modelo que tiene una puntuación más baja. El AIC favorece los modelos más simples, los modelos más complejos reciben puntuaciones más altas siempre que su precisión sea aproximadamente la misma que un modelo más simple. También existe el AIC corregido o AICC, al que simplemente se aplica una pequeña corrección para el tamaño de la muestra.

Criterio de información bayesiano o BIC. Este es otro criterio para la selección de modelos que penaliza la complejidad incluso más que el AIC. Al igual que ocurre con el AIC, los modelos con un BIC más bajo suelen preferirse a los que tienen puntuaciones más altas. Si su modelo se va a utilizar para la previsión a largo plazo, el BIC puede ser preferible, mientras que la previsión a corto plazo puede significar que el AIC es preferible.

El valor sigma al cuadrado o sigma2 es la varianza de los residuos del modelo. El término sigma describe la volatilidad del proceso hipotético. Si tiene datos muy volátiles pero una puntuación sigma al cuadrado muy baja, o a la inversa, datos no volátiles pero una puntuación sigma al cuadrado alta, es señal de que el modelo no está captando bien el proceso real de generación de datos.

Si hemos retenido un conjunto de datos de prueba, también podemos comparar métricas de precisión, como el RMSE, para diferentes intervalos de predicción. El modelo ARIMA puede predecir valores para un solo paso temporal en el futuro o para varios pasos a la vez.

Variaciones de ARIMA

Otro enfoque para configurar y comparar modelos ARIMA es utilizar Auto-ARIMA, que aplica tareas de configuración automatizadas para generar y comparar modelos ARIMA. Existen múltiples formas de llegar a cualquier modelo óptimo. El algoritmo generará varios modelos e intentará minimizar el AICc y el error de la estimación de máxima verosimilitud para obtener un modelo ARIMA.

El modelo autorregresivo integrado de media móvil estacional (Seasonal Autoregressive Integrated Moving Average, SARIMA o Seasonal ARIMA) es una extensión de ARIMA que admite datos de series temporales con un componente estacional. Para ello, añade tres nuevos hiperparámetros para especificar la autorregresión, la diferenciación y la media móvil para el componente estacional de la serie, así como un parámetro adicional para el periodo de la estacionalidad. Un modelo SARIMA se expresa típicamente como SARIMA((p,d,q),(P,D,Q)), donde las letras minúsculas indican el componente no estacional de la serie temporal y las letras mayúsculas indican el componente estacional

Los modelos vectoriales autorregresivos (o modelos VAR) se utilizan para series temporales multivariantes. Están estructuradas de forma que cada variable es una función lineal de los rezagos pasados de sí misma y de los rezagos pasados de las demás variables.

Los modelos ARIMA son una poderosa herramienta para analizar datos de series temporales para comprender procesos pasados, así como para prever valores futuros de una serie temporal. Los modelos ARIMA combinan modelos autorregresivos y modelos de media móvil para ofrecer al pronosticador una herramienta altamente parametrizable que puede utilizarse con una amplia variedad de datos de series temporales.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

Mixture of Experts | Pódcast

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Soluciones relacionadas

Soluciones relacionadas

Herramientas y soluciones analíticas

Con el fin de prosperar, las empresas deben utilizar los datos para fidelizar a sus clientes, automatizar los procesos empresariales e innovar con soluciones impulsadas por IA.

Explore soluciones analíticas
Servicios de asesoramiento sobre datos y análisis

Desbloquee el valor de los datos empresariales con IBM Consulting y cree una organización impulsada por conocimientos que ofrezca ventajas empresariales.

Descubra los servicios de análisis
IBM Cognos Analytics

Presentamos Cognos Analytics 12.0: conocimientos potenciados por IA para una mejor toma de decisiones.

Explore Cognos Analytics
Dé el siguiente paso

Con el fin de prosperar, las empresas deben utilizar los datos para fidelizar a sus clientes, automatizar los procesos empresariales e innovar con soluciones impulsadas por IA.

Explore soluciones analíticas Descubra los servicios de análisis
Notas a pie de página

1 Time Series Analysis: Forecasting and Control [Análisis de series temporales: previsión y control]. Holden Day. 1970.