Dow JonesS&P 500
5. Volatilidad dinámica y procesos estocásticos · Lección 10 de 14

GARCH(1,1): modelando una volatilidad que cambia con el tiempo

¿Por qué y cuándo se usa esto? Se usa cuando la volatilidad "de ayer" no es un buen pronóstico de la volatilidad "de hoy" bajo el supuesto simple — es decir, casi siempre. Bancos y fondos usan modelos como GARCH para ajustar límites de riesgo día a día, no una vez al año.

Asumir volatilidad constante es cómodo pero falso: después de un choque grande, los mercados suelen quedar más volátiles por un tiempo ("agrupamiento de volatilidad"). El modelo GARCH(1,1) lo captura con una fórmula recursiva:

σt2=ω+α εt−12+β σt−12\sigma_t^2 = \omega + \alpha\,\varepsilon_{t-1}^2 + \beta\,\sigma_{t-1}^2

con ω>0\omega>0, α,β≥0\alpha,\beta\ge 0 y α+β<1\alpha+\beta<1 (condición de estacionariedad). La varianza de largo plazo a la que el proceso siempre regresa es σ∞2=ω1−α−β\sigma_\infty^2 = \dfrac{\omega}{1-\alpha-\beta}.

Procedimiento paso a paso (a mano), para proyectar la volatilidad de mañana:

  1. Consigue ω\omega, α\alpha, β\beta (se estiman con datos históricos; aquí se dan) y la varianza de hoy σt−12\sigma_{t-1}^2.
  2. Observa el choque de hoy: εt−1\varepsilon_{t-1}, el retorno de hoy menos su media esperada.
  3. Sustituye los tres en σt2=ω+αεt−12+βσt−12\sigma_t^2=\omega+\alpha\varepsilon_{t-1}^2+\beta\sigma_{t-1}^2 para obtener la varianza proyectada de mañana.
  4. Repite el proceso día a día: la σt2\sigma_t^2 de hoy se vuelve la σt−12\sigma_{t-1}^2 de mañana.
  5. Verifica α+β<1\alpha+\beta<1: si no se cumple, el modelo no es estable (la volatilidad "explotaría" sin límite).

Ahora aplica el procedimiento:

Problema. Con ω=0.00001\omega=0.00001, α=0.08\alpha=0.08, β=0.90\beta=0.90, σ02=0.00020\sigma_0^2=0.00020, y choques observados ε1=−0.03\varepsilon_1=-0.03, ε2=0.01\varepsilon_2=0.01:

  1. Calcula σ12\sigma_1^2 y σ22\sigma_2^2.
  2. Calcula la varianza de largo plazo σ∞2\sigma_\infty^2 y compárala con σ22\sigma_2^2.

Solución.

  1. σ12=0.00001+0.08(0.03)2+0.90(0.00020)=0.00001+0.000072+0.00018=0.000262\sigma_1^2 = 0.00001+0.08(0.03)^2+0.90(0.00020) = 0.00001+0.000072+0.00018 = 0.000262 (σ1≈1.619%\sigma_1\approx1.619\%). σ22=0.00001+0.08(0.01)2+0.90(0.000262)=0.00001+0.000008+0.0002358=0.0002538\sigma_2^2 = 0.00001+0.08(0.01)^2+0.90(0.000262) = 0.00001+0.000008+0.0002358 = 0.0002538 (σ2≈1.593%\sigma_2\approx1.593\%).
  2. σ∞2=0.00001/(1−0.08−0.90)=0.00001/0.02=0.0005\sigma_\infty^2 = 0.00001/(1-0.08-0.90) = 0.00001/0.02 = 0.0005 (σ∞≈2.236%\sigma_\infty\approx2.236\%). Después de un choque grande, σ22\sigma_2^2 (0.00025380.0002538) sigue muy por debajo de la varianza de largo plazo — normal justo después de iniciar la serie, y muestra por qué GARCH necesita muchas observaciones para "olvidar" el punto de partida.

