Saltar al contenido
Introducción

Los modelos ARMA (AutoRegressive Moving Average) y ARIMA (AutoRegressive Integrated Moving Average) son herramientas fundamentales en el análisis de series de tiempo. Ambos modelos son capaces de capturar y predecir patrones y tendencias en datos secuenciales.

Los modelos ARMA se utilizan específicamente para modelar series de tiempo estacionarias, es decir, aquellas cuyas propiedades estadísticas, como la media y la varianza, permanecen constantes a lo largo del tiempo. Estos modelos describen la serie de tiempo como una combinación lineal de sus valores pasados y un término de error estocástico. La parte autoregresiva (AR) de un modelo ARMA predice el valor actual de la serie de tiempo en función de sus valores anteriores, mientras que la parte de media móvil (MA) utiliza los errores pasados para predecir los errores futuros.

Por otro lado, los modelos ARIMA se emplean para modelar series de tiempo no estacionarias, es decir, aquellas que presentan tendencias y/o estacionalidad. Además de las partes AR y MA, los modelos ARIMA incluyen una parte de integración (I), que consiste en diferenciar la serie de tiempo para hacerla estacionaria. Esto implica calcular las diferencias entre observaciones sucesivas hasta obtener una serie estacionaria.

En ambos modelos, el ajuste adecuado de los parámetros es esencial para obtener pronósticos precisos. Python ofrece bibliotecas como statsmodels y pmdarima, que facilitan la estimación de estos parámetros y la construcción de modelos ARMA y ARIMA. Estas bibliotecas proporcionan herramientas para el análisis, ajuste y validación de los modelos, lo que permite a los analistas realizar análisis avanzados de series de tiempo con facilidad.

Resumen

Los modelos ARMA (Autoregressive Moving Average) y ARIMA (Autoregressive Integrated Moving Average) son herramientas fundamentales en el análisis de series de tiempo para predecir valores futuros. Ambos modelos se basan en la premisa de que los valores actuales de una serie de tiempo están relacionados con los valores pasados de esa misma serie.

En detalle, un modelo ARMA es una combinación de dos componentes principales: un modelo autorregresivo (AR) y un modelo de media móvil (MA). El modelo AR utiliza los valores previos de la serie de tiempo para predecir los valores futuros, mientras que el modelo MA utiliza los errores pasados para realizar las predicciones. Al combinar estos términos, el modelo ARMA puede ofrecer predicciones precisas sobre los valores futuros de la serie de tiempo.

Por otro lado, el modelo ARIMA es una extensión del modelo ARMA que incluye una componente adicional de integración (I). Esta integración se utiliza para convertir una serie de tiempo no estacionaria en una serie estacionaria. Una serie de tiempo se considera estacionaria cuando su media y varianza permanecen constantes a lo largo del tiempo. Al convertir la serie de tiempo en estacionaria, el modelo ARIMA permite aplicar técnicas estadísticas más simples y precisas, lo que mejora la precisión de las predicciones.

En resumen, mientras que el modelo ARMA se utiliza para predecir valores futuros en una serie de tiempo estacionaria, el modelo ARIMA se emplea para predecir valores futuros en una serie de tiempo no estacionaria, transformándola primero en una forma estacionaria. Ambos modelos son esenciales en el análisis y la predicción de series de tiempo en una amplia variedad de campos.

Aplicación teórica

Modelo ARMA (Autoregressive Moving Average)

El modelo ARMA (Autoregressive Moving Average) es un modelo ampliamente utilizado en el análisis de series de tiempo para capturar las características de dependencia temporal y estacionalidad en datos secuenciales. Este modelo combina dos componentes fundamentales: el autoregresivo (AR) y el de media móvil (MA), proporcionando una forma eficaz de modelar series de tiempo estacionarias. A continuación, se exploran sus fundamentos matemáticos y cómo se utilizan para el análisis de datos.

Componentes del Modelo ARMA

1. Componente Autoregresivo (AR):
   - Un componente autoregresivo de orden \(p\) se basa en la idea de que el valor de una serie de tiempo en un período dado depende linealmente de sus valores pasados. Matemáticamente, se expresa como:

