Saltar al contenido
Recorrido formativo Plata Método repetible

Data leakage y sesgo de anticipación (look-ahead bias)

Información no disponible en el momento de decidir que contamina variables, reglas, validación o simulación de órdenes y produce resultados históricos imposibles de replicar causalmente.

A quién va dirigido — A quien transforme datos históricos en señales, optimice parámetros, utilice machine learning o simule órdenes. Un modelo puede estar programado sin errores y aun así «conocer» el futuro porque se ha vulnerado la causalidad en una unión, una variable, una partición o un precio de ejecución.

El data leakage es la contaminación de un procedimiento de investigación por información que no debería haber estado disponible en el punto en que se utiliza. El sesgo de anticipación o look-ahead bias es el caso temporal: una decisión en el momento t incorpora directa o indirectamente datos conocidos solo después de t. El resultado no es simplemente optimista; simula una estrategia diferente, equipada con un canal de información inexistente.

En palabras sencillas — Ordenar las filas por fecha no basta. Cada paso debe respetar esta cadena: información disponible → señal → orden → ejecución posible → posición → resultado.

Pipeline causal: evento, señal, orden y fillCada flecha respeta disponibilidad y primer instante ejecutable. Ejemplo temporal: no se supone fill en la misma barra sin una regla de mercado verificable.Pipeline causal: evento, señal, orden y fillCada flecha respeta disponibilidad y primer instante ejecutableEjemplo temporal: no se supone fill en la misma barra sin una regla de mercado verificable.t₀1EventoEl hecho económicoo de mercadoocurre en eltiempo del evento.t₁2DisponibilidadLa estrategiarecibe y procesael dato solodespués de su lag.t₂3SeñalEl cálculo terminausando el snapshotinformativodisponible.t₃4OrdenLa instrucción seconstruye, envía yacepta según elprotocolo.t₄5FillLa ejecuciónrequiere precio yliquidezposteriorescompatibles con la…evento ≤ disponibilidad ≤ señal ≤ orden ≤ primer fill posibleCyclepedia · diagrama didáctico condicionado, no previsión ni promesa
Cada flecha debe apuntar del pasado al futuro. Una flecha que vuelve hacia la izquierda indica una posible filtración de información.

Distinciones esenciales

Problema Qué sucede Ejemplo
Look-ahead un valor futuro entra en la decisión utilizar el cierre de la barra para comprar a ese mismo cierre sin mecánica de subasta ni latencia
Target leakage el objetivo de la previsión se filtra a las variables una agregación incluye el periodo futuro del objetivo
Filtración de preprocesamiento (preprocessing leakage) la estimación o selección utiliza entrenamiento y prueba conjuntamente normalizar con la media y la desviación estándar de toda la muestra
Filtración entre muestras observaciones correlacionadas atraviesan la frontera etiquetas solapadas aparecen tanto en entrenamiento como en prueba
Información revisada el valor definitivo sustituye al vintage disponible una cifra macroeconómica corregida meses después
Simulación no causal la orden recibe un precio imposible señal al cierre con ejecución garantizada a ese mismo cierre

El sesgo de supervivencia es distinto: nace de observar únicamente entidades que sobrevivieron o fueron seleccionadas a posteriori. Puede coexistir con una filtración, pero corregir solo las marcas temporales no recrea instrumentos fallidos, fondos cerrados ni antiguos componentes de un índice.


Tres relojes: señal, orden y ejecución

Una regla de trading debe declarar al menos tres momentos:

  1. Hora de la señal: la información más reciente permitida en el cálculo.
  2. Hora de la orden: el primer momento en que puede crearse y enviarse una orden.
  3. Hora de ejecución: el momento o intervalo en el que el modelo de ejecución puede asignar cantidad y precio.

Si una señal utiliza close[t], una ejecución a close[t] exige una mecánica realmente disponible antes de la subasta o durante ella, y datos compatibles con esa decisión. Sin esta evidencia, una convención más defendible consiste en enviar la orden después de la señal y modelar una ejecución posterior. Del mismo modo, el máximo y el mínimo completos de una barra no pueden decidir una orden ejecutada dentro de esa misma barra sin una secuencia intrabar observable.

En publicaciones, presentaciones y datos macroeconómicos, el momento relevante es la marca temporal de difusión, no la fecha del periodo económico. Los datos point-in-time incluyen también el vintage, el retraso del proveedor y las correcciones posteriores.


Dónde se oculta la filtración

Variables y transformaciones

  • medias centradas, filtros bidireccionales o interpolación que utiliza observaciones futuras;
  • rankings transversales calculados sobre un universo reconstruido hoy;
  • winsorización, imputación o estandarización estimadas en todo el conjunto de datos;
  • datos fundamentales alineados con el cierre del trimestre en lugar de con la hora de presentación;
  • splits y dividendos aplicados sin distinguir la fecha efectiva de la fecha en que se conocieron.

