Exemple de prévisions probabilistes avec Envision

Exemple de prévisions probabilistes avec Envision










Accueil » Ressources » Ici

Le script ci-dessous illustre comment des prévisions probabilistes peuvent être générées, tout d'abord pour les délais d'approvisionnement puis pour la demande. Les prévisions sont ensuite sauvegardées dans un fichier au format Ionic. Ce dernier est nécessaire car les formats classiques, CSV par exemple, ne permettent pas l'exportation directe du type de données « distribution ». Enfin, les distributions sont représentées sous forme de grille.
/// Prévision probabiliste des délais d'approvisionnement et la demande
read "/sample/Lokad_Items.tsv"
read "/sample/Lokad_Orders.tsv" as Orders
read "/sample/Lokad_PurchaseOrders.tsv" as PO

path:="/sample/"

// Prévision des délais d'approvisionnement à partir de l'historique des commandes d'achat
Leadtime = forecast.leadtime(
  category: Brand, Category, SubCategory
  supplier: Supplier
  offset: 0
  present: (max(Orders.Date) by 1) + 1
  leadtimeDate: PO.Date
  leadtimeValue: PO.DeliveryDate - PO.Date + 1
  leadtimeSupplier: PO.Supplier)

// Prévision de la demande à l'aide des différents délais d'approvisionnement et de l'historique des ventes
// (En pratique, le délai de passage des commandes doit aussi être pris en compte)
Demand = forecast.demand(
  category: Brand, Category, SubCategory
  horizon: Leadtime
  offset: 0
  present: (max(Orders.Date) by 1) + 1
  demandDate: Orders.Date
  demandValue: Orders.Quantity)

// Sauvegarde des distributions dans un fichier de données Ionic
show table "Distributions" export:"\{path}Lokad_Distrib.ion" with Id, Demand

//Extension de la distribution de la demande dans une grille
table Grid = extend.distrib(Demand)
Grid.Probability = int(Demand, Grid.Min, Grid.Max)

show table "Grid" with
  Id
  Grid.Min as "Min"
  Grid.Max as "Max"
  Grid.Probability as "Probability"