交付周期预测


首页 » 资源 » 此处

要想准确评估满足未来需求所需的库存量,准确预测未来的交付周期至关重要。Lokad 预测引擎提供了一种专门为交付周期量身定制的交付周期预测模式。的确,我们需要像预测需求一样来预测交付周期。交付周期同样表现出多种统计模式,例如季节性或周内效应。由 Lokad 预测引擎得出的交付周期预测值为概率值,以天为单位表示了每个交付周期持续时长的预期概率。在本页面,我们将详细介绍通过 Lokad 计算交付周期预测值所采用的语法。

一般语法

Lokad 预测引擎有一个特殊函数,在 Envision 术语中称之为调用函数。语法如下:

Leadtime = forecast.leadtime(
category: C1, C2, C3, C4
hierarchy: H1, H2, H3, H4
supplier: Supplier
offset: 0
present: (max(Orders.Date) by 1) + 1
leadtimeDate: PO.Date // "PO" stands for PurchaseOrders
leadtimeValue: PO.ReceivedDate - PO.Date + 1
leadtimeSupplier: PO.Supplier)

与正则函数不同,调用函数中没有位置参数,只有命名参数。这些命名参数更适合用于复杂函数,因为此类参数可以提高源代码的可读性,唯一的不足之处就是会让源代码稍显冗长。这些参数与正则函数参数的行为一样,因此可以用于 Envision 公式。

调用函数返回的是向量 Leadtime,这是一种分布(另请参阅分布代数)型向量。分布是一种用于表示函数 $p: \mathbb{Z} \to \mathbb{R}$ 的高级数据类型。更准确地说,预测引擎返回随机变量,也即分布是正态的,并且有一个质量等于 1。在示例中,$p(k)$ 表示与 $k$ 天相关的交付周期概率。每个项目(从 Envision 的意义上说)关联其自身的分布。

完整的 forecast.leadtime 语法包含多个参数,不过其中只有两个参数为强制性参数:

  • present:日期标量值
  • leadtimeDate:与项目相关的日期向量

present 为日期值,用于表示所要预测的第一天,其依据的假设是数据截止于前一天。实际上,有些企业可能在星期日关闭,如果数据集里的最新日期是星期六,那么预测是从星期天还是星期一开始就会显得模糊不清。在上面的示例性语法中,我们使用了 max(Orders.Date) + 1,即假设每天都对订单进行观测,并且输入数据的最后更新日期为前一天。

leadtimeDateleadtimeValue 应属于同一个表,该表具有项目相关性,在 Envision 中表示为 (Id, *)。日期表示交付周期观测值的起始日期(此日期包括在内)。相关值应按天数表示。不支持小数形式的天数。此表包含预测引擎预测的实际交付周期历史记录。

在忽略 leadtimeValue 的情况下,leadtimeDate 日期之间的连续时间将用作交付周期值。这种行为用于预测有序化的交付周期;通常与预测供应交付周期分开进行。

从理论上说,历史记录的长度要尽可能长;但实际上,交付周期的值超过 5 年时其价值就不大了。预测引擎既适合处理较短的交付周期历史记录,也适合处理较长的交付周期历史记录;如果交付周期历史记录较长,数据点的时间越久,其统计相关性越低。

除这些强制性参数以外,通过向预测引擎提供更多数据可以大大提高预测准确度。下面的章节对此进行了详细说明。

类别和层次

从预测引擎的角度来说,类别和层次的作用非常相似:二者均有助于预测引擎处理稀疏的历史数据。

请参阅 利用类别和层次进行预测

供应商

选择供应商对于估算交付周期往往发挥着重要作用。供应商数据可以采取两种互补的方式来传达给预测引擎。

第一种方式:交付周期历史记录观测值可以按供应商分类。这就是 {leadtimeSupplier}} 参数的意义所在。在使用此参数的情况下,预测引擎利用该信息来评估与给定供应商关联的交付周期是否具有相关性。由于供应商信息可能来自于不同时期的不同供应商,因此供应商信息能够提供简单的层次或类别项目所不具备的信息粒度。

第二种方式:用户可以告知预测引擎下次出货时要考虑哪个供应商。这就是 supplier 参数的意义所在。在使用此参数的情况下,预测引擎可以预见到由于供应商发生变化,某一个项目可能会出现交付周期大起大落的情况。如上文所示,如果供应商对交付周期历史记录本身进行了适当分类,那么预测引擎自然可以只利用此类信息。

交付周期偏移

默认情况下,预测从 present 日期开始。但有时用户可能希望从更晚点的日期开始。如果交付周期具有季节性,交付周期的起始日期对于预测值的分布具有重大影响。这种情况可以通过 offset 属性来处理。该可选属性预计到在项目表中有一个数值向量。此向量的值表示交付周期预测值所要考虑的偏移(按天数表示)。举个例子,如果某个项目的偏移值为 10,那么预测交付周期的第一天将为 present + 10。当 offset 被忽略时,所有偏移即视为 0。