Procesos de Media Móvil
Definición
Los procesos de media móvil MA se caracterizan por representar series de memoria muy corta, donde el valor actual de la serie sólo está correlacionado con un número pequeño de valores anteriores.
Proceso de Média Móvil de oreden \(1\): MA(1)
Un proceso de media móvil de orden uno, MA(1), se define como una combinación lineal de los dos últimos términos error de la forma siguiente:
\[\begin{equation} z_t = \mu + u_t - \theta_1 u_{t-1} \end{equation}\]
donde
- \(\mu\) es la media del proceso,
- \(u_t\) es un proceso de ruido blanco, y
- \(\theta_1\) es el parámetro de dependencia temporal.
Proceso de Media Móvil de Orden \(2\): MA(2)
En forma similar al caso anterior un proceso autorregresivo de orden dos MA(2), se define como una combinación lineal de los tres últimos términos error de la forma siguiente:
\[\begin{equation} z_t = \mu + u_t - \theta_1 u_{t-1} - \theta_2 u_{t-2} \end{equation}\]
Proceso de Média Móvil de orden \(q\): MA(q)
Un proceso autorregresivo de orden dos MA(q), se define como una combinación lineal de los \(q+1\) últimos términos error de la forma siguiente:
\[\begin{equation} z_t = \mu + u_t - \theta_1 u_{t-1} - \theta_2 u_{t-2} - ... - \theta_q u_{t-q} \end{equation}\]
Proceso de media móvil de orden uno MA(1)
Su ecuación típica viene dada por \[\begin{eqnarray*} z_t = \mu -\theta_1 u_{t-1} + u_{t}, & & u_t's \sim (0,\sigma^2) \end{eqnarray*}\]
Primero vamos a obtener la media y varianza del proceso. \
Media del proceso:
\[\begin{eqnarray*} E(z_t) & = & E(\mu - \theta_1 u_{t-1} + u_t)\\ & = & E(\mu) - \theta_1 E(u_{t-1}) + E(u_{t})\\ & = & E(\mu)\\ & = & \mu \end{eqnarray*}\]
Varianza del proceso:
\[\begin{eqnarray*} Var(z_t) & = & E[(z_t - \mu)^2]\\ & = & E[(u_t - \theta_1 u_{t-1})^2] \text{de 3.2}\\ & = & E[u_t^2 - 2\theta_1 u_{t-1} + \theta_1^2 u_{t-1}^2]\\ & = & E(u_t^2) - 2\theta_1 E(u_{t-1}) + \theta_1^2 E(u_{t-1}^2)\\ & = & \sigma^2 + \theta_1^2 \sigma^2\\ & = & \sigma^2 (1+\theta_1^2)\\ \end{eqnarray*}\]
Covarianza del proceso:
de la ecuación típica, al considerar \(k\) diatancias, entonces, se tiene la siguiente expresión general; \(z_{t+k} = \mu -\theta_1 u_{t+k-1} + u_{t-1}\), donde \(u_{t+k}'s \sim (0,\sigma^2)\). Esta función en particular nos permitirá explorar el comportamiento del proceso para distintos periodos k, es decir, \(cov(z_t, z_{t+k})\).
- para \(k=0\)
de Eq se tiene que \[\begin{eqnarray*} z_t - \mu & = & u_{t} - \theta_1 u_{t-1} \end{eqnarray*}\]
entonces
\[\begin{eqnarray*} cov(z_t, z_{t+k}) & = & E[(z_t - \mu)(z_{t+k} - \mu)]\\ cov(z_t, z_{t-0}) & = & E[(z_t - \mu)(z_{t+0} - \mu)]\\ & = & E[(u_t - \theta_1 u_{t-1})(u_t - \theta_1 u_{t-1})]\\ & = & E[u_t^2 - 2\theta_1 u_t u_{t-1} + \theta_1^2 u_{t-1}^2]\\ & = & E(u_t^2) - 2\theta_1 E(u_t)E(u_{t-1}) + \theta_1^2 E(u_{t-1}^2)\\ & = & \sigma^2 + \theta_1^2 \sigma^2\\ & = & \sigma^2 (1+\theta_1^2) \end{eqnarray*}\]
- para \(k=1\)
de Eq se tiene que \[\begin{eqnarray*} z_t - \mu & = & u_{t} - \theta_1 u_{t-1}, \text{ y }\\ z_{t+1} - \mu & = & u_{t+1} - \theta_1 u_{t} \end{eqnarray*}\]
entonces
\[\begin{eqnarray*} cov(z_t, z_{t+1}) & = & E[(z_t - \mu)(z_{t+1} - \mu)]\\ & = & E[(u_t - \theta_1 u_{t-1})(u_{t+1}-\theta_{1}u_t)]\\ & = & E[u_t u_{t+1} - \theta_1 u_t^2 - \theta_1 u_{t+1}u_{t-1} + \theta_1^2 u_t u_{t-1}]\\ & = & E(u_t)E(u_{t+1})- \theta_1E(u_t^2)- \theta_1 E(u_{t+1})E(u_{t-1})+ \theta_1^2 E(u_1)E(u_{t-1})\\ & = & - \theta_1 E(u_t^2) \end{eqnarray*}\]
- para \(k=2\)
se tiene que \[\begin{eqnarray*} z_t - \mu & = & u_{t} - \theta_1 u_{t-1}, \text{ y }\\ z_{t+2} - \mu & = & u_{t+2} - \theta_1 u_{t+1} \end{eqnarray*}\]
entonces
\[\begin{eqnarray*} cov(z_t, z_{t+2}) & = & E[(z_t - \mu)(z_{t+2} - \mu)]\\ & = & E[(u_t - \theta_1 u_{t-1})(u_{t+2}-\theta_{1}u_t)]\\ & = & E[u_t u_{t+2} - \theta_1 u_t u_{t+1} - \theta_1 u_{t-1}u_{t+2} + \theta_1^2 u_{t+1}u_{t-1}]\\ & = & E(u_t) E(u_{t+2}) - \theta_1 E(u_t)E(u_{t+1}) - \theta_1 E(u_{t-1})E(u_{t+2}) + \theta_1^2 E(u_{t+1})E(u_{t-1})]\\ & = & 0 \end{eqnarray*}\]
podemos apreciar que para distancias mayores a \(1\), \(k \geq 2\), la covarianza es cero, puede probarse muy fácilmente por inducción. Finalmente vamos a determinar la función de autocorrelación para distintas \(k\) distancias.
Autocorrelación del proceso:
La función de autocorrelación viene definida por \[\begin{eqnarray} \rho_k = \frac{Cov(z_t, z_{t+1})}{\sqrt{var(z_t)} \sqrt{var(z_{t+k})}} = \frac{\gamma_k}{\gamma} \end{eqnarray}\]
para \(k=0\)
\[\begin{eqnarray*} \rho(0) & = & \frac{Cov(z_t, z_{t})}{\sqrt{var(z_t)} \sqrt{var(z_{t})}}\\ & = & \frac{\sigma^2(1+\theta_1^2)}{\sigma^2(1+\theta_1^2)} \\ & = & 1 \end{eqnarray*}\]
para \(k=1\)
\[\begin{eqnarray*} \rho(1) & = & \frac{Cov(z_t, z_{t+1})}{\sqrt{var(z_t)} \sqrt{var(z_{t+1})}}\\ & = & \frac{-\theta_1 \sigma^2}{\sigma^2 (1+\theta_1^2)}\\ & = & \frac{-\theta_1}{(1+\theta_1^2)} \end{eqnarray*}\]
para \(r=2\)
\[\begin{eqnarray*} \rho(2) & = & \frac{Cov(z_t, z_{t+2})}{\sqrt{var(z_t)} \sqrt{var(z_{t+2})}}\\ & = & \frac{0}{\sigma^2(1+\theta_1^2)} \\ & = & 0 \end{eqnarray*}\]
por lo que la función de autocorrelación para el proceso MA(\(1\)) viene dada por la siguiente expresión
\[\begin{equation} \rho(k) = \left\lbrace \begin{array}{ll} 1 & \text{ si } k=0\\ \cfrac{-\theta_1}{1+\theta_1^2} & \text{ si } k=1\\ 0 & \text{ si } k > 1 \end{array} \right. \end{equation}\]
Gráficamente la función de autocorrelación puede tomar una de las siguientes formas (de 4 formas distintas), dependiendo de si el valor de \(\theta\) es positivo o negativo:
Proceso de media móvil de orden dos MA(2)
Su ecuación típica viene dada por \[\begin{eqnarray} z_t = \mu - \theta_1 u_{t-1} - \theta_2 u_{t-2} + u_t & & u_t's \sim (0,\sigma^2) \end{eqnarray}\]
siguiendo el procedimiento del proceso MA(\(1\)) se puede demostrar que la función de autocorrelación del proceso MA(\(2\)) tiene la siguinete expresión
\[\begin{equation} \rho(k) = \left\lbrace \begin{array}{ll} 1 & \text{ si } k=0\\ \cfrac{-\theta_1+\theta_1 \theta_2}{1+\theta_1^2+\theta_2^2} & \text{ si } k=1\\ \cfrac{-\theta_2}{1+\theta_1^2+\theta_2^2} & \text{ si } k=2\\ 0 & \text{ si } k > 2 \end{array} \right. \end{equation}\]
Gráficamente la función de autocorrelación tiene la siguinete forma, dependiendo de si el valor de \(\theta\) es positivo o negativo:
Proceso de media móvil de orden \(q\) MA(q)
Su ecuación típica vienen dada por \[\begin{eqnarray} z_t = \mu - \theta_1 u_{t-1} - \theta_2 u_{t-2} -... \theta_q u_{t-q}+ u_t & & u_t's \sim (0,\sigma^2) \end{eqnarray}\]
su función de autocorrelación viene dada por \[\begin{equation} \rho(k) = \left\lbrace \begin{array}{ll} 1 & \text{ si } k=0\\ \cfrac{-\theta_k+\theta_1 \theta_{k+1}+...+\theta_{q-k} \theta_q }{1+\theta_1^2+\theta_2^2+...+ \theta_q^2} & \text{ si } k=1,2,...,q\\ 0 & \text{ si } k > q \end{array} \right. \end{equation}\]
Ejemplo práctico en Python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.graphics.tsaplots import plot_acf
sns.set_theme()
# Parámetros del modelo
mu = 0 # media del proceso
theta1 = 0.6 # parámetro MA(1)
sigma = 1.0 # desviación estándar del ruido
n = 300 # longitud de la serie
# Ruido blanco u_t
u = np.random.normal(0, sigma, n + 1) # un valor extra para u_{t-1}
# Simulación del proceso MA(1): z_t = mu + u_t - theta1 * u_{t-1}
z = np.zeros(n)
for t in range(1, n + 1):
z[t-1] = mu + u[t] - theta1 * u[t-1]
# --- Graficar la serie temporal ---
plt.figure(figsize=(12, 4))
plt.plot(z, color='blue', linewidth=1)
plt.title(r"Simulación del proceso $MA(1): z_t = \mu + u_t - \theta_1 u_{t-1}$", fontsize=14)
plt.xlabel("t")
plt.ylabel(r"$z_t$")
plt.grid(True)
plt.show()
Y su función de autocorrelación
# --- Graficar la función de autocorrelación (ACF) ---
fig, ax = plt.subplots(figsize=(12,4)) # figura más grande
plot_acf(z, lags=20, alpha=0.05, zero=True, ax=ax)
ax.set_title("Función de Autocorrelación (ACF) del proceso MA(1)", fontsize=14)
ax.set_xlabel("Retardo (lag)")
ax.set_ylabel("Autocorrelación")
ax.grid(True)
plt.show()
Note que si cambiamos el signo del parámetro \(\theta\) la función de autocorrelación en el lag \(1\) en la función de autocorrelación debería salir invertido.
# Parámetros del modelo
mu = 0 # media del proceso
theta1 = -0.6 # parámetro MA(1)
sigma = 1.0 # desviación estándar del ruido
n = 300 # longitud de la serie
# Ruido blanco u_t
u = np.random.normal(0, sigma, n + 1) # un valor extra para u_{t-1}
# Simulación del proceso MA(1): z_t = mu + u_t - theta1 * u_{t-1}
z = np.zeros(n)
for t in range(1, n + 1):
z[t-1] = mu + u[t] - theta1 * u[t-1]
# --- Graficar la serie temporal ---
plt.figure(figsize=(12, 4))
plt.plot(z, color='blue', linewidth=1)
plt.title(r"Simulación del proceso $MA(1): z_t = \mu + u_t - \theta_1 u_{t-1}$", fontsize=14)
plt.xlabel("t")
plt.ylabel(r"$z_t$")
plt.grid(True)
plt.show()
Y su función de autocorrelación
# --- Graficar la función de autocorrelación (ACF) ---
fig, ax = plt.subplots(figsize=(12,4)) # figura más grande
plot_acf(z, lags=20, alpha=0.05, zero=True, ax=ax)
ax.set_title("Función de Autocorrelación (ACF) del proceso MA(1)", fontsize=14)
ax.set_xlabel("Retardo (lag)")
ax.set_ylabel("Autocorrelación")
ax.grid(True)
plt.show()
Conclusión
Un proceso de media móvil es un modelo de series de tiempo donde el valor actual de la serie depende de choques o errores pasados. La función de autocorrelación teórica de un proceso de media móvildescribe el patrón ideal de correlación temporal del proceso MA(1), mientras que la ACF muestral permite observar ese patrón en datos generados o reales. La autocorrelación muestral en lag 1 suele estar cercana al valor teórico \(\rho(1)\), pero no exactamente igual debido a la variabilidad finita y al tamaño de la muestra.
Referencias:
- Pankratz Alan (1983). Forecasting With Univariate Box- Jenkins Models: concepts and cases. John Wiley & Sons
- Peña Daniel, Análisis de series temporales. Alianza Editorial