Backtesting y Validación Walk-Forward

La validación cruzada aleatoria entrena calladamente con el futuro. Este módulo cubre las alternativas honestas — esquemas walk-forward, purging y embargos para etiquetas traslapadas, y la aritmética de pruebas múltiples que hace que la mayoría de los backtests sean demasiado buenos para ser verdad.

El error más caro en machine learning financiero no es un mal modelo — es una evaluación con buena pinta de un mal modelo. Un modelo que falla honestamente en validación te cuesta unas cuantas semanas. Un modelo que pasa una validación rota se va a producción, coloca créditos o toma posiciones durante un año, y falla con dinero de por medio. Este módulo trata de las formas específicas en que la validación financiera se rompe, y de los esquemas que la arreglan.

Por qué el método de libro de texto entrena con el futuro

La validación cruzada k-fold — revolver los datos, partirlos en folds, rotar el fold de prueba — es correcta cuando las observaciones son intercambiables: cuando nada en la fila 500 te dice que vino “después” de la fila 200. Los datos financieros son lo contrario de intercambiables. El orden temporal carga regímenes (el tema completo del Módulo 3), relaciones que van a la deriva y — en crédito — ventanas de resultado que se estiran meses hacia el futuro.

Revuelve eso, y cada fold entrena con el futuro de su propio conjunto de prueba. El modelo aprende los patrones de 2025 y luego lo examinan con 2024. Mira lo que los folds hacen en realidad:

Visualizador de Esquemas de Validación

100 observaciones ordenadas en el tiempo, 5 folds. El verde entrena, el rojo prueba, el gris está purgado. La pregunta para cada esquema: ¿hay algún verde después del rojo?

tiempo → ■ train ■ test ■ purgado
Violaciones de train después de test
Veredicto

Selecciona k-fold aleatorio y fíjate en el contador de violaciones — luego cambia a walk-forward expansivo y míralo caer a cero. Ese contador es el argumento completo de este módulo, hecho visual. En el caso del k-fold se mezclan dos pecados distintos, y vale la pena separarlos porque tienen arreglos diferentes:

  1. Fuga de régimen — entrenar con periodos posteriores cuyos patrones (entorno de tasas, condiciones competitivas, mezcla de acreditados) simplemente no existían en la fecha de prueba. El arreglo es cronología: esquemas walk-forward.
  2. Fuga por traslape de etiquetas — más sutil y más traicionera. Una etiqueta de crédito como “incumple dentro de 12 meses” (la ventana de desempeño del Módulo 2 de DS) significa que una observación fechada en enero contiene información hasta el enero siguiente. Una fila de entrenamiento de noviembre y una fila de prueba de diciembre comparten la mayor parte de una ventana de resultado — misma recesión, mismos eventos del portafolio. No son independientes, sin importar con cuánto cuidado las hayas ordenado. El arreglo es quirúrgico: purging (purga: eliminar las observaciones de entrenamiento cuyas ventanas de etiqueta se traslapan con el conjunto de prueba) más un embargo (un colchón adicional después del bloque de prueba, para la correlación serial que sobrevive a la ventana). Actívalo en el widget y mira aparecer el hueco gris — ese hueco es el precio de la honestidad, pagado en datos de entrenamiento.

La familia walk-forward

Todos los esquemas honestos comparten una propiedad — el entrenamiento siempre precede a la prueba — y difieren en una sola pregunta: ¿cuánto pasado conservas?

¿Cuál elegir? Para scoring de crédito: OOT para el titular, walk-forward expansivo con purging para la selección de modelo, y una variante móvil como sonda de sensibilidad a regímenes. Para cualquier cosa que se parezca a una señal de trading: solo walk-forward, y sigue leyendo.

Sobreajuste de backtest: la máquina de pruebas múltiples

Hay una segunda forma, completamente aparte, de fabricar un backtest hermoso, y ningún esquema de partición la evita: intenta suficientes cosas. Prueba 100 estrategias aleatorias e inútiles contra los mismos datos históricos y la mejor se verá excelente — a un nivel de significancia del 5%, cinco de ellas libran la vara por construcción. Cada barrido de hiperparámetros, cada conjunto de features que probaste y descartaste, cada “nomás déjame checar una variante más” es un boleto de esta lotería, y el backtest final que reportas condiciona en silencio sobre haberla ganado.

Por eso el campo desarrolló una estadística oscura: la probabilidad de sobreajuste de backtest, los Sharpe ratios deflactados, y la regla de dedo de que un Sharpe de backtest debe partirse mentalmente a la mitad antes de creerlo. No necesitas toda la maquinaria para actuar sobre la idea:

Análisis de cosechas: el backtest nativo del crédito

El crédito tiene su propio formato de evaluación honesto con el tiempo, y vale la pena conocerlo por nombre. Una cosecha (vintage) es una cohorte de créditos colocados en el mismo periodo; el análisis de cosechas sigue la curva de incumplimiento (o pérdida) acumulada de cada cohorte por meses en libros, y luego compara las curvas entre cosechas. Responde las preguntas que las métricas walk-forward comprimen: ¿La cosecha 2025-Q3 va peor que la 2024-Q3 a la misma edad? ¿El scorecard nuevo de verdad mejoró las cosechas colocadas bajo él? ¿El deterioro viene de drift en la originación o del entorno macro (todas las cosechas doblándose juntas)? Un modelo puede sostener su Gini mientras las cosechas se deterioran — el ordenamiento sobrevive, la calibración muere (la distinción del Módulo 4, en versión de series de tiempo). Grafica ambas.

Dónde se conecta

Pruébalo tú mismo

El notebook de abajo cuantifica cada afirmación: un panel sintético de crédito con drift donde el k-fold aleatorio sobreestima el AUC frente al walk-forward con purging (la brecha es la fuga, medida); la implementación de purge/embargo desde cero con el contador de traslape de etiquetas; la lotería de pruebas múltiples — 200 estrategias de puro ruido, la gloria deflactada del ganador y la corrección honesta; y un constructor de curvas de cosecha que muestra a un modelo con Gini estable fallando en calibración cosecha tras cosecha. El ejercicio final te entrega un backtest roto al estilo de los publicados y te pide encontrar las cuatro cosas que tiene mal. (Son cinco.)

Laboratorio de Backtesting y Validación (notebook de Jupyter)
Descarga gratuita, sin registro (archivo en inglés).
Descargar

Recibe los nuevos posts por correo

Un correo por cada artículo nuevo. Sin spam, sin ventas, cancela cuando quieras.