Validación cruzada que respeta el reloj
La validación cruzada reutiliza los datos: los corta en pliegues, prueba con uno y entrena con el resto. Para filas independientes funciona, pero las etiquetas financieras se solapan en el tiempo. Si la etiqueta de la fila es el rendimiento de a , su ventana es . Un pliegue de prueba que cubre las filas a tiene etiquetas que cubren . Toda fila de entrenamiento cuya ventana toque ese rango, es decir , comparte rendimientos con las etiquetas de prueba. Conservar esas filas deja que el modelo vea parte de la respuesta.
La purga elimina las filas de entrenamiento que se solapan. El embargo elimina un tramo más de filas tras el pliegue de prueba, porque los rendimientos están autocorrelacionados y la volatilidad se agrupa, así que las primeras filas tras un bloque de prueba aún llevan información sobre él. En un esquema walk-forward el entrenamiento solo va antes de la prueba y la misma idea se vuelve un hueco: entrenar con las filas hasta , de modo que el hueco es (más ). TimeSeriesSplit de scikit-learn tiene un argumento gap para esto. En el panel mensual de acciones con , el coeficiente de información walk-forward es sin embargo y con meses de embargo: la limpieza cambia poco porque el solapamiento es corto, pero no se puede saber sin hacerlo.
- Purgar y luego embargar: quitar las filas de entrenamiento cuyas etiquetas tocan las de prueba y unas pocas más después de la prueba.
- Un hueco en walk-forward: entrenar solo con filas al menos antes de la prueba.
- Hágalo aunque cambie poco: una evaluación limpia cuesta unas filas, una fuga puede costar una estrategia.
Lab: qué se califica
- Filas purgadas antes del pliegue10 pts
- Filas purgadas después del pliegue15 pts
- El tamaño de entrenamiento que queda15 pts
- Un pliegue walk-forward con hueco10 pts
- Qué filas se purgan10 pts
- Una partición purgada10 pts
- Emparejar el vocabulario15 pts
- Por qué también un embargo15 pts