Saltar al contenido
Análisis de Series de Tiempo con Python

Proceso Autorregresivo de Medias Móviles (ARMA)

Introducción

El análisis de series de tiempo es una técnica estadística empleada para identificar patrones y tendencias en una secuencia de datos a lo largo del tiempo. El modelo de Proceso Autorregresivo de Medias Móviles (ARMA) es una herramienta comúnmente utilizada en este análisis para realizar predicciones sobre los datos futuros.

El modelo ARMA consta de dos componentes principales: el modelo autorregresivo (AR) y el modelo de media móvil (MA). En el modelo AR, las observaciones anteriores se utilizan para predecir la siguiente, mientras que en el modelo MA, se emplea un promedio móvil de las observaciones pasadas para realizar la predicción. Al combinar estos dos componentes, el modelo ARMA es capaz de capturar tanto las relaciones lineales entre las observaciones como las características de suavizado proporcionadas por el modelo de media móvil.

Para ajustar el modelo ARMA a un conjunto de datos de series de tiempo, se pueden utilizar métodos como el de máxima verosimilitud o el de mínimos cuadrados ordinarios. Una vez ajustado, el modelo ARMA puede utilizarse para hacer predicciones precisas sobre los valores futuros de la serie de tiempo.

El modelo ARMA es ampliamente utilizado en diversas industrias, incluyendo finanzas, marketing, economía y meteorología, entre otras. Es una herramienta valiosa para analistas y científicos de datos que buscan comprender y prever el comportamiento de datos que varían con el tiempo.

Resumen

El proceso ARMA (Autoregressive Moving Average) es un modelo estadístico utilizado para analizar series de tiempo. Este modelo combina dos componentes fundamentales: el proceso autoregresivo (AR) y el proceso de medias móviles (MA). En el modelo AR, se incorpora la relación lineal entre los valores previos de una serie de tiempo y el valor actual. Mientras tanto, en el modelo MA, se incorpora la relación lineal entre los errores de predicción previos y el valor actual.

En un modelo ARMA, estas relaciones lineales se combinan para producir un modelo que puede predecir valores futuros de una serie de tiempo. Matemáticamente, un modelo ARMA(p,q) se define como:

𝑌𝑡=𝑐+𝜖𝑡+𝜙1⋅𝑌𝑡−1+…+𝜙𝑝⋅𝑌𝑡−𝑝+𝜃1⋅𝜖𝑡−1+…+𝜃𝑞⋅𝜖𝑡−𝑞Yt​=c+ϵt​+ϕ1​⋅Yt−1​+…+ϕp​⋅Yt−p​+θ1​⋅ϵt−1​+…+θq​⋅ϵt−q​

Donde 𝑌𝑡Yt​ es el valor actual de la serie de tiempo, 𝑐c es una constante, 𝜖𝑡ϵt​ es el error en el tiempo 𝑡t, y 𝜙1,…,𝜙𝑝ϕ1​,…,ϕp​ y 𝜃1,…,𝜃𝑞θ1​,…,θq​ son los coeficientes de autoregresión y medias móviles, respectivamente. Estos coeficientes se determinan a través de técnicas estadísticas como el método de máxima verosimilitud.

En resumen, el modelo ARMA es una técnica poderosa para analizar, modelar y predecir series de tiempo. Se utiliza en muchos ámbitos, como finanzas, economía, ingeniería y ciencias sociales, para entender y predecir el comportamiento de las variables a lo largo del tiempo.

Aplicación teórica

Ecuación del Modelo ARMA

El modelo ARMA (Autoregressive Moving Average) es un modelo estadístico ampliamente utilizado en el análisis de series temporales, que combina dos componentes esenciales: el componente autoregresivo (AR) y el componente de medias móviles (MA). Este modelo es útil para describir y pronosticar series temporales que muestran un comportamiento estocástico con dependencias lineales.

1. Detalles Matemáticos del Modelo ARMA

1.1 Componente Autoregresivo (AR)

