需求预测和库存计划:一个实践者的角度
上QQ阅读APP看书,第一时间看更新

指数平滑法的初始化

对于指数平滑法,有一个初始化问题,也就是说,为了让它运作起来,我们得先做一些事,包括初始预测的选择和模型的“预热”。

先说初始预测。指数平滑法下,预测是基于上期实际值和上期预测值的。上期实际值我们有,但我们往往没有上期的预测值。我们有几种方式来设定初始预测:第一种方式是假定上期预测就等于上期实际值;第二种方式是用别的方法,比如移动平均法,计算一个预测值;还有一种方式,就是随便填个数字进去,比如0。

有趣的是,经过几次迭代后,你会发现,初始预测的影响很快就变得非常有限,直至衰减到没有。比如在图1-6中,三种预测都用简单指数平滑法,但初始预测各不相同:预测1的初始值采用上期实际值,预测2的初始值非常接近第1到5周的平均值,预测3的初始值就随便假设为0。你会发现,刚开始的时候,预测值的差异很大,但经过几次迭代后,三种情况下的预测值就基本一样了。而对于第22周的预测,也就是我们真正需要的预测,预测的初始值就根本没有任何影响。

为什么呢?这跟指数平滑法下历史数据的权重按照几何级数衰减有关。就拿图1-5中的例子来说,平滑系数α是0.4,参照图1-4中的公式,这意味着在第3周的预测中,初始预测的权重为(1-0.4)=0.6;到了第4周,初始预测的权重就成了(1-0.4)2=0.36;到了第5周,这一权重成为(1-0.4)3=0.216。依次类推,用不了多久,你会发现初始预测的影响就基本衰减到了0。

图1-6 指数平滑法的初始化和“预热”

但是,在刚开始的几期,初始预测的影响还是很显著的。这就是为什么指数平滑法要有个“预热”的过程,不管是这里谈的简单指数平滑法,还是后面要谈到的霍尔特指数平滑法和霍尔特–温特模型,都是如此。这跟厂房投产前的“试运行”类似:用一段历史数据来建立模型(“初始组”),等“预热”完成后,就进入正式的“测试组”,围绕测试组的数据统计预测的准确度,比较不同的平滑系数的优劣,选择最优的平滑系数α。

在一些预测方面的经典著述中,一般用最初的9个数据点作为指数平滑法的初始数据。如果是按照季度汇总,这大致就是2年的数据;如果按照周来汇总,大致就是2个月的数据。

初始化就如正式比赛前的热身,或者设备投入正式运营前的试车。在试车走合的过程中,我们可能调整某些参数,让设备处于更好的状态(优化)。对于预测模型来说,这种调整更多的是自动调整——好的预测模型往往有一定的“自适应性”,初始化就是指数平滑法的“自适应”过程。

对于测试组,顺便补充几句。指数平滑法之所以有“测试组”,是因为平滑系数α的择优问题。比如在图1-6的例子中,我们用第10到21周的数据作为测试组,共12个数据点,针对不同的平滑系数α,我们复盘这12期的预测,跟每期的实际值比较,得到每期的均方误差,然后求得12期的平均均方误差,作为平滑系数α择优的依据。

要注意,“预热”的数据不能用于测试模型准确度,“测试”的数据不能用于“预热”,避免了“既做裁判,又做球员”的情况,这有点儿像立法和执法要分离一样。

那么,测试组究竟该有多少数据点?我没有看到具体的研究。在我参考的一些书中,比如Makridakis等人的著作,经常看到用12期的数据。我想这有以下几个原因:其一,这些研究中,时间单元一般是月,12个月正好是完整的一年,覆盖到每个月,降低了潜在的季节性、周期性、趋势等影响;其二,十来个数据点,不算多,但也不算太少,在数理统计上有一定的可靠性。

一般来说,测试组的数据点越多越好,但在实践中,我们往往没有那么多的数据点。比如就图1-6的例子来说,产品是快消品,生命周期往往只有几个月,按周拆分的话,也没有多少个数据点。我在做分析的时候,会力求用13周或更多数据点来测试,这样我们就能覆盖一个完整的季度。当然,这只是个人实践,仅供参考。