Modelo GARCH
GARCH (Generalized Autoregressive Conditional Heteroscedasticity) modela la varianza condicional de una serie de tiempo como función de los cuadrados de errores pasados y las varianzas pasadas. Captura el hecho estilizado más universal de los rendimientos financieros: la agrupación de la volatilidad, en la que los grandes movimientos tienden a ir seguidos de grandes movimientos independientemente de su dirección.
Motivación: agrupación de la volatilidad
Las series de rendimientos financieros tienen autocorrelación aproximadamente nula en niveles pero autocorrelación fuerte en rendimientos al cuadrado. Esto significa:
- La media es difícil de predecir a partir de rendimientos pasados (consistente con la eficiencia de los mercados).
- La varianza es predecible: los periodos de alta volatilidad se agrupan.
Los modelos ARIMA modelan la media condicional pero asumen varianza constante. GARCH modela la varianza condicional, que ARIMA deja sin explicar.

Las grandes oscilaciones en rendimientos (azul) coinciden con alta volatilidad condicional (rojo). Los periodos tranquilos tienen baja volatilidad condicional. Un ARIMA asignaría varianza constante a todos los periodos.
ARCH: el precursor
Robert Engle (1982, Premio Nobel 2003) introdujo ARCH(\(q\)) (AutoRegressive Conditional Heteroscedasticity):
\[r_t = \mu_t + \varepsilon_t, \qquad \varepsilon_t = \sigma_t z_t, \quad z_t \sim \text{i.i.d.}(0,1)\]
\[\sigma_t^2 = \omega + \alpha_1 \varepsilon_{t-1}^2 + \alpha_2 \varepsilon_{t-2}^2 + \cdots + \alpha_q \varepsilon_{t-q}^2\]
La varianza condicional \(\sigma_t^2\) es una función lineal de \(q\) residuos pasados al cuadrado. Una perturbación grande en \(t-1\) incrementa \(\sigma_t^2\), produciendo agrupación de la volatilidad.
Limitación: capturar la memoria larga en volatilidad requiere \(q\) grande, estimando muchos parámetros \(\alpha_i\). Bollerslev (1986) generalizó esto a GARCH.
GARCH(\(p,q\))
ARCH generalizado añade \(p\) varianzas condicionales retardadas a la ecuación:
\[\sigma_t^2 = \omega + \sum_{i=1}^q \alpha_i \varepsilon_{t-i}^2 + \sum_{j=1}^p \beta_j \sigma_{t-j}^2\]
La especificación más habitual es GARCH(1,1):
\[\sigma_t^2 = \omega + \alpha_1 \varepsilon_{t-1}^2 + \beta_1 \sigma_{t-1}^2\]
- \(\omega > 0\): suelo de varianza a largo plazo.
- \(\alpha_1 \geq 0\): coeficiente de reacción. Cuánto incrementa una perturbación grande la varianza del periodo siguiente.
- \(\beta_1 \geq 0\): coeficiente de persistencia. Con qué lentitud decae la volatilidad tras una perturbación.
- \(\alpha_1 + \beta_1\): persistencia total. Debe ser \(< 1\) para estacionariedad en covarianza.
La varianza incondicional (a largo plazo) es:
\[\sigma^2 = \frac{\omega}{1 - \alpha_1 - \beta_1}\]
El GARCH(1,1) es suficiente para la mayoría de series financieras. El término \(\beta_1\) captura el decaimiento lento de la volatilidad sin necesitar muchos retardos \(\alpha_i\).
Condiciones de estacionariedad y positividad
Para que el GARCH(1,1) esté bien definido:
| Condición | Requisito |
|---|---|
| Positividad de \(\sigma_t^2\) | \(\omega > 0\), \(\alpha_1 \geq 0\), \(\beta_1 \geq 0\) |
| Estacionariedad en covarianza | \(\alpha_1 + \beta_1 < 1\) |
| Cuarto momento finito | \(3\alpha_1^2 + 2\alpha_1\beta_1 + \beta_1^2 < 1\) (para \(z_t\) gaussiano) |
Cuando \(\alpha_1 + \beta_1 = 1\), el proceso es IGARCH (GARCH integrado): las perturbaciones a la varianza son permanentes (persistencia infinita). Esto se observa a veces en datos financieros de muy alta frecuencia.
Contraste de efectos ARCH
Antes de ajustar GARCH, verifica que existen efectos ARCH usando el test de Ljung-Box sobre los residuos al cuadrado o el test ARCH-LM:
- Ajusta un modelo ARIMA a la serie de rendimientos para eliminar la media condicional.
- Extrae los residuos \(\hat{\varepsilon}_t\).
- Contrasta si \(\hat{\varepsilon}_t^2\) está autocorrelacionado.