El componente autoregresivo del modelo ARMA de orden \( p \), denotado como AR(p), expresa la dependencia de la serie temporal actual en términos de sus valores pasados. La ecuación del modelo AR(p) se puede escribir 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 del modelo. Esta ecuación se puede reescribir utilizando el operador de rezago \( B \), donde \( B^k X_t = X_{t-k} \):

\[
\phi(B) X_t = \epsilon_t 
\]

con

\[
\phi(B) = 1 - \phi_1 B - \phi_2 B^2 - \cdots - \phi_p B^p
\]

Aquí, \( \phi(B) \) es el polinomio autoregresivo que captura la estructura dependiente de los rezagos en la serie temporal.

1.2 Componente de Medias Móviles (MA)

El componente de medias móviles del modelo ARMA de orden \( q \), denotado como MA(q), describe cómo los errores pasados afectan el valor actual de la serie temporal. La ecuación del modelo MA(q) se puede escribir como:

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

donde \( \theta_1, \theta_2, \ldots, \theta_q \) son los parámetros del modelo. El modelo MA(q) se puede reescribir en términos del operador de rezago para los errores:

\[
\theta(B) \epsilon_t = X_t - \mu
\]

con

\[
\theta(B) = 1 + \theta_1 B + \theta_2 B^2 + \cdots + \theta_q B^q
\]

Aquí, \( \theta(B) \) es el polinomio de medias móviles que captura la influencia de los errores pasados.

2. Ejemplo Detallado del Modelo ARMA

Supongamos que estamos trabajando con una serie temporal y decidimos ajustar un modelo ARMA(1, 1). Esto significa que el modelo incluirá un término autoregresivo de primer orden (AR(1)) y un término de medias móviles de primer orden (MA(1)). La ecuación del modelo es:

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

Estimación de Parámetros

Para estimar los parámetros \( \phi_1 \) y \( \theta_1 \):

1. Máxima Verosimilitud: Se utiliza para encontrar los valores de \( \phi_1 \) y \( \theta_1 \) que maximizan la función de verosimilitud basada en la probabilidad de observar los datos dados los parámetros.
2. Mínimos Cuadrados: Se minimizan los errores cuadráticos entre los valores observados y los valores ajustados por el modelo.

Diagnóstico del Modelo

Después de ajustar el modelo ARMA(1, 1):

1. Análisis de Residuales: Los residuales \( \hat{\epsilon}_t \) deben comportarse como ruido blanco. Esto se puede verificar mediante gráficos de los residuos y pruebas estadísticas como la prueba de Ljung-Box.
2. Verificación de ACF y PACF: La función de autocorrelación (ACF) de los residuos debe ser cercana a cero para rezagos mayores que el orden del componente MA. La función de autocorrelación parcial (PACF) de los residuos debe mostrar que no hay autocorrelación significativa para rezagos mayores que el orden del componente AR.

3. Propiedades Matemáticas del Modelo ARMA

 3.1 Estacionariedad

Para que un modelo ARMA sea válido, la serie temporal debe ser estacionaria, es decir, sus propiedades estadísticas no deben cambiar con el tiempo. La estacionariedad en el modelo ARMA se refiere a que los valores de la serie deben tener una media constante, varianza constante, y autocovarianza que depende únicamente del desfase, no del tiempo.

3.2 Inversibilidad

El modelo MA debe ser invertible, lo que significa que el polinomio \( \theta(B) \) debe tener raíces fuera del círculo unitario en el plano complejo. Esto asegura que la serie temporal puede ser representada como una combinación de errores pasados.

 3.3 Estabilidad

El modelo AR debe ser estable, lo que implica que todas las raíces del polinomio \( \phi(B) \) deben estar fuera del círculo unitario. Esto asegura que la serie temporal no se vuelve inestable o explota con el tiempo.

4. Estimación y Diagnóstico en la Práctica

En la práctica, la estimación y diagnóstico de modelos ARMA generalmente se realizan con software estadístico que automatiza estos procedimientos. El ajuste del modelo se realiza usando algoritmos numéricos que optimizan la función de verosimilitud. Los diagnósticos incluyen pruebas de residuos y gráficos para asegurar la validez del modelo.

 Conclusión

