Backtesting
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 forecast 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 forecast, lo cual es útil para evaluar qué modelo de forecast 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.
Luego, para cada umbral,
- los datos históricos se truncan en el umbral,
- el modelo de forecast se entrena y se aplica a los datos truncados,
- los forecast se comparan con los datos originales no truncados.
Finalmente, se establece un error promedio de forecast sobre todos los umbrales.
Este error promedio puede interpretarse como una estimación del error que se asociará con el modelo al producir true forecasts (about the future). 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.
Un error común: aprender una vez, forecast muchas
El backtesting es típicamente bastante intensivo en términos de recursos computacionales, ya que se debe entrenar un nuevo modelo de forecast para cada umbral. Como resultado, observamos de forma rutinaria a profesionales que entrenan el modelo de forecast 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 forecast 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 forecast de Lokad. Lo usamos para cada serie de tiempo para seleccionar qué modelo se utilizará para entregar el forecast 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.