Los cuatro estiman la varianza a partir de rendimientos al cuadrado y no de desviaciones respecto de una media móvil. A frecuencia diaria la media es indistinguible de cero —la etapa 03 lo contrasta directamente— y restar una estimación ruidosa de ella agrega varianza al estimador sin eliminar sesgo.
Toda estimación en \(t\) usa información hasta \(t-1\). Los parámetros se estiman con datos hasta el 31 de diciembre de 2025 y se evalúan sobre 2026.
3 Promedios móviles
La Figura 1 compara la respuesta de las distintas ventanas móviles.
Figura 2: EWMA con el factor de decaimiento de RiskMetrics.
5 EWMA calibrado con los datos
La Tabla 1 compara los parámetros seleccionados por cada criterio.
Ver código
fit_rmse <-ewma_fit_lambda(estimation$log_return, loss ="rmse")fit_ll <-ewma_fit_lambda(estimation$log_return, loss ="loglik")report_table(data.frame(criterio =c("RMSE", "Log-verosimilitud"),lambda =c(fit_rmse$lambda, fit_ll$lambda),alpha =c(fit_rmse$alpha, fit_ll$alpha) ),caption ="Factor de decaimiento seleccionado bajo cada criterio.")
Tabla 1: Factor de decaimiento seleccionado bajo cada criterio.
Criterio
Lambda
Alfa
RMSE
0.995
0.005
Log-verosimilitud
0.985
0.015
ImportantePendiente de redacción
Justificación de \(\lambda\) y comparación de la velocidad de respuesta frente a los promedios móviles. Si los dos criterios discrepan, la discrepancia es informativa: el RMSE es simétrico, la verosimilitud penaliza mucho más subestimar la volatilidad que sobreestimarla.
6 ARCH / GARCH
Ver código
garch <-fit_garch(estimation$log_return)report_table(garch$selection, caption ="Tabla de selección de órdenes.")
ImportantePendiente de redacción
Identificación del modelo, justificación del orden seleccionado e interpretación de los coeficientes: persistencia \(\alpha + \beta\), velocidad de reversión y significado de una persistencia cercana a uno.
Activar el chunk anterior cuando rugarch esté instalado (renv::restore()).
7 Evaluación fuera de muestra
Ver código
realised <-realised_volatility(evaluation$log_return)scores <-rbind(score_volatility(ma_oos, realised, "MA(m*)"),score_volatility(ewma_oos, realised, "EWMA"),score_volatility(ewma_fit_oos, realised, "EWMA calibrado"),score_volatility(garch_oos, realised, "GARCH"))report_table(scores, caption ="Desempeño fuera de muestra, 2026.")
ImportantePendiente de redacción
Construir las series fuera de muestra de cada modelo y compararlas contra la volatilidad realizada. Responder de forma argumentada:
¿Qué modelo captura mejor los periodos de alta volatilidad?
¿Cuál reacciona más rápido a los cambios de mercado?
¿Cuál es más estable en sus estimaciones?
¿Cuál tiende a sobreestimar y cuál a subestimar?
8 Conclusión
ImportantePendiente de redacción
Comparación general y, desde una perspectiva financiera, qué modelo se usaría y por qué.