Backtesting

learn menu
Par Joannès Vermorel, révisé en août 2013

Dans le cadre de la prévision des séries temporelles, la notion de backtesting désigne le processus d’évaluation de la précision d’une méthode de prévision à l’aide des données historiques existantes. Le processus est généralement itératif et répété sur plusieurs dates présentes dans les données historiques. Le backtesting est utilisé pour estimer la précision future attendue d’une méthode de prévision, ce qui est utile pour déterminer quel modèle de prévision doit être considéré comme le plus précis.

Comment fonctionne le backtesting

Le processus de backtesting commence par la sélection d’une liste de dates seuil dans une période couverte par les données historiques. Dans l’illustration ci-dessous, les seuils sont notés T1, T2, T3 et T4.

Backtesting is a process to access the forecasting accuracy of a time-dependent statistical model using historical data.

Ensuite, pour chaque seuil,

  • les données historiques sont tronquées au seuil,
  • le modèle de prévision est entraîné et appliqué sur les données tronquées,
  • les prévisions sont comparées aux données originales non tronquées.

Enfin, une erreur moyenne de prévision est établie sur l’ensemble des seuils.

Cette erreur moyenne peut être interprétée comme une estimation de l’erreur qui sera associée au modèle lors de la production de prévisions réelles (concernant l’avenir). Le choix du bon ensemble de seuils implique généralement une certaine expertise liée au problème en question. En règle générale, augmenter le nombre de seuils améliore typiquement la résilience du processus contre les problèmes de surapprentissage.

Pour des objectifs d’optimisation de stocks, comme il y a généralement des centaines SKUs impliqués, seulement quelques seuils sont nécessaires pour décider, avec une très grande confiance dans la décision, si une méthode de prévision est meilleure qu’une autre.

Une erreur fréquente : apprendre une fois, prévoir plusieurs fois

Le backtesting est généralement assez gourmand en ressources informatiques, car un nouveau modèle de prévision doit être entraîné pour chaque seuil. Par conséquent, nous observons régulièrement des praticiens qui n’entraînent le modèle de prévision qu’une seule fois, tirant généralement parti de l’ensemble des données historiques, puis procèdent aux itérations de backtesting. Le bénéfice perçu de cette approche est typiquement une accélération massive du backtesting.

Cependant, une telle astuce est malavisée et conduit à d’importants problèmes de surapprentissage. En effet, implicitement, comme des données futures sont mises à la disposition du modèle de prévision, toute estimation variable réalisée durant la phase d’apprentissage amènera le modèle à intégrer une partie d’information concernant ce futur. En conséquence, la précision mesurée lors des backtests ne reflétera pas les capacités de généralisation du modèle, mais plutôt ses capacités de mémoire, c’est-à-dire, la capacité du modèle à reproduire des situations identiques rencontrées dans l’ensemble d’entraînement

Piège de Lokad

Le backtesting est au cœur de la technologie de prévision de Lokad. Nous l’utilisons pour chaque série temporelle afin de sélectionner le modèle qui sera utilisé pour délivrer la prévision finale. Cependant, la vision simple du backtesting présentée dans cet article n’est pas adaptée à toutes les situations rencontrées dans le commerce de détail et la fabrication. Par exemple, pour les produits récemment lancés, la série temporelle peut être trop courte pour effectuer un backtesting significatif. Les promotions et les lancements de produits nécessitent également des approches dédiées.