Backtesting

learn menu
Par Joannès Vermorel, dernière révision en août 2013

Dans le contexte de la prévision des séries temporelles, la notion de backtesting fait référence au processus d’évaluation de l’exactitude d’une méthode de prévision à l’aide de 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 l’exactitude future attendue d’une méthode de prévision, ce qui est utile pour évaluer quelle modèle de prévision devrait ê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 seuils dans une période de temps couverte par les données historiques. Dans l’illustration ci-dessous, les seuils sont notés T1, T2, T3 et T4.

Le backtesting est un processus permettant d'évaluer l'exactitude de prévision d'un modèle statistique dépendant du temps à l'aide de données historiques.

Ensuite, pour chaque seuil,

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

Enfin, une erreur de prévision moyenne est établie sur tous les 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 (sur 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, l’augmentation du nombre de seuils améliore généralement la cohérence interne du processus contre les problèmes de surapprentissage.

À des fins d’optimisation des stocks, étant donné qu’il y a généralement des centaines de 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 courante : apprendre une fois, prévoir plusieurs fois

Le backtesting est généralement assez intensif en termes de ressources informatiques, car un nouveau modèle de prévision doit être entraîné pour chaque seuil. En conséquence, nous observons régulièrement des praticiens qui ne forment le modèle de prévision qu’une seule fois, en utilisant généralement l’ensemble complet des données historiques, puis procèdent aux itérations de backtesting. L’avantage perçu de cette approche est généralement une accélération massive du backtesting.

Cependant, cette astuce est erronée et entraîne des problèmes significatifs de surapprentissage. En effet, implicitement, lorsque des données futures sont mises à disposition du modèle de prévision, toute estimation de variable effectuée pendant la phase d’apprentissage fera en sorte que le modèle intègre des informations sur ce futur. Par conséquent, la précision mesurée à partir des backtests ne reflétera pas les capacités de généralisation du modèle, mais plutôt ses capacités de mémorisation, c’est-à-dire sa capacité à reproduire des situations identiques trouvées dans l’ensemble de données d’apprentissage.

Attention chez 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 fournir la prévision finale. Cependant, la vision simple du backtesting présentée dans cet article n’est pas adaptée à toutes les situations que l’on rencontre dans le secteur de la vente au détail et de 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 spécifiques.