Iniciar sesión Contactar
Volver a la base de conocimiento

Backtesting

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 previsión 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 previsión, lo cual es útil para evaluar qué modelo de previsión debería 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 intervalo temporal cubierto por los datos históricos. En la ilustración a continuación, los umbrales se denominan T1, T2, T3 y T4.

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

Luego, para cada umbral,

  • los datos históricos se truncan en el umbral,
  • el modelo de previsión se entrena y se aplica a los datos truncados,
  • las previsiones se comparan con los datos originales no truncados.

Finalmente, se establece un error promedio de previsión sobre todos los umbrales.

Este error promedio puede interpretarse como una estimación del error que se asociará con el modelo al producir previsiones reales (sobre el futuro). Elegir el conjunto adecuado de umbrales típicamente implica cierto know-how relacionado con el problema en cuestión. Como regla general, aumentar el número de umbrales generalmente mejora la resiliencia del proceso contra Overfitting problemas.

Para fines de optimización de inventario, dado que normalmente hay cientos SKUs involucrados, solo se requieren unos pocos umbrales para decidir, con muy alta confianza en la decisión, si un método de previsión es mejor que otro.

Un error común: aprender una vez, prever muchas

El backtesting es típicamente bastante intensivo en términos de recursos computacionales, ya que se debe entrenar un nuevo modelo de previsión para cada umbral. Como resultado, observamos de forma rutinaria a profesionales que entrenan el modelo de previsión sólo una vez, aprovechando típicamente todo el rango de datos históricos, y luego proceden con iteraciones de backtesting. El beneficio percibido de este enfoque es típicamente una aceleración masiva del backtesting.

Sin embargo, tal truco está mal orientado y conduce a problemas significativos de overfitting. De hecho, implícitamente, dado que se pone a disposición del modelo de previsión datos futuros, cualquier estimación de variables que tenga lugar durante la fase de aprendizaje hará que el modelo integre algo de 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 está en el núcleo de la tecnología de previsión de Lokad. Lo usamos para cada serie de tiempo para seleccionar qué modelo se utilizará para entregar la previsión 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 retail y la manufactura. Por ejemplo, para productos recién lanzados, la serie de tiempo podría ser demasiado corta para llevar a cabo un backtesting significativo. Promotions y los lanzamientos de productos también requieren enfoques dedicados.