IA : Les dessous d’un outil prévisionnel
Une grande entreprise publique nous a choisi pour mettre en place un Outil d’Aide à la Décision. Cet outil doit permettre la prévision du nombre de transactions effectuées dans des Espaces De Vente (EDV) afin de dimensionner les ressources en personnel.
Rassurez-vous nul besoin d’un doctorat en mathématiques, intelligence artificielle et probabilités pour comprendre les grandes lignes et principes d’un moteur de prévision.
L’objet de cet article est de démystifier le sujet, afin que tout un chacun puisse comprendre globalement le processus de prévision. Les détails des calculs vous seront épargnés.
Étude du besoin client
La prévision de l’affluence de la clientèle dans ses espaces de vente (EDV) est une problématique majeure pour notre client, qui souhaite fournir une bonne qualité de service (peu de file d’attente) tout en minimisant le coût de la commande de personnel.
Leur besoin est de prévoir, heure par heure, le nombre de transactions qui seront faites par EDV et ce, plusieurs mois à l’avance afin d’avoir le temps de dimensionner le nombre de vendeurs à mettre en place. Une distinction géographique entre les espaces de vente doit bien évidement être prise en compte par le moteur de prévision.
Dans la majorité des cas, les prévisions se font mois par mois, voire jour par jour.
Ici, prévoir toutes les transactions de vente pour toutes les heures d’ouverture des EDV pour les 6 mois à venir (voire un an à venir pour les projections à long terme) est un problème difficile ! Nous avons relevé le défi. Un POC (Proof Of Concept) nous a permis de valider le modèle.
Comment ça marche ?
Pour construire ce moteur de prévision, nous avons à notre disposition l’historique des ventes dans les EDV sur 3 ans. Nous considérons qu’au-delà de 3 ans, les données ne sont plus assez pertinentes, du fait de la popularité grandissante des achats sur internet.
De cet historique, nous allons extraire les données d’un espace de vente en particulier. Cette extraction nous donne une suite de nombres indiquant, pour chaque heure d’ouverture de l’EDV sur les 3 dernières années, le nombre de transactions vendues. Nous appellerons cette suite de vente : la série brute.
C’est sur cette série brute que nous allons travailler. Nous allons voir ensemble comment en extraire les informations permettant la prévision.
Analyse endogène
Cette étape consiste en l’explication de la série brute par elle-même ! Comme dirait l’autre : « nous avons les moyens de la faire parler ».
On parle d’analyse endogène par opposition à l’analyse exogène (consistant en l’explication de la série grâce à des données externes comme la pluie, l’euro de football par exemple).
- La recherche de saisonnalité
J’entends par « expliquer la série brute par elle-même », la recherche de saisonnalité.
Pour faire cela, on va décaler la série brute d’une journée et on va la superposer avec elle-même. Ensuite, on « regarde » si les journées se superposent bien ou mal. Si elles se superposent bien on dit que les courbes sont corrélées.
Dans notre cas, on constate une saisonnalité journalière, car la plupart du temps les journées se passent de la même manière : un pic d’activité le matin, un creux en milieu de matinée, un petit pic vers midi, un creux en début d’après-midi et enfin un pic le soir.
Cependant, nous avons repéré une meilleure corrélation avec un décalage hebdomadaire.
- Calcul de la série corrigée des valeurs saisonnières
L’élimination des pics d’activité liés à la saisonnalité hebdomadaire est faite via le calcul des moyennes mobiles.
Pour chaque valeur de la série brute, on va calculer la moyenne hebdomadaire autour de cette valeur.
On obtient ainsi une nouvelle série, la série corrigée des valeurs saisonnières (dite série CVS).
A ce stade nous possédons une série de vente (en rose) qui ne prend pas en compte les fluctuations hebdomadaires habituelles.
C’est sur cette série que nous allons continuer à travailler et non plus sur la série brute.
- Prise en compte des vacances, ponts et autres événements
Idéalement on pourrait imaginer que le moteur va pouvoir continuer à rechercher, toutes les corrélations possibles de la série avec elle-même, ou encore toutes les sous-séries corrélées entre elles.
Mais cela serait bien trop coûteux en temps de calcul.
Nous allons donc faire appel à l’expertise métier de notre client, pour indiquer au moteur de prévision les périodes sur lesquelles il doit se focaliser.
Ainsi, le client va pouvoir indiquer au moteur les périodes de vacances passées et futures, les ponts et autres évènements exceptionnels. Dans le cas de notre client, la grande braderie de Lille, le salon de l’agriculture à Paris, les matchs de football sont des évènements, qui ont une influence sur les fluctuations habituelles.
De même, quand les jours fériés sont un jeudi, l’activité du mercredi précédent est bien différente pour notre client, d’un mercredi habituel. De même pour le vendredi suivant le jour férié.
Le moteur va appliquer la même procédure de calcul de saisonnalité (elles sont rarement hebdomadaires) pour ces périodes spécifiques renseignées par le client.
On a ainsi calculé une deuxième série, la série corrigée des événements exceptionnels (dite série CVS 2). Cette nouvelle série est corrigée hebdomadairement et vis-à-vis des événements exceptionnels.
- Extrapolation via le lissage exponentiel
A ce stade, on a une série qu’on a expliqué au maximum avec les évènements récurrents, qui ponctuent la vie d’un espace de vente.
La série résultante est assez monotone, comme on pouvait s’y attendre la pente est négative… ça prouve qu’il y a de moins en moins de gens qui effectuent des transactions dans ces EDV, à cause de l’augmentation des achats sur internet.
Maintenant, on va extrapoler cette série en utilisant une fonction mathématique. Une fonction récurrente qui calcule les éléments futurs en fonction des éléments passés.
Cette fonction possède des paramètres que l’on peut choisir de manière à indiquer à la fonction si elle doit réagir rapidement ou non aux évènements passés.
Dans notre cas, nous avons paramétré la fonction pour qu’elle réponde peu aux évènements récents.
- La construction de la prévision
Grâce à tous ces éléments, on va pouvoir faire une prévision.
On va commencer par calculer les valeurs souhaitées via la fonction d’extrapolation. On va ensuite appliquer les coefficients associés aux évènements exceptionnels. Et en dernier lieu, on va appliquer les coefficients liés à la saisonnalité hebdomadaire.
Analyse exogène
Nous avons proposé à notre client de peaufiner notre moteur de prévision en vérifiant si les précipitations de pluie avaient un impact sur la fréquentation des espaces de vente.
Pour se faire, nous aurions recherché une corrélation entre la série CVS 2 et la série représentant les précipitations de pluie en mm/heure.
Cette solution n’a pas été retenue car la demande du client était une prévision à long terme or les prévisions de précipitation en mm par heure pour les 6 prochains mois à venir ne sont pas disponibles !
Notre moteur de prévision s’adapte au fil du temps au nouveau contexte de notre client.
Toutes les semaines, la première semaine des 3 ans d’historique est remplacée par la semaine qui vient de s’écouler de manière à avoir un moteur de prévision qui s’actualise de manière systématique.
Les journées anormales (exemple : journées de grèves, journées de suractivité, …), qui ne sont pas représentatives de l’activité normale de l’espace de vente, sont repérées grâce au moteur et sont remplacées par la prévision.
Les résultats obtenus par notre client ont été très bon ! L’écart moyen entre la prévision et le nombre de transactions réellement vendues dans les espaces de vente était proche de 10%.
C’est cette solution qu’on applique à la grande distribution pour calculer le nombre de caisses à ouvrir, ou dans le transport pour dimensionner le nombre de bus sur une ligne en fonction de la fréquentation. Ou encore déterminer le nombre de standardistes dans un centre d’appels afin de respecter les délais de réponse imposés.
Auteurs :
Jacques Surian