分位数预测的奇怪之处


首页 » 资源 » 此处

2016 年 5 月更新:概率预测中阐述的 Lokad 分位数预测技术存在的大部分奇怪之处涉及到我们的上一代预测技术。具体地说,分位数交叉和分位数不稳定性通过设计已经消除。有关概率预测,另请参阅构建采购优先级表

分位数预测对于库存优化非常重要,不过,Lokad 生成的较小百分比形式的分位数值可能看上去较为奇怪。在本页,我们将介绍一下产生这些奇怪数字的基本机制以及应当如何处理这些奇怪的数字。


从模式库中选择模式

我们的预测引擎设计为预测模式库,这些模式彼此互补,能够提供最准确的预测结果。在预测引擎页面中我们对总体架构进行了描述。选取最准确的模式 (1) 的竞争过程被称为选择。选择依赖于广泛的后验分析过程,在此过程中,会利用每种模式分别对许多截断的数据集进行分析。

这种架构很强大,原因是:
  • 比使用单一模式时获得的预测结果准确得多
  • 对需求性质无需做太多事先的假设
  • 过度拟合以及其他类型的系统性偏误具有弹性。

但这个过程也可能产生反直观的行为。

分位数的不稳定性

在选择预测模式时,最准确的模式通常会表现出非常相似的行为。所以,在第一天为次优的模式可能在第 2 天就成了最优模式。不过,从实践的角度说,预测值中发生的变化通常不会被注意到。

但是,最优模式与次优模式偶尔也会表现截然不同。例如,模式 A 可能在捕捉季节性时表现很好,但在捕捉趋势时表现欠佳,而模式 B 对于捕捉趋势表现很好,但对于捕捉季节性表现欠佳。在这些情况下,A、B 两种最佳模式总体上具有相差无几的准确度,但在指定的时间点处会呈现出一些截然不同的预测。

尽管此类情形比较少见,但几乎任何较大的数据集中都可以观察到这种现象。实际上,任何具有 100 个项目以上的数据集,其中至少有一个项目可能触发此类情况;如果历史需求不稳定或稀少,那么概率还会增大。

我们所描述的这些情况其实发生在 Lokad 的后台。绝大部分时间您甚至都不会注意到这一点。但是,如果在 Lokad 中使用相似但又略微不同的数据集进行两次运行,您可能就会发现这种现象。举个例子,假设您在星期一基于数据集 A 生成了预测,数据集 A 包含星期天之前的所有销售数据。之后出于某种原因,比如可能是因为您忘记了包含一些新项目,于是在星期三决定再次生成预测,这次使用的是数据集 B,该数据集包含截至星期二的所有数据。在您看来,这些数据集极其相似,因为只存在 2 天的区别,并且您认为预测结果将完全相同。不过,您有可能会发现一些不同之处,有时甚至是非常明显的不同。这个示例对于诠释分位数不稳定性很具说明性:在选择过程中,添加了 2 天的数据后,从一种数学模式到另一种数学模式之间的平衡有所倾斜,但在总体性能方便结果非常接近。您将得到略高的总体准确度,但预测结果可能不会以相同方式呈现,从而会使您觉得很奇怪。

分位数交叉

随着服务水平的提高,根据预期,再订货点也将随之提高;确实,在使用 Lokad 进行试验时,这种模式大部分情况下是这样的。但在如上所述的相同情况下,当在 Lokad 中触发两次运行时,但这次我们使用相似的数据集和略有不同的服务水平(例如从 97% 变为 98%),如果对两次运行的结果进行比较可以发现,对于少数项目,提高服务水平将导致再订货点降低。当然,从用户的角度说,这种模式让人感觉是错误的。

此处涉及的问题在统计学中已存在几十年之久,它就是分位数交叉

之所以在 Lokad 中发生分位数交叉,原因在于我们的选择过程。我们的每种分位数预测模式都是一致的:增大 T 因素(服务水平)确实会增大分位数值(再订货点)。不过,如果选择过程选择了另外一种模式,且这种模式的总体准确度略高于先前的模式,但是这种模式的表现又截然不同的话,分位数值序列中就会出现碰撞,这就是我们观察到的分位数交叉。请谨记,在这些情况下预测的总体准确度并不会降低,系统会针对您的特定服务水平选择最优模式。

