Un guide sur la manière d'utiliser les prévisions contrefactuelles pour estimer le rapport coût-efficacité des promotions passées en magasin dans le secteur de la vente au détail.
Au cours d'un projet réel de 3 mois, nous avons développé et industrialisé un modèle de prévision contrefactuelle (d'abord en utilisant Prophet, puis XGBoost) afin d'évaluer la performance des promotions passées dans les magasins d'une chaîne de magasins, pour aider les planificateurs de la demande dans leurs choix de campagnes promotionnelles.
Ce modèle est entraîné et prévoit ensuite des ventes hypothétiques (appelées base de référence) dans le passé s'il n'y avait pas eu de promotion. La différence entre les ventes promotionnelles réelles et cette base de référence donne les ventes incrémentales, que nous appelons "uplift".
Grâce à des caractéristiques temporelles élaborées à la main, nous avons atteint une précision de prévision de près de 90%.
Contexte économique
Lors de la planification de futures campagnes promotionnelles, les responsables de la planification de la demande doivent décider quels assortiments de produits feront l'objet d'une remise, avec un certain mécanisme promotionnel (par exemple “-15%”, “achetez 2, obtenez 1 gratuit” etc...).
Il s'agit de décisions difficiles à prendre :
Pour la plupart des entreprises de vente au détail, la choix de la campagne sont réalisés sur la base de leur connaissance de l'entreprise et le les résultats des promotions antérieures. Cependant, le “performance des promotions antérieures” est difficile à estimer. En effet, les campagnes promotionnelles augmentent les ventes (dans la plupart des cas), mais comment estimer l'efficacité ou le retour sur investissement (RSI) si nous ne savons pas quelles auraient été les ventes sans promotion ? Cette valeur hypothétique des ventes sans promotion peut être appelée un ligne de base. En d'autres termes, il s'agit d'être capable d'estimer les ventes supplémentaires (ou soulèvement) d'une campagne de promotion, correspondant à la ventes réelles, moins la ligne de base.
Pour répondre à cette question, nous avons créé un outil capable d'estimer l'augmentation des ventes promotionnelles des campagnes passées, avec une précision de près de 90%.
Cette tâche est très difficile car l'objectif est d'établir des prévisions de hypothétique des ventes dans une autre situation (ici, si la campagne promotionnelle n'avait pas eu lieu pour un produit donné). On peut parler de “prévisions contrefactuelles”. Cet article est principalement basé sur notre expérience dans le cadre d'un projet que nous avons réalisé pour une chaîne de magasins française.
Son objectif est de décrire l'approche que nous avons utilisée, de donner des conseils et des mises en garde lors de la mise en œuvre d'une solution de prévision contrefactuelle (Préparation data, modélisation), expliquez les l'évaluation et, enfin, de discuter de l'efficacité de la limites et prochaines étapes à cette approche.
Qu'est-ce que la prévision contrefactuelle et pourquoi est-elle difficile à prévoir ?
La prévision contrefactuelle est le processus qui consiste à prédire quelque chose dans la forme : ce que X s'il n'y avait pas eu de Y. Dans notre cas d'utilisation, X seraient les ventes et les Y serait une campagne de promotion.
Il existe en effet plusieurs champs où ce processus peut être appliqué : rupture de stock (estimer le manque à gagner dû aux ruptures de stock), toute les événements spéciaux qui ne durent pas trop longtemps (Covid : ne fonctionne pas !) afin d'avoir suffisamment de data pour estimer ce contrefactuel.
Le problème de la promotion peut être abordé sous trois angles (classés par ordre de difficulté croissante) :
Dans cet article, nous nous concentrerons sur la première étape car c'était l'objectif de notre projet. Toutefois, nous donnerons quelques indications sur la manière d'aborder les deux autres dans les sections suivantes.
Deux raisons principales font de la prévision contrefactuelle un processus difficile :
Approche proposée
L'approche que nous avons utilisée pour construire notre outil est la suivante :

Remarque importante: L'objectif est d'utiliser les prévisions pendant les périodes de promotion, qui se situent dans le passé. C'est parce que cette tâche est une a posteriori l'analyse que, contrairement aux prévisions classiques, il n'est pas possible d'obtenir des résultats satisfaisants. Il est possible de s'entraîner à des dates qui sont après la période d'inférence, correspondant à la campagne de promotion. Il n'y a pas de notion de fuite data ici puisque nous essayons d'expliquer un phénomène qui s'est produit dans le passé. Ainsi, le processus de formation et d'inférence se présente comme suit :

Mise en œuvre
Préparation du data
Pour s'attaquer au problème de la promotion, il faut utiliser le format data approprié. En général, nous avons accès à deux types de data :
1. Promotionnel data (informations descriptives relatives aux promotions)
2. Vente data.

Le data prétraité est essentiellement le data des ventes, enrichi d'informations sur les promotions (jointure gauche, voir la figure ci-dessus). Chaque ligne avec un “type de promotion” non nul correspond à un jour où le produit est en promotion.
Avant de procéder à la première mise en œuvre, il est important de évaluer la qualité du data. Voici quelques lignes directrices concernant les contrôles à effectuer :
1. Recherchez les principaux questions dans le série chronologique:
2. Définissez un granularité pour le cas d'utilisation :
Ainsi, si les séries temporelles sont suffisamment claires, un bon point de départ consiste à adopter l'approche la plus granulaire (par exemple, produit X jour, surtout si vous travaillez avec Prophet, comme nous l'avons fait dans le cadre de ce projet).
3. Disposer d'un un champ de promotion clairLes promotions sont-elles planifiées au niveau national ? Les promotions sont-elles planifiées au niveau national ? (si ce n'est pas le cas, on ne peut pas, par exemple, agréger les ventes d'un produit dans tous les magasins d'un pays).
Une fois le data vérifié et préparé, il est temps de procéder au modelage.
Modélisation
Premières itérations et principaux enseignements
Nous a commencé nos premières itérations avec Prophète parce qu'il nous a permis d'avoir une ligne de base très rapidement, ajoutez facilement régresseurs, et interpréter les résultats naturellement (grâce à sa décomposition additive).
Voici un résumé des principales améliorations apportées à l'itération au cours du projet :

