← Retour aux ressources

Comment calculer un forecast ?

ModĂšles

Quelques définitions utiles ici

Calculer un forecast, c'est transformer en valeur notre analyse de l'avenir.
Pour que cette valeur soit robuste et ait du sens, il faut une méthode de calcul.

Méthodologie de création

La construction d'un modÚle de prévision doit répondre aux conditions suivantes. La méthode doit :

  • Produire une prĂ©vision de la demande en unitĂ© de vente sur la pĂ©riode de rĂ©servation considĂ©rĂ©e, en fonction de la stratĂ©gie tarifaire, du segment et des canaux.
  • RĂ©pondre Ă  n’importe quelle structure de prix
  • Permettre de quantifier la prĂ©cision de la prĂ©vision.
  • Uniquement utiliser des donnĂ©es observables.
  • Montrer une stabilitĂ© des paramĂštres dans le temps et une robustesse des prĂ©visions
  • Minimiser l’erreur de prĂ©vision.
  • Estimer les paramĂštres conjointement pour ĂȘtre cohĂ©rente avec elle-mĂȘme.

Création d'un forecast simple

La méthode suivante produit un modÚle simple de forecast d'atterissage, répondant aux conditions ci-dessus.

Le modĂšle ci-dessous va :

  • Produire une prĂ©vision en occupation pour une pĂ©riode de rĂ©servation donnĂ©e (par exemple, en chambre, sur une date donnĂ©e), en considĂ©rant les prix, la structure tarifaire, la segmentation client, la segmentation de l'inventaire et les canaux comme exogĂšne.
  • Des mesures d'incertitude pourront ĂȘtre calculĂ© sur les valeurs produites
  • Les donnĂ©es utilisĂ©es sont des donnĂ©es passĂ©es, une montĂ©e en charge de rĂ©fĂ©rence, et des donnĂ©es actuelles, le portefeuille de la pĂ©riode de rĂ©servation considĂ©rĂ©e.
  • Il n'y a pas de paramĂštres pour ce modĂšle.

Soit les variables suivantes, pour exemple.

import numpy as np
J0=0
Jx = 30
leadtime = np.linspace(J0, Jx, 30)[::-1] # création du booking horizon

Soit les montées en charges ci-dessous.

Une MEC de référence et une MEC en devenir - © Montée en charge avec référence / RevOmatic

La montée en charge de référence MEC_ref termine autour de 152 unités de ventes.
Mon portefeuille MEC_N montre 26 unités vendues. à combien vais-je terminer dans 10 jours ?

Forecast additif

Une premiÚre technique consiste à se dire que je vais garder, en valeur absolue, mon écart avec la MEC de référence.

JX = -10 # on est Ă  J-10 !

delta = mec_N[JX] - mec_ref[JX] # avance retard.

forecast = np.zeros(leadtime.size)
forecast[:JX+1] = np.nan

forecast[JX+1:] = mec_ref[JX+1:] + delta # on propage l'avance retard en valeur absolue

Le retard est de 12 unités, ainsi le forecast additif va donner un atterrissage pour N à 140 unités.

Le forecast additif propage l'écart en valeur absolue - © Montée en charge et forecast additif / RevOmatic

forecast multiplicatif

Une deuxiÚme technique consiste à se dire que je vais garder l'écart relatif avec la MEC de référence.

JX = -10 # on est Ă  J-10 !

delta = (mec_N[JX] - mec_ref[JX])/ mec_ref[JX] # avance retard.

forecast = np.zeros(leadtime.size)
forecast[:JX+1] = np.nan

forecast[JX+1:] = mec_ref[JX+1:]*(1+ delta) # on propage l'avance retard en écart relatif

Le retard est de 30%, ainsi le forecast multiplicatif va donner un atterrissage pour N à 103 unités.

Le forecast multiplicatif propage l'écart relatif - © Montée en charge et forecast multiplicatif / RevOmatic

Convergence

Les deux techniques ne donnent pas les mĂȘmes rĂ©sultats, et c'est normal.
Le graphique ci-dessous représente l'évolution de la prévision en fonction de l'anticipation d'analyse (de J-30 à J-1). Les deux forecasts sont mis en parallÚle de la montée en charge et du réalisé (valeur que nous cherchons à prévoir)

Le forecast multiplicatif propage l'écart relatif - © Montée en charge et forecast multiplicatif / RevOmatic

Les constats suivants peuvent ĂȘtre Ă©tablis :

  • Les prĂ©visions convergent toutes les deux vers la valeur du rĂ©alisĂ©, ce qui est logique puisque plus l'anticipation diminue, plus l’incertitude sur le “reste Ă  prendre” diminue Ă©galement.
  • Le forecast multiplicatif a anticipĂ© plus rapidement la tendance des ventes que la mĂ©thode additive
  • La forecast multiplicatif a une plus grande variance que le forecast additif.
  • Le forecast additif surestime le rĂ©alisĂ© (plus grand biais). On peut montrer que lorsque la montĂ©e en charge est en avance par rapport Ă  la montĂ©e en charge de rĂ©fĂ©rence, alors le forecast additif sous estime le rĂ©alisĂ©.

plus d'informations sur le dilemme biais-variance ici

Les questions Ă  se poser :

Cet exemple-jouet nous permet de soulever les questions suivantes :

Qu'est-ce je choisis de prévoir ?

  • Qu'est-ce que je dois choisir de prĂ©voir : la valeur finale ou les valeurs intermĂ©diaires ?
  • Est-ce que je choisis de prĂ©voir en valeur absolue (valeur du portefeuille) ou en diffĂ©rentiel (valeur du pick up Ă  chaque anticipation)

Quelle est ma référence ?

  • Que doit contenir ma montĂ©e en charge de rĂ©fĂ©rence (ou plus simplement, Ă  quoi est-ce que je compare mon portefeuille ?)
    • La mĂȘme date que l’an dernier ? Le mĂȘme jour de semaine que l'an dernier ?
    • Est-ce que je fais plutĂŽt un modĂšle synthĂ©tique ? Si oui, qu'est-ce que je choisis d'agrĂ©ger ? Qu'est-ce que je choisis d'exclure ?

Quel est mon modĂšle ?

  • Est-ce que j'utilise des modĂšles simples comme ceux prĂ©sentĂ©s ici ou je souhaite aller vers des modĂšles plus complexes ? (SĂ©ries temporelles, RĂ©seaux de neurones etc)

Qu'est-ce qui n'est pas pris en compte dans mon modĂšle ?

  • Comment est-ce que je gĂšre la saturation ?
  • Comment rĂ©agit mon forecast si j'agis sur mes contrĂŽles de vente ? (prix, disponibilitĂ©s des plans tarifaires, du stock, ...)

Pour aller plus loin

Les deux pistes suivantes ouvrent sur le vaste sujet de la prévision

Mes préconisations sont les suivantes :

  • Rester simple, car la simplicitĂ© permet une meilleure comprĂ©hension.
  • Se rappeler que le rĂŽle mĂȘme du revenue manager est de faire mentir le forecast. Le rĂŽle du RM est d'affirmer ou d'infirmer une tendance, le forecast est donc plus une boussole car il sera inexacte Ă  partir du moment oĂč le RM aura pris une dĂ©cision.

Vous souhaitez de l'accompagnement pour aller plus loin ? échangeons :)