在实践中,这种情况非常罕见,但是又可以在任何较大的数据集中观察到。必须要指出一点:服务水平越高,分位数交叉的频率越高,因为预测值较不稳定。实际上,估算前 1% 的极限需求(服务水平为 99%)比估算前 10% 的极限需求(服务水平为 90%)的难度更大。这里涉及到一种很强的杠杆效应,因此针对 98% 的服务水平生成预测所使用的数学模式的范围与针对 96% 或 97% 的服务水平所使用的数学模式范围一般是不同的。

分位数折叠

分位数折叠问题表示分位数交叉的一种更极端的变化形式。如果服务水平朝极值持续增大,在某个点时,大部分分位数预测结果(而不只是部分分位数预测结果)将开始缩小。所以,通过增加服务水平,最终所提出的存货数量将以近乎均匀地方式呈现出比之前的结果要低的趋势。我们称这种高度反直观的行为为“分位数折叠”。

要观察分位数折叠,必须使用不合理的服务水平。所以,如果您恰好面临本节所述的这种情形,强烈建议您再浏览一下选择您的服务水平页面,因为遵循我们的指导原则有助于直接解决这个问题。

分位数折叠是由我们的预测技术中已知的缺点导致的。简单地说,使用极限服务水平(例如 99%),或者使用稍低一点的服务水平 97%(如果数据较少),将降低我们的预测引擎区分优良的预测模式与更优良的预测模式的能力。在如此之高的服务水平值下,所有预测模式都会整体高估需求,此举为有意为之。因此,模式选择倾向于朝预测模式中的“平均“行为回归,从而导致了折叠的可能性,即服务水平越高,预测的数量越低。

尽管从理论的角度来说解决分位数折叠问题无疑是很有意思的一件事,但这种情况只有在服务水平大大超出商业领域中可持续的存货水平时才会发生。Lokad 肩负提供更优预测的核心使命,我们的工作重点放在对企业具有实际意义的方案上,因此不会放多少精力在解决分位数折叠的问题上。

处理这些看似奇怪的数字

无论是分位数不稳定性还是分位数交叉,都反映了基于统计学的预测技术所固有的某种不足。不过,我们务必认识到,快速修复此类不足实际上会使结果进一步恶化。

通过覆盖预测值以防止出现超过 X% 的变化,可以强制保持一致。此外也可以覆盖预测值以使其随服务水平的提高而严格增大。

但无论是其中的哪一种情况,我们最终会取用相对来说更出色的预测值,但这样做是没有任何统计依据的:在进行单一预测时,或在考量几项预测时,生成的值也许看似更一致,但从整体上说,它并没有提供更准确的结果,所以对依赖于这些值的企业并不会更有利。

基于此,我们建议您严格遵循系统最初生成的分位数值。不要尝试通过添加来自于其他报告中的貌似更合理的值来手动修正报告,因为一般来说你无从知晓其中哪个值是"最佳"值。您可以信赖一个报告中的相关数据。

的确,通过跟踪这些奇怪的数值我们可以获得明显的益处,但明显并不等同于重要。从 Lokad 的角度来说,各类改进都可以纳入我们的技术,这样将产生更为明显的进步。从商户的角度来说,投入更多精力到确定准确的交付周期和更充分的目标服务水平上面,所产生的效益将远远超过解决分位数不稳定性和分位数交叉问题来提高几个百分点的准确度所带来的效益。

Lokad 的预测技术还在不断进步。我们致力于提供市面上最卓越的预测结果,并且我们将围绕上述不常见的奇怪行为继续努力。

(1) 我们在这里对于实际选择过程的说明有点过于简单。实际预测引擎运用了各种卓越模式的复杂组合。但是为了清楚起见,将选择过程视为选择一种“最佳”模式的过程会更直接。