\[
X_t = \phi_1 X_{t-1} + \phi_2 X_{t-2} + \cdots + \phi_p X_{t-p} + \epsilon_t
\]

   donde:
   - \(X_t\) es el valor de la serie en el tiempo \(t\).
   - \(\phi_1, \phi_2, \ldots, \phi_p\) son los parámetros del modelo.
   - \(\epsilon_t\) es el término de error en el tiempo \(t\), que se asume como una serie de ruido blanco.

2. Componente de Media Móvil (MA):
   - Un componente de media móvil de orden \(q\) modela el valor de la serie como una función lineal de los errores pasados. Matemáticamente, se expresa como:

\[
X_t = \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} + \eta_t
\]

   donde:
   - \(\theta_1, \theta_2, \ldots, \theta_q\) son los parámetros del modelo.
   - \(\eta_t\) es el valor observado en el tiempo \(t\), que incluye tanto el componente AR como el MA.

### Modelo ARMA(p, q)

Un modelo ARMA combina ambos componentes, autoregresivo y de media móvil, en una sola fórmula. La forma general del modelo ARMA(p, q) es:

\[
X_t = \phi_1 X_{t-1} + \phi_2 X_{t-2} + \cdots + \phi_p X_{t-p} + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} + \epsilon_t
\]

Estimación de Parámetros

Los parámetros del modelo ARMA (\(\phi\) y \(\theta\)) se estiman típicamente usando métodos de máxima verosimilitud. Estos métodos buscan los valores de \(\phi\) y \(\theta\) que maximizan la probabilidad de observar los datos dados los parámetros del modelo. El proceso general incluye:

1. Identificación del Modelo: Determinar los órdenes \(p\) y \(q\) adecuados para el modelo ARMA, generalmente utilizando herramientas como el criterio de información de Akaike (AIC) o el criterio de información bayesiano (BIC).

2. Estimación de Parámetros: Usar técnicas como el método de máxima verosimilitud o el método de mínimos cuadrados para estimar los parámetros \(\phi\) y \(\theta\).

3. Diagnóstico del Modelo: Verificar la validez del modelo ajustado mediante el análisis de residuos. Los residuos deben comportarse como ruido blanco para que el modelo sea adecuado.

Función de Autocorrelación y Autocorrelación Parcial

Para entender la estructura de los datos y los órdenes \(p\) y \(q\) del modelo ARMA, es útil analizar las funciones de autocorrelación (ACF) y autocorrelación parcial (PACF):

- Función de Autocorrelación (ACF): Mide la correlación entre la serie de tiempo y sus valores rezagados. En un modelo MA(q), la ACF se anula después del rezago \(q\).

- Función de Autocorrelación Parcial (PACF): Mide la correlación entre la serie de tiempo y sus valores rezagados después de eliminar el efecto de los rezagos intermedios. En un modelo AR(p), la PACF se anula después del rezago \(p\).

Ejemplo Numérico

Supongamos que tenemos una serie de tiempo y queremos ajustar un modelo ARMA(1, 1). La ecuación general del modelo ARMA(1, 1) es:

\[
X_t = \phi_1 X_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t
\]

Para ajustar el modelo, seguimos estos pasos:

1. Identificación: Determinar los valores de \(\phi_1\) y \(\theta_1\) mediante la estimación de parámetros.

2. Estimación: Usar métodos de máxima verosimilitud para encontrar \(\phi_1\) y \(\theta_1\).

3. Pronóstico: Usar el modelo ajustado para hacer pronósticos futuros.

Conclusión

El modelo ARMA es una herramienta poderosa para modelar y pronosticar series de tiempo estacionarias. Al combinar los componentes autoregresivos y de media móvil, el modelo ARMA captura la estructura temporal compleja en los datos. La estimación de parámetros y el diagnóstico del modelo son pasos cruciales para asegurar que el modelo ARMA sea efectivo y útil para el análisis y pronóstico de series de tiempo.

Modelo ARIMA (Autoregressive Integrated Moving Average)

El modelo ARIMA (Autoregressive Integrated Moving Average) es una extensión del modelo ARMA (Autoregressive Moving Average) que se utiliza para modelar y pronosticar series de tiempo no estacionarias. ARIMA agrega una fase de diferenciación para transformar la serie de tiempo en una serie estacionaria, lo que permite aplicar el modelo ARMA a la serie transformada. A continuación, se exploran los fundamentos matemáticos del modelo ARIMA y su aplicación práctica.