El modelo ARMA es una herramienta poderosa para el análisis de series temporales, proporcionando una forma de modelar y prever datos que exhiben patrones estocásticos. Comprender la ecuación del modelo ARMA, los métodos de estimación, y los procedimientos de diagnóstico es fundamental para construir modelos que sean útiles y precisos para la predicción y el análisis de datos temporales.

Propiedades del Proceso ARMA

El proceso ARMA (Autoregressive Moving Average) combina dos componentes fundamentales: el componente autoregresivo (AR) y el componente de medias móviles (MA). Las propiedades de un proceso ARMA se derivan de las propiedades de estos dos componentes y se centran en aspectos clave como la estacionariedad, la invertibilidad y la estabilidad. A continuación, se detallan las propiedades esenciales de un proceso ARMA.

1. Estacionariedad

Para que un proceso ARMA sea válido, debe ser estacionario. La estacionariedad implica que las propiedades estadísticas del proceso, como la media y la varianza, no cambian con el tiempo. Hay dos tipos principales de estacionariedad:

 1.1 Estacionariedad en la Media

Un proceso es estacionario en la media si la media de la serie temporal es constante en el tiempo. Esto significa que:

\[
E[X_t] = \mu \quad \text{para todo } t
\]

donde \( \mu \) es una constante.

1.2 Estacionariedad en la Varianza

Un proceso es estacionario en la varianza si la varianza de la serie temporal es constante en el tiempo. La varianza de \( X_t \) debe ser la misma para todos los valores de \( t \):

\[
\text{Var}(X_t) = \sigma^2 \quad \text{para todo } t
\]

1.3 Estacionariedad en la Covarianza

Un proceso es estacionario en la covarianza si la covarianza entre dos valores de la serie temporal solo depende de la distancia (rezago) entre ellos, no de los tiempos específicos en los que se observan. La función de autocovarianza \( \gamma(h) \) depende solo del rezago \( h \):

\[
\text{Cov}(X_t, X_{t-h}) = \gamma(h) \quad \text{para todo } t
\]

2. Invertibilidad

La invertibilidad se refiere a la capacidad de expresar el componente de medias móviles (MA) en términos de un modelo autoregresivo (AR). Un proceso MA es invertible si el polinomio de medias móviles \( \theta(B) \) tiene raíces fuera del círculo unitario en el plano complejo. Esto asegura que el modelo puede ser representado de manera equivalente como un modelo AR, lo que facilita la estimación y el análisis.

Para un proceso MA(q), el polinomio de medias móviles es:

\[
\theta(B) = 1 + \theta_1 B + \theta_2 B^2 + \cdots + \theta_q B^q
\]

Un proceso MA es invertible si todas las raíces del polinomio \( \theta(B) \) están fuera del círculo unitario (\(|B| > 1\)).

 3. Estabilidad

La estabilidad del proceso AR se refiere a que el modelo autoregresivo no debe ser explosivo. Un proceso AR(p) es estable si todas las raíces del polinomio autoregresivo \( \phi(B) \) están fuera del círculo unitario. La ecuación del polinomio autoregresivo es:

\[
\phi(B) = 1 - \phi_1 B - \phi_2 B^2 - \cdots - \phi_p B^p
\]

Un proceso AR es estable si todas las raíces del polinomio \( \phi(B) \) tienen magnitudes mayores que uno (\(|B| > 1\)).

4. Propiedades de la Función de Autocorrelación

4.1 Función de Autocorrelación

La función de autocorrelación (ACF) mide la correlación entre observaciones separadas por un rezago \( h \). Para un proceso ARMA, la ACF tiene las siguientes propiedades:

- Para un proceso AR(p): La ACF se vuelve cero después de un cierto rezago \( p \). Es decir, no hay autocorrelación significativa más allá del rezago \( p \).
- Para un proceso MA(q): La ACF se vuelve cero después de un cierto rezago \( q \). Es decir, no hay autocorrelación significativa más allá del rezago \( q \).

4.2 Función de Autocorrelación Parcial

La función de autocorrelación parcial (PACF) mide la correlación entre observaciones separadas por un rezago \( h \), ajustando por las correlaciones a rezagos intermedios. Para un proceso AR(p):