Practica tú (resuelve antes de mirar la respuesta). Con los mismos ω,α,β\omega, \alpha, \beta y σ22=0.0002538\sigma_2^2=0.0002538 (del paso anterior), llega un choque grande ε3=−0.05\varepsilon_3=-0.05. Calcula σ32\sigma_3^2. Respuesta: σ32=0.00001+0.08(0.05)2+0.90(0.0002538)≈0.000438\sigma_3^2=0.00001+0.08(0.05)^2+0.90(0.0002538)\approx 0.000438 (σ3≈2.09%\sigma_3\approx 2.09\%) — el choque grande subió la volatilidad proyectada.

🔧 En código libre: el paquete arch (de Kevin Sheppard) es el estándar en Python para ajustar GARCH y familia; statsmodels.tsa cubre el resto de series de tiempo (ACF, ARIMA) que normalmente se revisa antes de llegar a GARCH.

📌 Para repasar: σt2=ω+αεt−12+βσt−12\sigma_t^2=\omega+\alpha\varepsilon_{t-1}^2+\beta\sigma_{t-1}^2, con α+β<1\alpha+\beta<1. La volatilidad "recuerda" los choques recientes y decae hacia σ∞2=ω/(1−α−β)\sigma_\infty^2=\omega/(1-\alpha-\beta).

Práctica paso a paso

GARCH(1,1) paso a paso

Mira cómo se resuelve completo y por qué se hace cada paso.

Un modelo GARCH(1,1) tiene ω = 0.1, α = 0.08 y β = 0.9 (varianzas en %²). La varianza inicial es σ₀² = 2 y ocurren dos choques: ε₁ = -3% y ε₂ = 1%. Proyecta la varianza de los días 1 y 2 y compárala con la de largo plazo.

  1. 1Varianza del día 1

    σ₁² = ω + α·ε₁² + β·σ₀² = 0.1 + 0.08×(-3)² + 0.9×2. Redondea a 4 decimales.

    σ12=ω+α ε12+β σ02\sigma_1^2 = \omega + \alpha\,\varepsilon_1^2 + \beta\,\sigma_0^2
    σ12=0.1+0.08×9+0.9×2=2.62 %2\sigma_1^2 = 0.1 + 0.08\times 9 + 0.9\times 2 = 2.62\ \%^2
  2. 2Varianza del día 2

    Repite con el choque de hoy ε₂ = 1 y usando la varianza que acabas de calcular como la de ayer. Redondea a 4 decimales.

    σ22=ω+α ε22+β σ12\sigma_2^2 = \omega + \alpha\,\varepsilon_2^2 + \beta\,\sigma_1^2
    σ22=0.1+0.08×1+0.9×2.62=2.538 %2\sigma_2^2 = 0.1 + 0.08\times 1 + 0.9\times 2.62 = 2.538\ \%^2
  3. 3Volatilidad del día 2

    Pasa la varianza del día 2 a volatilidad (desviación estándar): saca la raíz cuadrada. Redondea a 3 decimales (en %).

    σ2=σ22\sigma_2 = \sqrt{\sigma_2^2}
    σ2=2.538=1.593%\sigma_2 = \sqrt{2.538} = 1.593\%
  4. 4Varianza de largo plazo

    σ∞² = ω ÷ (1 − α − β) = 0.1 ÷ (1 − 0.08 − 0.9). Redondea a 3 decimales.

    σ∞2=ω1−α−β\sigma_\infty^2 = \dfrac{\omega}{1-\alpha-\beta}
    σ∞2=0.10.02=5 %2\sigma_\infty^2 = \frac{0.1}{0.02} = 5\ \%^2

    Volatilidad de largo plazo: √5 = 2.24%. La varianza del día 2 (2.538) está por debajo: con el tiempo tenderá a subir hacia ese nivel.

Los errores que más se repiten
  • No elevar al cuadrado el choque ε.

  • Usar la varianza de largo plazo (o la inicial) en lugar de la de ayer en la recursión.

  • Olvidar la raíz al pasar de varianza a volatilidad.

  • Restar solo α o β en el denominador de la varianza de largo plazo.

  • Mezclar unidades: aquí todo está en % (varianza en %²), no en decimales.