Detección de Volatilidad Anómala: pronóstico de IBEX35 con TFT‑lite y bandas de incertidumbre
He desarrollado un modelo que predice la volatilidad a 5 días del IBEX35 y de cinco acciones españolas, entregando cuantiles q10/q50/q90. La calibración alcanza 0.91 de cobertura y reduce el MAE en un 38 % frente al baseline naïve.
▶ Probar la demo
En el ámbito financiero, anticipar la volatilidad de un activo es crucial para la gestión de riesgos. El proyecto Detección de Volatilidad Anómala aborda este reto mediante un modelo de series temporales que genera predicciones puntuales y bandas de incertidumbre, permitiendo identificar desviaciones significativas en la volatilidad realizada.
Problema y objetivo
Quería predecir la volatilidad a 5 días del IBEX35 y de cinco acciones españolas (SAN, ITX, BBVA, TEF) con la mayor precisión posible, y además disponer de intervalos que cubran la volatilidad real con una tasa de cobertura cercana al 90 %. El objetivo era superar el desempeño de un modelo naïve de persistencia y ofrecer una herramienta útil para detectar anomalías.
Arquitectura del pipeline
- Ingesta de datos: Utilizo
yfinancepara descargar precios históricos de Yahoo Finance. Si la descarga falla, recuro a una simulación basada en un modelo GARCH para garantizar la continuidad del entrenamiento. - Pre‑procesamiento: Calculo la volatilidad realizada a 5 días como la desviación estándar de los retornos logarítmicos en la ventana correspondiente. Normalizo las series y genero características temporales (lag, diferencias, día de la semana).
- Modelo: Implemento un Temporal Fusion Transformer lite (TFT‑lite) en PyTorch, adaptado para regresión de cuantiles mediante Quantile Regression. El modelo produce tres salidas simultáneas: q10, q50 y q90.
- Servicio: Despliego la inferencia mediante
FastAPI, exponiendo un endpoint que recibe el ticker y devuelve la predicción y sus bandas.
Decisiones técnicas clave
- Elección de TFT‑lite: El transformer permite capturar dependencias a largo plazo sin la complejidad de un modelo full‑size, manteniendo tiempos de entrenamiento razonables en una sola GPU.
- Regresión de cuantiles: En lugar de estimar solo la media, entreno directamente los cuantiles q10 y q90, lo que simplifica la obtención de intervalos de confianza y mejora la calibración.
- Fallback GARCH: La generación sintética de series con GARCH garantiza que el proceso de entrenamiento nunca se interrumpa por problemas de conectividad, manteniendo la reproducibilidad.
- Validación cruzada temporal: Divido los 5 años de histórico en bloques de entrenamiento/validación respetando el orden cronológico, evitando fugas de información.
Calibración y métricas
He evaluado el modelo en 1 244 muestras reales. Los resultados más relevantes son:
- Cobertura del intervalo q10–q90: 0.91 (objetivo 0.90).
- Proporción del intervalo (q90‑q10) respecto a la volatilidad real: 80.2 % (objetivo 80 %).
- MAE del cuantíl medio (q50): 0.0015 frente a 0.0024 del baseline naïve, lo que representa una reducción del 38 %.
Estos números confirman que el modelo no solo es preciso, sino que sus bandas de incertidumbre están bien calibradas, lo que es esencial para la detección de anomalías.
Detección de anomalías
Defino una anomalía cuando la volatilidad realizada a 5 días supera la banda superior q90. En los últimos 5 años, el modelo ha señalado 5 eventos claros en los activos analizados, coincidiendo con periodos de alta tensión del mercado (por ejemplo, la crisis de COVID‑19 y la caída del petróleo en 2020).
Implementación y despliegue
Todo el código está disponible en GitHub bajo licencia MIT. El repositorio incluye scripts de entrenamiento, notebooks de validación y la definición del API FastAPI. La demo está alojada en adrianmoreno-dev.com, donde se pueden consultar predicciones en tiempo real.
Conclusiones
El proyecto demuestra que, con una arquitectura ligera basada en TFT y una estrategia de cuantiles, es posible obtener pronósticos de volatilidad con bandas de incertidumbre bien calibradas y una mejora sustancial frente a métodos triviales. Además, la capacidad de detectar desviaciones anómalas abre la puerta a aplicaciones de monitoreo de riesgo en tiempo real, todo ello con código abierto y reproducible.
Sobre este proyecto
Detección de Volatilidad Anómala
Pronostica la volatilidad del IBEX35 y acciones españolas a 5 días con bandas de incertidumbre (cuantiles q10/q50/q90) usando un TFT-lite sobre datos reales de Yahoo Finance (con f...
Newsletter
¿Te aviso de nuevos proyectos y artículos?
Sin spam. Solo un email cuando publico algo nuevo de IA. Baja en un clic.