Investigación y selección

El conjunto de prueba puede contaminarse sin ninguna columna que mire al futuro. Consultar repetidamente su resultado para seleccionar variables, umbrales o modelos lo convierte poco a poco en datos de desarrollo. Out-of-sample no es una etiqueta de archivo, sino una función dentro del proceso. Deben registrarse el número de alternativas intentadas, las decisiones rechazadas y los criterios de selección.

Órdenes y ejecución

Un precio OHLC no demuestra que una orden se hubiera ejecutado. Los stops y límites pueden alcanzarse sin ejecución; la cantidad disponible puede ser insuficiente; la prioridad en la cola puede ser desconocida; los retrasos y las ejecuciones parciales modifican la posición. Asignar siempre el precio más favorable de la barra es una forma de retrospectiva, distinta pero conectada con los costes de transacción en backtests.


Protocolo causal

  1. Escribir la decisión antes que el código. Enumerar datos de entrada, marcas temporales, zonas horarias, horas de corte, frecuencia y acción producida.
  2. Versionar los datos brutos. Conservar instantáneas, vintages, universo y acciones corporativas sin sobrescribir la historia.
  3. Calcular cada variable «as of». Una consulta en t debe excluir todo registro con available_at > t.
  4. Ajustar solo con entrenamiento. La imputación, el escalado, la selección de variables y la optimización deben aprenderse del subconjunto permitido y aplicarse después hacia delante.
  5. Respetar el orden temporal. Utilizar particiones cronológicas; cuando las etiquetas o posiciones se solapen, considerar purgas y gaps coherentes con el horizonte.
  6. Congelar la especificación. Registrar reglas, parámetros, universo, benchmark y métricas antes de la evaluación final.
  7. Separar señal, orden y ejecución. Aplicar retrasos, calendarios, tipos de orden y datos realmente observables.
  8. Conservar todos los experimentos. Un registro de experimentos reduce el data snooping invisible.
  9. Repetir desde una instantánea limpia. El resultado debe poder reproducirse sin archivos intermedios construidos con información futura.

Ejemplo ilustrativo — Una regla compra en la apertura cuando los beneficios trimestrales superan las expectativas. La base de datos asocia la cifra con el cierre del trimestre, pero la publicación llega seis semanas después. Por tanto, el test original compra antes de la publicación. La corrección conserva la marca temporal de difusión, espera la siguiente ventana negociable y utiliza el vintage disponible entonces. La secuencia temporal ilustra un control causal, no una estrategia recomendada.


Pruebas diagnósticas

Prueba Qué puede revelar
Desplazar cada variable una barra dependencia oculta de la barra actual
Reconstruir el conjunto de datos a una fecha histórica valores revisados o composición retrospectiva
Aumentar artificialmente la latencia y los gaps fragilidad en la secuencia causal
Ajustar el preprocesamiento por separado en cada fold contaminación entre entrenamiento y prueba
Eliminar el precio «perfecto» de la barra ejecuciones imposibles o selección favorable
Ejecutar un placebo con el objetivo desplazado en el tiempo correlaciones sospechosas en el flujo

Un derrumbe después de estas pruebas es una señal de alerta, no una prueba automática de la causa. Tampoco un resultado estable demuestra que no exista filtración: algunas filtraciones pueden sobrevivir a las perturbaciones.

Limitaciones

Las particiones temporales, los procedimientos walk-forward y la validación cruzada no reparan datos ya contaminados. Las purgas y los embargos deben seguir la estructura de las etiquetas, no aplicarse como rituales. Un conjunto causal puede seguir sufriendo errores de medición, selección múltiple, cambio de régimen, poca potencia o un universo incompleto. Por ello, la validación exige tanto controles estadísticos como una auditoría de la ruta de la información.


Fuentes

  • Halbert White, A Reality Check for Data Snooping, Econometrica, 2000 — inferencia cuando el resultado seleccionado surge de muchas especificaciones exploradas.
  • Robert D. Arnott, Campbell R. Harvey y Harry Markowitz, A Backtesting Protocol in the Era of Machine Learning — separación entre investigación, selección y prueba holdout cuando los datos financieros son escasos.
  • David H. Bailey, Jonathan M. Borwein, Marcos López de Prado y Qiji Jim Zhu, The Probability of Backtest Overfitting — riesgo de sobreajuste derivado de seleccionar entre muchas configuraciones.
  • Federal Reserve Bank of St. Louis, FRED® versus ALFRED® — diferencia entre la información histórica disponible hoy y el vintage conocido en el pasado.
  • scikit-learn, TimeSeriesSplit — validación cruzada ordenada en el tiempo y parámetro de gap; documentación técnica oficial.

Enlaces