Previsione probabilistica con Envision: un esempio

Previsione probabilistica con Envision: un esempio












Home » Risorse » Qui

Lo script qui sotto illustra come produrre una previsione probabilistica, prima del lead time, poi della domanda. Le previsioni sono esportate in formato di file Ionic, poiché i classici file flat (come per esempio i file CSV) non supportano l'esportazione diretta dei dati di tipo distribuzione. Le distribuzioni sono infine estese in una tabella.

/// Previsione probabilistica del lead time e della domanda
read "/sample/Lokad_Items.tsv"
read "/sample/Lokad_Orders.tsv" as Orders
read "/sample/Lokad_PurchaseOrders.tsv" as PO

path:="/sample/"

// Prevedere la distribuzione del lead time con lo storico degli ordini di acquisto
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)

// Prevedere la domanda usando diversi lead time e storico delle vendite
// (in pratica, va tenuto conto anche del lead time degli ordini)
Demand = forecast.demand(
  category: Brand, Category, SubCategory
  horizon: Leadtime
  offset: 0
  present: (max(Orders.Date) by 1) + 1
  demandDate: Orders.Date
  demandValue: Orders.Quantity)

// Salvare le distribuzioni in un file di dati Ionic
show table "Distributions" export:"\{path}Lokad_Distrib.ion" with Id, Demand

// Estendere la distribuzione della domanda in una tabella
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"