Los rendimientos (izquierda) no muestran autocorrelación significativa. Los rendimientos al cuadrado (derecha) muestran autocorrelación fuerte: evidencia de efectos ARCH. GARCH es apropiado.
Ejemplo: ajuste de GARCH(1,1) a rendimientos bursátiles

Las bandas rojas muestran \(\pm\hat{\sigma}_t\): se ensanchan durante los periodos turbulentos y se estrechan durante los tranquilos. La persistencia \(\alpha + \beta \approx 0{,}95\) es típica de rendimientos diarios: las perturbaciones de volatilidad tardan muchos días en disiparse.
El flujo de trabajo ARIMA-GARCH
GARCH modela la varianza condicional de los residuos de un modelo de media. El flujo de trabajo completo en dos pasos:
Paso 1: ajusta un modelo ARIMA para eliminar la media condicional:
\[r_t = \mu + \phi_1 r_{t-1} + \cdots + \theta_1 \varepsilon_{t-1} + \cdots + \varepsilon_t\]
Paso 2: ajusta GARCH a los residuos \(\hat{\varepsilon}_t\):
\[\hat{\sigma}_t^2 = \omega + \alpha_1 \hat{\varepsilon}_{t-1}^2 + \beta_1 \hat{\sigma}_{t-1}^2\]
Ambos pasos pueden estimarse conjuntamente por MV usando el flujo de trabajo ugarchspec + ugarchfit en R.
⚠️ No ajustes GARCH a rendimientos brutos sin eliminar primero la media
Si la serie de rendimientos tiene autocorrelación significativa en niveles (inusual, pero posible en datos de alta frecuencia o activos ilíquidos), ajustar GARCH a los rendimientos brutos confunde la dinámica de media y varianza. Siempre:
- Comprueba la ACF de los rendimientos: si existe autocorrelación significativa, incluye términos ARMA en el modelo de media.
- Ajusta ARMA-GARCH conjuntamente.
- Comprueba la ACF de los residuos estandarizados \(\hat{\varepsilon}_t/\hat{\sigma}_t\): debe ser ruido blanco.
- Comprueba la ACF de los residuos estandarizados al cuadrado: también debe ser ruido blanco si el GARCH está bien especificado.
Extensiones de GARCH
| Modelo | Extensión clave | Caso de uso |
|---|---|---|
| EGARCH | Respuesta asimétrica de la volatilidad | Efecto leverage en acciones |
| GJR-GARCH | Asimetría mediante función indicadora | Alternativa a EGARCH |
| IGARCH | \(\alpha+\beta=1\), persistencia infinita | Datos de ultrafrecuencia |
| GARCH-M | Varianza en la ecuación de media | Modelización de prima de riesgo |
| GARCH multivariante | Volatilidad conjunta de múltiples activos | Riesgo de cartera, modelos DCC |
La extensión más importante es EGARCH, que captura el efecto leverage: las perturbaciones negativas aumentan la volatilidad más que las positivas de igual tamaño, una asimetría bien documentada en los mercados de renta variable.
💡 GARCH en R
library(rugarch)
# Especificar GARCH(1,1) con innovaciones normales
spec <- ugarchspec(
variance.model = list(model = "sGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(0,0), include.mean = TRUE),
distribution.model = "norm" # o "std" para Student-t
)
# Ajustar
fit <- ugarchfit(spec, data = returns)
coef(fit) # omega, alpha1, beta1
sigma(fit) # serie de volatilidad condicional
infocriteria(fit) # AIC, BIC
# Predecir volatilidad 10 pasos adelante
ugarchforecast(fit, n.ahead = 10)
Usa distribution.model = "std" (Student-t) para rendimientos con colas pesadas, que casi siempre es más adecuado que el gaussiano para datos financieros diarios.