Ejemplo de pronóstico probabilístico con Envision

Ejemplo de pronóstico probabilístico con Envision











Inicio » Recursos » Aquí

El script a continuación ilustra cómo pueden elaborarse los pronósticos probabilísticos, primero por tiempo de entrega, y luego por demanda. Los pronósticos se guardan en un archivo de datos de Ionic. El formato de Ionic es necesario porque los archivos planos normales —por ej., CSV— no respaldan la exportación directa del tipo de datos de distribución. Por último, las distribuciones se extienden en una grilla.

/// Pronósticos probabilísticos tanto para el tiempo de entrega como para la demanda
read "/sample/Lokad_Items.tsv"
read "/sample/Lokad_Orders.tsv" as Orders
read "/sample/Lokad_PurchaseOrders.tsv" as PO

path:="/sample/"

// Pronóstico de la distribución del tiempo de entrega con historial de pedidos de compra
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)

// Pronóstico de demanda utilizando tiempos de entrega variables e historial de ventas
// (en la práctica, es necesario incluir también el tiempo de entrega del pedido)
Demand = forecast.demand(
  category: Brand, Category, SubCategory
  horizon: Leadtime
  offset: 0
  present: (max(Orders.Date) by 1) + 1
  demandDate: Orders.Date
  demandValue: Orders.Quantity)

// Guardado de las distribuciones en un archivo de datos de Ionic
show table "Distributions" export:"\{path}Lokad_Distrib.ion" with Id, Demand

// Extensión de la distribución de demanda en una grilla
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"