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.

Cita esta entrada

Esta referencia cita la entrada de Cyclepedia. Los documentos en los que se basa figuran en las fuentes de la entrada.

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 decidir con el precio final de la subasta y retrotraer la orden a esa misma subasta
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 el entrenamiento incorpora resultados aún no observables en su fecha de corte una etiqueta de cinco sesiones termina dentro del periodo de 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: cuando la señal está lista; debe distinguirse de la hora de corte de la información admitida en el cálculo.
  2. Hora de la orden: creación y envío, seguidos de llegada y aceptación en el mercado.
  3. Hora de ejecución: momento o intervalo en que la orden admitida puede encontrar precios y cantidades compatibles.

Si la decisión requiere el precio final close[t], no puede determinar la participación en la misma subasta que forma ese precio. Una orden al cierre enviada antes debe respetar las horas de corte del mercado y usar la información entonces disponible: la ficha de NYSE citada separa la entrada de órdenes del proceso de subasta. Una ejecución posterior podría tener el mismo precio numérico, pero no el mismo instante. El máximo y el mínimo definitivos de la barra no están disponibles como variables antes de completarse; una reproducción intrabar debe mostrar únicamente los eventos ya observados en cada decisión.

En publicaciones, presentaciones y datos macroeconómicos, la fecha del periodo económico no es la marca temporal de difusión. La estrategia también debe haber recibido y poder procesar el dato. Los datos point-in-time conservan versiones (vintages): una revisión posterior no sustituye a la disponible al decidir. ALFRED reconstruye lo conocido en una fecha histórica; por sí solo no certifica la hora intradía ni la latencia del proveedor utilizado.


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.

Para estandarizar una variable: z = (x − media_train) / desviación_train. Media y desviación se estiman en el entrenamiento de cada fold y se reutilizan en su prueba; debe gestionarse también una desviación nula. scikit-learn distingue fit de transform.

Investigación y selección

El data snooping reutiliza la muestra para inferencia o selección: puede producir un ganador fortuito aunque todos los datos respeten el tiempo. Por ello se distingue del look-ahead.

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». En la decisión t, excluir registros con available_at > t y seleccionar la versión entonces disponible de cada dato; documentar cómo se construye available_at.
  4. Ajustar solo con entrenamiento. Estimar imputación, escalado y selección de variables en el entrenamiento de cada fold; aplicar al test las transformaciones aprendidas. Seleccionar parámetros con validación, preservando la prueba final.
  5. Respetar el orden temporal. Cada etiqueta de entrenamiento debe ser ya observable en su fecha de corte. Si los intervalos informativos se solapan con la prueba, evaluar purga y gaps según las fechas reales, no solo la proximidad de las filas.
  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 disponibilidad y vintages tanto de la publicación como del consenso de expectativas, calcula la señal y espera una ventana de ejecución compatible con la llegada de la orden. 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.

Etiquetas futuras y límites del entrenamiento

La etiqueta es el resultado que se pretende predecir. Por ejemplo, el rendimiento de las cinco sesiones posteriores a la fila t solo se conoce después de esas sesiones. Usarlo como objetivo de un entrenamiento posterior es normal; incluirlo entre las variables de t, o utilizarlo en un entrenamiento concluido antes de que madure, introduce información futura. Excluir las etiquetas que sobrepasan la fecha de corte no equivale a prohibir cualquier correlación entre observaciones. El gap de scikit-learn cuenta filas excluidas: no reconstruye automáticamente la duración y disponibilidad de cada etiqueta.

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

Enlaces