Componentes del Modelo ARIMA

1. Componente Autoregresivo (AR):
   - El componente autoregresivo de orden \(p\) modela el valor actual de la serie como una combinación lineal de los valores anteriores. Se representa como:

\[
X_t = \phi_1 X_{t-1} + \phi_2 X_{t-2} + \cdots + \phi_p X_{t-p} + \epsilon_t
\]

   donde \(\phi_1, \phi_2, \ldots, \phi_p\) son los parámetros autoregresivos y \(\epsilon_t\) es el término de error.

2. Componente de Media Móvil (MA):
   - El componente de media móvil de orden \(q\) modela el valor actual de la serie como una función lineal de los errores pasados. Se representa como:

\[
X_t = \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \cdots + \theta_q \epsilon_{t-q} + \eta_t
\]

   donde \(\theta_1, \theta_2, \ldots, \theta_q\) son los parámetros de media móvil y \(\eta_t\) es el valor observado.

3. Diferenciación (I):
   - La diferenciación se utiliza para hacer que una serie de tiempo no estacionaria se vuelva estacionaria. El proceso de diferenciación de orden \(d\) se define como:

\[
\Delta^d X_t = (1 - B)^d X_t
\]

   donde \(\Delta\) representa el operador de diferenciación y \(B\) es el operador de rezago (lag operator). La diferenciación de primer orden (\(d=1\)) se aplica como:

\[
\Delta X_t = X_t - X_{t-1}
\]

   Para diferenciación de segundo orden (\(d=2\)):

\[
\Delta^2 X_t = (X_t - X_{t-1}) - (X_{t-1} - X_{t-2}) = X_t - 2X_{t-1} + X_{t-2}
\]

Modelo ARIMA(p, d, q)

Un modelo ARIMA se define por tres parámetros: \(p\) (orden del componente AR), \(d\) (orden de diferenciación), y \(q\) (orden del componente MA). La forma general del modelo ARIMA(p, d, q) es:

1. Diferenciación: Aplicar diferenciación de orden \(d\) a la serie de tiempo para hacerla estacionaria.
2. Modelo ARMA: Ajustar un modelo ARMA(p, q) a la serie diferenciada.

El modelo ARIMA(p, d, q) puede representarse como:

\[
(1 - \phi_1 B - \phi_2 B^2 - \cdots - \phi_p B^p) \Delta^d X_t = (1 + \theta_1 B + \theta_2 B^2 + \cdots + \theta_q B^q) \epsilon_t
\]

donde \(B\) es el operador de rezago y \(\epsilon_t\) es el término de error.

Estimación y Selección de Parámetros

1. Identificación del Modelo:
   - Utilizar gráficos de la función de autocorrelación (ACF) y autocorrelación parcial (PACF) de la serie diferenciada para identificar los órdenes \(p\) y \(q\). La serie diferenciada debería mostrar patrones estacionales y de tendencia removidos.

2. Estimación de Parámetros:
   - Estimar los parámetros del modelo ARIMA usando técnicas de máxima verosimilitud o métodos de mínimos cuadrados. El ajuste del modelo se realiza a la serie diferenciada.

3. Diagnóstico del Modelo:
   - Verificar los residuos del modelo para asegurarse de que se comporten como ruido blanco. Analizar los residuos puede ayudar a identificar si se necesita más diferenciación o ajustes en los parámetros \(p\) y \(q\).

Ejemplo Numérico

Supongamos que tenemos una serie de tiempo con estacionalidad y tendencia, y queremos ajustar un modelo ARIMA(1, 1, 1). Los pasos serían:

1. Diferenciación: Aplicar la diferenciación de primer orden a la serie de tiempo para hacerla estacionaria.

2. Ajuste del Modelo: Ajustar un modelo ARMA(1, 1) a la serie diferenciada. La ecuación del modelo ARIMA(1, 1, 1) es:

\[
\Delta X_t = \phi_1 \Delta X_{t-1} + \theta_1 \epsilon_{t-1} + \epsilon_t
\]

3. Pronóstico: Usar el modelo ajustado para realizar pronósticos futuros.

Aplicaciones

El modelo ARIMA es ampliamente utilizado en una variedad de aplicaciones, incluyendo:

