/ Proyectos / Negocio / Predicción de rendimientos de bonos
Predicción de rendimientos de bonos del Tesoro de EE.UU.: indicadores técnicos y redes recurrentes
Reconstrucción de la curva completa de rendimientos, de 3 meses a 30 años, combinando selección de variables macro, indicadores técnicos e ingeniería de características con modelos RNN, LSTM y GRU.
El objetivo era predecir la curva completa de rendimientos del Tesoro de EE.UU., los 8 plazos que van de 3 meses a 30 años, a partir de indicadores macroeconómicos y del comportamiento reciente de cada serie. El problema real: cerca de 20 variables macro correlacionadas entre sí, series no estacionarias y una relación entre variables y rendimiento que cambia según el plazo.
Antes de entrar en detalle conviene ser honestos: predecir el rendimiento de un bono es difícil por naturaleza. Hay variables sociales, políticas y de expectativa de mercado que ninguna columna del dataset captura. Cuando hay menos volatilidad es más fácil acertar, pero justamente porque el activo se mueve poco, no porque el modelo haya "entendido" la economía. Este proyecto no promete anticipar el próximo giro de política monetaria; muestra cómo construir, con criterio, el mejor pronóstico posible a partir de la señal disponible.
Mapa del casoContenido
- Diagrama de la solución. Los bloques del pipeline, de las fuentes macro a la predicción de la curva
- Construcción de la solución. Por qué la ingeniería de características pesó más que la arquitectura
- Condiciones del proyecto. Restricciones reales y opciones descartadas antes de construir
- Pasos. Qué se dejó al agente y qué criterio se aplicó en cada uno, con las ecuaciones de cada indicador
- Proceso de iteración. Dónde funcionó el enfoque y dónde no
- Descargables. Notebook, diagrama y repositorio del proyecto
- Lecciones importantes. La lección concreta que deja este caso
Estructura de alto nivelDiagrama de la solución
Pasa el cursor sobre cada bloque para ver qué hace ese paso.
La rama de variables macro y la rama de indicadores técnicos se calcularon por separado antes de escalarlas juntas, porque cada una responde a una lógica distinta: una describe el entorno económico, la otra el comportamiento reciente del propio rendimiento.
Cómo se construyóConstrucción de la solución
Condiciones del proyecto
| Restricción | Dato |
|---|---|
| Objetivo inicial | No exigía llevar el modelo a producción, con margen para comparar varios enfoques de forecasting |
| Variables macro disponibles | Cerca de 20 indicadores, muchos correlacionados entre sí |
| Plazos a predecir | 8 puntos de la curva, de 3 meses a 30 años, cada uno con dinámica propia |
| Naturaleza de las series | No estacionarias, con volatilidad muy distinta entre plazos cortos y largos |
| Opción | Por qué se descartó |
|---|---|
| Usar las ~20 variables macro sin filtrar como entrada directa | Añade ruido y colinealidad sin aportar señal extra al modelo |
| Modelar los rendimientos en niveles, sin probar estacionariedad | Infla artificialmente el desempeño reportado, la serie no es estable en el tiempo |
| Resolver la predicción con un modelo de lenguaje o foundation model de series de tiempo | El problema es demasiado específico y numérico; un LLM no aporta ventaja sobre indicadores técnicos bien diseñados |
| Selección de variables por información mutua + indicadores técnicos + modelos secuenciales por plazo | Reduce ruido, corrige la no estacionariedad y deja que cada plazo aprenda su propia dinámica |
Pasos
Selección de variables macro por información mutua
Agente: propuso usar las ~20 variables macro completas como entrada.
Criterio aplicado: calcular información mutua entre cada variable y los 8 rendimientos, y quedarse solo con las 10 más informativas, para reducir ruido y colinealidad antes de tocar cualquier modelo.
Prueba de estacionariedad y diferenciación
Agente: sugirió entrenar directamente sobre los niveles de cada rendimiento.
Criterio aplicado: aplicar la prueba ADF a cada serie, confirmar que no eran estacionarias, y diferenciarlas de primer orden antes de modelar, para no inflar el desempeño reportado.
Ingeniería de indicadores técnicos
Agente: propuso alimentar el modelo solo con el rendimiento suavizado por una media móvil.
Criterio aplicado: construir explícitamente cuatro indicadores sobre cada serie de rendimiento, porque el nivel crudo no describe ni el momentum ni la volatilidad reciente que sí capturan estas variables.
Las ecuaciones detrás de cada indicador
SMA de 20 días, promedio móvil que suaviza el ruido de corto plazo:
\[ \text{SMA}_{20}(t) = \frac{1}{20} \sum_{i=0}^{19} y_{t-i} \]
Bandas de Bollinger, que miden la volatilidad alrededor de la SMA:
\[ \text{BB}_{upper}(t) = \text{SMA}_{20}(t) + k\,\sigma_{20}(t), \qquad \text{BB}_{lower}(t) = \text{SMA}_{20}(t) - k\,\sigma_{20}(t) \]
RSI de 14 días, que compara ganancias contra pérdidas recientes:
\[ \text{RSI}(t) = 100 - \frac{100}{1 + RS(t)}, \qquad RS(t) = \frac{\text{ganancia media}_{14}}{\text{pérdida media}_{14}} \]
Autocorrelación lag-1, que mide cuánto se parece el rendimiento de hoy al de ayer:
\[ \rho_1 = \text{corr}(y_t,\, y_{t-1}) \]
Un modelo por plazo, no un modelo único para toda la curva
Agente: propuso entrenar un solo LSTM genérico y aplicarlo a los 8 plazos.
Criterio aplicado: entrenar RNN, LSTM y GRU de forma independiente para cada plazo, porque el tramo corto de la curva (3M, 6M) y el tramo largo (10Y, 30Y) responden a dinámicas distintas y comparten poco patrón entrenable.
Proceso de iteración
Ajuste documentado, no forzado
El enfoque de indicadores técnicos más modelos secuenciales funcionó mejor en los plazos cortos (3M, 6M, 12M), donde la volatilidad es menor y el patrón reciente pesa más. En los plazos largos (10Y, 30Y) el error creció de forma consistente: ahí influyen expectativas de política monetaria y factores macro de largo plazo que ninguna variable del dataset captura. También se probó ARIMA como punto de comparación clásico; funcionó de forma razonable en el corto plazo, pero no superó a los modelos secuenciales en ningún plazo largo.
Descargables
Nota: el dataset del repositorio es sintético, generado para fines demostrativos. Replica la estructura y el comportamiento general de la curva de rendimientos y de los indicadores macro, pero no son datos reales de mercado.
CierreLecciones importantes
La ingeniería de características no está muerta, aunque existan modelos de lenguaje capaces de razonar sobre casi cualquier texto. Cuando el problema es lo suficientemente específico, predecir un número a partir de su propia serie de tiempo, un LLM no tiene ventaja frente a un puñado de indicadores técnicos bien diseñados y una arquitectura recurrente entrenada para esa tarea puntual. Vale la pena preguntarse, antes de reachar por el modelo más grande disponible, si el problema en realidad pide algo más simple y más específico.
La segunda lección es de honestidad con el resultado: ningún modelo de este tipo predice el rendimiento de un bono con certeza. Hay variables sociales, políticas y de expectativa que no están en ningún dataset. Lo que sí se puede hacer, y es lo que se hizo aquí, es aprovechar al máximo la señal disponible sin fingir que el problema es más simple de lo que es.
Si quieres ver un enfoque publicado con una idea similar, selección de variables y modelos de machine learning aplicados a series financieras, este paper es una buena referencia del nivel de la contribución: Markowitz Mean-Variance Portfolio Optimization with Predictive Stock Selection Using Machine Learning.
Termina ya tu proyecto
¿Tienes un proyecto similar y no sabes por dónde empezar? Yo te ayudo a diseñarlo.
El 92% de los profesionales de datos desbloquea sus proyectos al ver ejemplos completos resueltos.
Sin registro. Acceso inmediato