- Para un proceso AR(p): La PACF se vuelve cero después de un cierto rezago \( p \).
- Para un proceso MA(q): La PACF puede decaer gradualmente y no necesariamente se vuelve cero después de un cierto rezago.

5. Propiedades Espectrales

5.1 Función de Potencia Espectral

La función de potencia espectral describe cómo la varianza de una serie temporal se distribuye a través de diferentes frecuencias. Para un proceso ARMA, esta función puede calcularse usando la función de autocovarianza. Es una herramienta importante para analizar la periodicidad y la estructura de la serie temporal en el dominio de la frecuencia.

 Conclusión

Las propiedades del proceso ARMA son fundamentales para entender su comportamiento y aplicabilidad en el análisis de series temporales. La estacionariedad garantiza que el modelo sea aplicable a datos temporales que no cambian con el tiempo, la invertibilidad asegura que el modelo MA pueda ser representado como un modelo AR, y la estabilidad garantiza que el proceso AR no sea explosivo. Además, la función de autocorrelación y la función de potencia espectral proporcionan información clave sobre la estructura de las dependencias temporales y las frecuencias presentes en la serie temporal.

Estimación de Parámetros y Evaluación del Modelo

La estimación de parámetros y la evaluación del modelo son pasos cruciales en el análisis de series temporales utilizando modelos ARMA (Autoregressive Moving Average). Aquí, se aborda cómo estimar los parámetros del modelo ARMA y cómo evaluar la idoneidad del modelo ajustado.

1. Estimación de Parámetros del Modelo ARMA

1.1 Métodos de Estimación

1. Máxima Verosimilitud (ML)

   El método de máxima verosimilitud se utiliza para estimar los parámetros del modelo ARMA maximizar la función de verosimilitud. Dado un conjunto de datos \(\{X_t\}\), la función de verosimilitud \(L(\theta)\) se define como la probabilidad de observar los datos dados los parámetros \(\theta\). Para un modelo ARMA(p, q), la función de verosimilitud es:

   \[
   L(\theta) = \prod_{t=p+q+1}^{n} f(X_t | X_{t-1}, \ldots, X_{t-p}, \epsilon_{t-1}, \ldots, \epsilon_{t-q})
   \]

   donde \(f\) es la función de densidad de probabilidad condicional. La estimación de parámetros se obtiene al maximizar \(L(\theta)\).

2. Mínimos Cuadrados (LS)

   El método de mínimos cuadrados se utiliza para estimar los parámetros ajustando el modelo de forma que minimice la suma de los errores cuadráticos entre los valores observados y los valores ajustados. Para un modelo AR(p):

   \[
   \hat{\phi} = \arg \min_{\phi} \sum_{t=p+1}^n \left(X_t - \sum_{i=1}^p \phi_i X_{t-i}\right)^2
   \]

   Para un modelo MA(q), el proceso es similar, pero se ajusta para minimizar la suma de errores basados en los términos de medias móviles.

3. Estimación por Cuasi-Máxima Verosimilitud (QMLE)

   Dado que la función de verosimilitud exacta puede ser compleja para modelos ARMA, la estimación por cuasi-máxima verosimilitud usa una aproximación que simplifica los cálculos, especialmente para modelos con un gran número de parámetros.

 2. Evaluación del Modelo ARMA

2.1 Análisis de Residuales

Una vez ajustado el modelo, los residuos son la diferencia entre los valores observados y los valores ajustados. Los residuos deben comportarse como ruido blanco, es decir, no deben mostrar autocorrelación significativa y deben tener una distribución aproximadamente normal.

- Autocorrelación de Residuos: La función de autocorrelación (ACF) de los residuos debe ser cercana a cero para todos los rezagos. Se puede usar la prueba de Ljung-Box para evaluar si la autocorrelación de los residuos es significativa.

- Pruebas de Normalidad: Se pueden utilizar pruebas como la prueba de Shapiro-Wilk para verificar si los residuos siguen una distribución normal.

2.2 Criterios de Ajuste del Modelo