- Pronóstico Económico: Predecir variables económicas como el PIB, tasas de interés, y tasas de inflación.
- Análisis de Ventas: Modelar y pronosticar las ventas de productos en función de datos históricos.
- Monitoreo Ambiental: Analizar y pronosticar datos de calidad del aire o temperaturas.

Conclusión

El modelo ARIMA es una herramienta poderosa para el análisis de series de tiempo no estacionarias. Al combinar diferenciación con los componentes autoregresivos y de media móvil, ARIMA permite modelar series de tiempo complejas y hacer pronósticos precisos. La clave para un ajuste exitoso del modelo ARIMA radica en la correcta identificación, estimación y diagnóstico de los parámetros, así como en la correcta diferenciación de la serie de tiempo.

Estimación y Evaluación de Modelos ARMA y ARIMA

La estimación y evaluación de modelos ARMA (Autoregressive Moving Average) y ARIMA (Autoregressive Integrated Moving Average) son pasos cruciales en el análisis y pronóstico de series de tiempo. Aquí se detalla el proceso matemático y metodológico para estimar estos modelos y evaluar su rendimiento.

Estimación de Modelos ARMA

1. Identificación del Modelo:
   - Función de Autocorrelación (ACF) y Función de Autocorrelación Parcial (PACF): Para identificar los órdenes \(p\) (autoregresivo) y \(q\) (media móvil) del modelo ARMA, se utilizan los gráficos de ACF y PACF. Para un modelo AR(p), la PACF muestra cortes después del orden \(p\), mientras que para un modelo MA(q), la ACF muestra cortes después del orden \(q\).

2. Estimación de Parámetros:
   - Método de Máxima Verosimilitud: Se usa para estimar los parámetros del modelo ARMA. La función de verosimilitud se maximiza para obtener los parámetros \(\phi\) y \(\theta\).
   - Mínimos Cuadrados Ordinarios: Se utiliza para estimar parámetros de un modelo AR, minimizando la suma de los cuadrados de los residuos.
   - Mínimos Cuadrados Condicionados: Se usa para modelos MA, estimando los parámetros que minimizan la suma de los cuadrados de los residuos condicionales.

   La función de verosimilitud para un modelo ARMA se basa en la asunción de que los residuos son ruido blanco. La verosimilitud \(\mathcal{L}\) para un conjunto de parámetros \(\phi\) y \(\theta\) se calcula como:

   \[
   \mathcal{L}(\phi, \theta) = \prod_{t=1}^{T} \frac{1}{\sqrt{2\pi \sigma^2}} \exp \left(-\frac{\epsilon_t^2}{2\sigma^2} \right)
   \]

   donde \(\sigma^2\) es la varianza de los residuos y \(\epsilon_t\) son los errores del modelo.

3. Diagnóstico del Modelo:
   - Residuos: Los residuos deben comportarse como ruido blanco. Esto significa que deben ser independientes y distribuidos normalmente con media cero. Se puede usar el test de Ljung-Box para verificar la independencia de los residuos.

   \[
   Q = T(T + 2) \sum_{k=1}^{h} \frac{\hat{\rho}_k^2}{T - k}
   \]

   donde \(T\) es el número de observaciones, \(h\) es el número de rezagos considerados, y \(\hat{\rho}_k\) es el valor de la autocorrelación en el rezago \(k\).

 Estimación de Modelos ARIMA

1. Identificación del Modelo:
   - Diferenciación: Primero, se aplica diferenciación para transformar la serie de tiempo en una serie estacionaria. La cantidad de diferenciación requerida se determina observando la tendencia y estacionalidad en la serie original.

   - Identificación ARMA: Después de diferenciar la serie, se utiliza el método de ACF y PACF para identificar los órdenes \(p\) y \(q\) del modelo ARMA en la serie diferenciada.

2. Estimación de Parámetros:
   - Método de Máxima Verosimilitud: Similar a ARMA, se utilizan métodos de máxima verosimilitud para estimar los parámetros del modelo ARIMA después de aplicar diferenciación.

3. *Diagnóstico del Modelo:
   - Residuos: Verificar que los residuos del modelo ARIMA ajustado se comporten como ruido blanco, usando herramientas similares a las de los modelos ARMA.

Evaluación del Modelo

