Backtesting

learn menu
Por Joannès Vermorel, última revisión en agosto de 2013

En el contexto del pronóstico de series de tiempo, la noción de backtesting se refiere al proceso de evaluar la precisión de un método de pronóstico utilizando datos históricos existentes. El proceso es típicamente iterativo y se repite en múltiples fechas presentes en los datos históricos. El backtesting se utiliza para estimar la precisión futura esperada de un método de pronóstico, lo cual es útil para evaluar qué modelo de pronóstico debe considerarse como el más preciso.

Cómo funciona el backtesting

El proceso de backtesting comienza seleccionando una lista de fechas umbral dentro de un período de tiempo cubierto por los datos históricos. En la ilustración a continuación, las fechas umbral se indican como T1, T2, T3 y T4.

El backtesting es un proceso para evaluar la precisión de pronóstico de un modelo estadístico dependiente del tiempo utilizando datos históricos.

Luego, para cada fecha umbral,

  • los datos históricos se truncan en la fecha umbral,
  • el modelo de pronóstico se entrena y se aplica a los datos truncados,
  • los pronósticos se comparan con los datos originales no truncados.

Finalmente, se establece un error promedio de pronóstico sobre todas las fechas umbral.

Este error promedio se puede interpretar como una estimación del error que estará asociado al modelo al producir pronósticos reales (sobre el futuro). Elegir el conjunto adecuado de fechas umbral generalmente implica ciertos conocimientos relacionados con el problema en cuestión. Como regla general, aumentar el número de fechas umbral mejora típicamente la resiliencia del proceso contra problemas de sobreajuste.

Para fines de optimización de inventario, dado que típicamente hay cientos de SKU involucrados, solo se requieren unas pocas fechas umbral para decidir, con una confianza muy alta en la decisión, si un método de pronóstico es mejor que otro.

Un error común: aprender una vez, pronosticar muchas veces

El backtesting es típicamente bastante intensivo en términos de recursos informáticos, ya que se debe entrenar un nuevo modelo de pronóstico para cada fecha umbral. Como resultado, observamos rutinariamente a profesionales que entrenan el modelo de pronóstico solo una vez, aprovechando típicamente todo el rango de datos históricos, y luego proceden con las iteraciones de backtesting. El beneficio percibido de este enfoque suele ser una aceleración masiva del backtesting.

Sin embargo, este truco es equivocado y conduce a problemas significativos de sobreajuste. De hecho, implícitamente, a medida que los datos futuros están disponibles para el modelo de pronóstico, cualquier estimación de variables que tenga lugar durante la fase de aprendizaje hará que el modelo incorpore información sobre este futuro. Como resultado, la precisión medida a partir de los backtests no reflejará las capacidades de generalización del modelo, sino más bien sus capacidades de memoria, es decir, la capacidad del modelo para reproducir situaciones idénticas encontradas en el conjunto de datos de entrenamiento.

Lokad Gotcha

El backtesting es el núcleo de la tecnología de pronóstico de Lokad. Lo utilizamos para cada serie de tiempo para seleccionar qué modelo se utilizará para entregar el pronóstico final. Sin embargo, la visión simple de backtesting presentada en este artículo no es adecuada para todas las situaciones que se encuentran en el comercio minorista y la fabricación. Por ejemplo, para productos recién lanzados, la serie de tiempo puede ser demasiado corta para realizar cualquier backtesting significativo. Las promociones y los lanzamientos de productos también requieren enfoques dedicados.