1. Criterio de Información de Akaike (AIC)

   El AIC mide la calidad del modelo en relación con la cantidad de parámetros ajustados. Un modelo con menor AIC es preferible:

   \[
   \text{AIC} = -2 \ln(L(\hat{\theta})) + 2k
   \]

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

2. Criterio de Información de Schwarz (BIC)

   Similar al AIC, el BIC penaliza el número de parámetros, pero lo hace con un peso más fuerte:

   \[
   \text{BIC} = -2 \ln(L(\hat{\theta})) + k \ln(n)
   \]

   donde \(n\) es el número de observaciones. Un modelo con menor BIC es preferible.

3. Error Cuadrático Medio (MSE)

   El MSE mide la media de los errores cuadrados entre los valores observados y los valores ajustados:

   \[
   \text{MSE} = \frac{1}{n} \sum_{t=p+q+1}^n \left(X_t - \hat{X}_t\right)^2
   \]

   donde \(\hat{X}_t\) es el valor ajustado por el modelo.

2.3 Validación Cruzada

La validación cruzada implica dividir el conjunto de datos en subconjuntos de entrenamiento y prueba para evaluar el rendimiento del modelo en datos no utilizados para el ajuste. Esto ayuda a verificar la capacidad del modelo para generalizar a nuevos datos.

2.4 Pruebas de Estacionariedad y Estabilidad

- Prueba de Raíces Unitarias: Se pueden usar pruebas como el test de Dickey-Fuller para verificar la estacionariedad de la serie temporal.
- Prueba de Estabilidad: Se verifica si todas las raíces del polinomio autoregresivo están fuera del círculo unitario para asegurar que el modelo AR es estable.

Conclusión

La estimación de parámetros en un modelo ARMA se realiza utilizando métodos como máxima verosimilitud, mínimos cuadrados y estimación por cuasi-máxima verosimilitud. La evaluación del modelo implica analizar los residuos, usar criterios de ajuste como AIC y BIC, y realizar validación cruzada. Asegurarse de que el modelo sea estacionario y estable también es crucial para una representación precisa de la serie temporal. La combinación de estos pasos ayuda a construir modelos ARMA que son robustos y efectivos para el análisis y pronóstico de series temporales.

 

Aplicación práctica

Te mostraré un ejemplo práctico de cómo implementar un modelo ARMA con Python. Para comenzar, necesitaremos importar las bibliotecas necesarias. En este caso, importaremos NumPy, Pandas, Matplotlib y Statmodels.

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

A continuación, generaremos una serie de tiempo sintética para nuestro modelo ARMA. Usaremos un modelo ARMA (1,1) para la serie de tiempo. Este modelo incluye un término autorregresivo (AR) de orden 1 y un término de media móvil (MA) de orden 1.

np.random.seed(123)
n_samples = 500
a = np.random.normal(size=n_samples)
ma = np.random.normal(size=n_samples)
ar = 0.8 * a[1:] + 0.2 * a[:-1]
y = 10 + ar + ma

A continuación, utilizaremos el modelo ARMA de statsmodels para ajustar nuestra serie de tiempo y hacer una predicción.

model = sm.tsa.ARMA(y, order=(1,1))
result = model.fit()

# Crear una predicción
predictions = result.predict(start=450, end=500)

# Graficar la serie de tiempo real y la predicción
plt.plot(y, label='Serie de Tiempo')
plt.plot(predictions, label='Predicción')
plt.legend()
plt.show()

La salida del código anterior será una gráfica con la serie de tiempo real y la predicción del modelo ARMA (1,1). Aquí te dejo el código completo:

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

np.random.seed(123)
n_samples = 500
a = np.random.normal(size=n_samples)
ma = np.random.normal(size=n_samples)
ar = 0.8 * a[1:] + 0.2 * a[:-1]
y = 10 + ar + ma

model = sm.tsa.ARMA(y, order=(1,1))
result = model.fit()
predictions = result.predict(start=450, end=500)

plt.plot(y, label='Serie de Tiempo')
plt.plot(predictions, label='Predicción')
plt.legend()
plt.show()

Espero que este ejemplo te haya ayudado a entender cómo implementar un modelo ARMA en Python. ¡Buena suerte!