En principe, le principales améliorations provenaient de la régresseurs avons-nous ajouté :
Enfin, l'adaptation de la méthode de mesure de la précision des prévisions (voir la section Évaluation ci-dessous) a également permis de disposer d'un moyen plus précis d'évaluer les performances.
Pourquoi sommes-nous passés à XGBoost ?
Malgré les bonnes performances et la facilité d'interprétation du Prophète, nous avons réalisé que XGBoost était le plus approprié, pour de multiples raisons :
Évaluation et limites
L'évaluation
Comme indiqué plus haut, il n'y a pas de vérité de base dans les prévisions contrefactuelles, ce qui rend l'évaluation des performances plus complexe que pour les prévisions classiques.
Cependant, nous avons trouvé un moyen de mesurer notre performance, ou plutôt de l'estimer aussi précisément que possible. Voici comment :

Dans les prévisions classiques, nous mesurons généralement la performance à l'aide d'un indicateur de performance. validation croisée (ici, fenêtre en expansion) sur une certaine période de validation (par exemple, la dernière année de disponibilité de data). Pour cette période de validation, la fenêtre réelle dans laquelle nous mesurons la performance se déplace dans chaque pli (“fenêtre d'évaluation”), et le data antérieur est utilisé pour les caractéristiques de décalage (“Data utilisé pour faire des prédictions”). Dans un cas d'utilisation de promotion, nous ajoutons quelques data après la fenêtre d'évaluation pour reproduire la flux de travail pour la formation et l'inférence décrite dans la section “Approche proposée”.
Nous pouvons donc appliquer cette stratégie de validation croisée à l'ensemble de l'échantillon. sous-ensemble de data où il n'y a pas de promotion, avec la précision des prévisions (FA) comme mesure.

Grâce à cette approche, nous avons pu atteindre une précision des prévisions de près de 90% avec une granularité au niveau de la famille X jour, ce qui est une performance décente, comparable à ce que nous avons réalisé sur d'autres projets de prévisions classiques.
Même si cette performance peut être satisfaisante, notre approche présente certaines limites.
Limites
Aller plus loin et prochaines étapes
Améliorer la modélisation
Plusieurs effets peuvent être additionnés pour mesurer l'impact net d'une promotion :
Les deux premiers effets n'ont pas été inclus dans notre analyse en raison de la granularité choisie (niveau de la famille) et les deux derniers étaient difficiles à quantifier de manière approfondie dans le temps dont nous disposions pour ce projet.
En résumé, la ventes additionnelles nettes d'une promotion pourrait être représentée par cette cascade :

Aller au-delà de l'analyse a posteriori
Comme indiqué précédemment, une fois que l'analyse (a posteriori) des promotions passées a été effectuée (étape A), il est alors possible de aller plus loin par la prévision de la rentabilité des futur promotions (étape B) et enfin proposer un optimisation de la plan de promotion (étape C).
Bien entendu, il est plus difficile de prévoir (d'estimer) la rentabilité future d'une promotion que d'estimer la rentabilité d'une promotion précédente, car nous avons pas de data disponible dans le cadre de la promotion. L'idée est de réutilisation les modèle développé dans la phase A en utilisant data qui n'est pas data historique mais Prévision de data à partir d'un modèle de prévision classique, comme suit :
Tout d'abord, entraînez le modèle de prévision classique sur les data disponibles (jusqu'à aujourd'hui) :

Ensuite, faites les prévisions avec ce modèle (la période à prévoir doit couvrir la gamme des caractéristiques temporelles qui seront utilisées par le “modèle de base”) :

Enfin, utilisez le modèle de référence formé à l'aide de caractéristiques temporelles basées sur les prévisions du premier modèle et estimez la ligne de base, qui donnera l'augmentation des ventes :

Bien entendu, ce processus comporte plus d'incertitude par construction, étant donné que les erreurs des deux modèles empilés seront corrélées.
Enfin, pour pouvoir optimiser le plan de promotion, la stratégie consiste à utiliser ce qui a été fait à l'étape précédente pour choisir les la meilleure combinaison de paramètres de promotion afin de optimiser a mesure commerciale comme le ROI.
Conclusion
L'utilisation prévisions contrefactuelles pour résoudre les problèmes des entreprises est ce n'est pas une tâche courante que l'on peut trouver dans la littérature.
Cependant, nous avons constaté qu'il pouvait s'agir d'une outil puissant de s'attaquer au problème de la évaluer en profondeur les performance de promotions antérieures, par la prévision de ventes hypothétiques (ligne de base) s'il n'y avait pas eu de promotion. Nous avons également exploré les recommandations en matière d'ingénierie des caractéristiques pour un modèle autorégressif (Prophet) ou de gradient boosting (XGBoost). Enfin, nous avons détaillé quelques lignes directrices permettant d'affiner l'analyse et d'aller plus loin qu'une simple analyse a posteriori.
Merci aux collègues scientifiques de data qui ont travaillé avec moi sur ce projet : Kasra et Ombeline. Merci également aux Artefactors qui a relu cet article.

BLOG







