A quién sirve — A cualquiera que haga ML o backtest sobre series temporales. El leakage es el error silencioso que transforma un modelo «perfecto» en pérdida en real.
El data leakage (fuga / contaminación de datos) ocurre cuando información no disponible en el momento de la decisión entra en la feature, el target o el preprocesamiento — look-ahead bias, shuffle sobre series temporales, normalización sobre todo el dataset, join con datos revisados a posteriori.
Tratamiento canónico: Data leakage y sesgo de anticipación — causalidad, preprocesamiento, auditoría y diferencia respecto al sesgo de supervivencia.
En palabras sencillas — El modelo «hace trampa» mirando las respuestas del examen antes de responder — en paper queda perfecto, en real no.
Formas frecuentes
| Tipo | Ejemplo |
|---|---|
| Look-ahead | Feature que usa el close de la barra actual para entrar en la apertura |
| Target leakage | Target construido con datos post-evento no conocidos en t |
| Preprocesamiento global | StandardScaler ajustado sobre train+test juntos |
| Survivorship | Universo de valores solo los que aún cotizan hoy |
| Revisiones | Macro «final» en vez del primer print |
En finanzas el tiempo es causal: los splits deben respetar el orden cronológico (out-of-sample).
Prevención
- Features calculadas con lags explícitos; entrada en la apertura de la barra siguiente
- Walk-forward y purge entre folds adyacentes
- Auditar el pipeline: «¿qué sabía yo en t?»
- Comparar con una baseline naive — si el salto es enorme, sospecha de leakage
Error típico — `train_test_split` aleatorio sobre OHLCV — mezcla futuro y pasado, métricas irreales.
Ejemplo — Modelo que predice un gap up: la feature incluye `high - open` de la misma barra en la que entras en la apertura → leakage, accuracy del 90%+, inútil en real.
Ficha
- Regla: ningún dato de t+1 en la decisión en t.
- Test: desplaza la feature 1 barra — ¿el rendimiento se desploma? leakage probable.
- Lee también: Overfitting, que a menudo enmascara el leakage.