1. Criterios de Información:
   - Criterio de Información de Akaike (AIC): Evalúa la calidad del modelo penalizando el número de parámetros para evitar el sobreajuste. Se calcula como:

   \[
   \text{AIC} = -2 \log(\mathcal{L}) + 2k
   \]

   donde \(k\) es el número de parámetros del modelo y \(\mathcal{L}\) es la función de verosimilitud.

   - Criterio de Información Bayesiano (BIC): Similar al AIC, pero con una penalización más fuerte para el número de parámetros. Se calcula como:

   \[
   \text{BIC} = -2 \log(\mathcal{L}) + k \log(T)
   \]

   donde \(T\) es el número de observaciones.

2. Pronóstico:
   - Errores de Pronóstico: Evaluar la precisión del modelo usando métricas como el Error Cuadrático Medio (MSE) o el Error Absoluto Medio (MAE). El MSE se calcula como:

   \[
   \text{MSE} = \frac{1}{T} \sum_{t=1}^{T} (X_t - \hat{X}_t)^2
   \]

   donde \(X_t\) son los valores reales y \(\hat{X}_t\) son los valores pronosticados.

Ejemplo Numérico

Supongamos que se tiene una serie de tiempo mensual y se desea ajustar un modelo ARIMA(1, 1, 1). Se siguen estos pasos:

1. Diferenciación: Aplicar la diferenciación de primer orden para hacer la serie estacionaria.

2. Identificación ARMA: Analizar la serie diferenciada para determinar los órdenes \(p\) y \(q\). Supongamos que se elige ARMA(1, 1).

3. Estimación: Estimar los parámetros \(\phi_1\) y \(\theta_1\) usando máxima verosimilitud.

4. Evaluación: Verificar la calidad del modelo con AIC y BIC, y usar errores de pronóstico para evaluar la precisión.

Conclusión

La estimación y evaluación de modelos ARMA y ARIMA son esenciales para modelar y pronosticar series de tiempo. La correcta identificación de los parámetros y la evaluación rigurosa del modelo aseguran que las predicciones sean precisas y útiles para la toma de decisiones. La aplicación de diferenciación en ARIMA permite trabajar con series de tiempo no estacionarias, ampliando el rango de aplicaciones del análisis de series temporales.

 

Aplicación práctica

Introducción

Para ejemplificar los modelos ARMA y ARIMA, utilizaremos la librería statsmodels en Python.

Importación de Librerías

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import statsmodels.api as sm

Carga de Datos

Luego, cargamos los datos que utilizaremos para el análisis de series de tiempo. En este ejemplo, utilizaremos una serie llamada "AirPassengers", que contiene datos mensuales entre 1949 y 1960 sobre el número de pasajeros en líneas aéreas internacionales.

air_passengers = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/AirPassengers.csv', parse_dates=['date'])
air_passengers.set_index('date', inplace=True)

Visualización de la Serie de Tiempo

Una vez tenemos los datos cargados, podemos visualizar la serie de tiempo:

plt.plot(air_passengers)
plt.title('Air Passengers')
plt.xlabel('Fecha')
plt.ylabel('Pasajeros')
plt.show()

Descomposición de la Serie de Tiempo

Después, podemos descomponer la serie de tiempo en sus componentes de tendencia, estacionalidad y residuos, utilizando la función seasonal_decompose() de la librería statsmodels:

decomposition = sm.tsa.seasonal_decompose(air_passengers, model='multiplicative')
fig = decomposition.plot()
plt.show()

Ajuste de Modelos ARMA

A continuación, podemos ajustar un modelo ARMA a la serie de tiempo utilizando la función ARMA() de statsmodels.

arma_model = sm.tsa.ARMA(air_passengers, order=(2,2))
arma_model_fit = arma_model.fit()

Una vez ajustado el modelo, podemos imprimir un resumen de los resultados utilizando la función summary():

print(arma_model_fit.summary())

Ajuste de Modelos ARIMA

Finalmente, podemos ajustar un modelo ARIMA a la serie de tiempo que tenga en cuenta además la presencia de tendencia y estacionalidad. Para hacer esto, podemos utilizar la función SARIMAX() de statsmodels.

arima_model = sm.tsa.SARIMAX(air_passengers, order=(2,1,2), seasonal_order=(1,1,1,12))
arima_model_fit = arima_model.fit()

Una vez ajustado el modelo, podemos imprimir un resumen de los resultados utilizando la función summary():

print(arima_model_fit.summary())