
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 :