首页 >>吴菁芃:从未卜先知逻辑浅谈供应链预测库存(三)
吴菁芃:从未卜先知逻辑浅谈供应链预测库存(三)
发布来源: 吴菁芃Vincent 发布时间:2020-10-08
(~上接9月23日文章)
 

九、指数平滑法模型
 
现在,我们来讨论另一种进行库存管理不可或缺的预测模型——指数平滑模型。我们先讨论其最简单的形式:一阶指数平滑(first order exponential smoothing)。


一阶指数平滑由最后一次预测值与上一时期的预测误差加权后相加得到。所以,如果最后一次预测的结果为15,误差为 5,这个模型就是用 15 加上一个系数乘以 5 的积来得到新的预测值。也就是说,一阶指数平滑模型会根据预测值和实际值之差来调整预测值。误差所乘系数称为平滑常数(smoothing constant),通常用希腊小写字母 alpha(α)表示, 其取值范围为(0,1),所以,如果误差很小,调整量就很小,反之调整量就很大。如果用 ft 来表示 t 期间的预测值,at 表示 t 期间的实际销量,

那么 t+1 期间的指数平滑模型的预测值就为:


如果数据存在大量随机干扰,alpha 的值应该很小。如果需求水平持续变化,至少在一段时间内 alpha 的值应该取大一些。比如,假设某产品的需求量很低,又引入了具有竞争力的同类新产品。此后一段时间内,应该增大alpha,直到竞争效应让该产品的需求量达到一个新水平并稳定下来。Alpha的值通常应该为 0.1 ~ 0.3,但具体值还是取决于数据和实际情况。让我们来考虑一个极端情况。假设 alpha 的值为 0,那么你将总是使用第 1 个预测值。

另一种极端情况,假设 alpha 等于 1,预测模型就变成了朴素模型。


使用一阶指数平滑模型的一个难点在于,必须要有一个初始预测值。所以,进行第 1 次预测时,你需要有一个初始预测值。如果有数据,可以使用平均值代替。如果没有,可以自行确定一个值,或者请教专业人士,对他们给出的预测值取平均值作为初始预测值。无论哪一种方式,都会对预测结果产生一段时间的影响,尤其是当 alpha 值很小的时候。比如,假设你是在预测由掷骰子产生的需求,但是跟之前一样,你并不知道需求是这样产生的。


上图所示是 60 天的预测误差情况。可以看到,前 1/3 部分,偏差几乎都是正值,即这期间的预测属于过预测。这是因为我们最开始估算的初始预测值太小了,加上 alpha 值较小,该预测值影响的消失过程大概花了 20 天时间。现在,让我们将 alpha 值修改为 0.5。


上面图中,前20 天没有明显预测误差。这是因为我们增大了alpha 值, 预测的响应速度因此加快了。

作为对比,下图则展示了一个初始预测值为 6、alpha 取值为 0.1 的离散事件仿真过程。可以看到,前 1/3 时间段的预测显然出现了偏差,因为预测误差的平均值为负值。


所以,回到第 1 次预测时没有数据的问题。一个解决办法是用估计值代替,但是先要把 alpha 值设得接近于 1,然后缓慢地将其调小。


总结,上例中我们只讨论了未来一个时期的预测。如果使用一阶指数平滑模型进行未来 10 个时期的预测,情况又如何呢?答案是,最近一次预测值就是未来 10 个时期的预测值。所以,如果一阶指数平滑模型对下一时期的预测值为 34,那么其对第 20 个时期的预测值也为 34。当然,特定时期的预测值会随着当前时期所改变。到达第 19 个时期后,第 20 个时期的预测值就可能不再是 34,但是基于当前时期对下一时期的预测,第20 个时期的预测值就是 34。

现在来看这样一个例子。假设当前时期的预测值为 20,但是实际销量为 30,并且 alpha 值为 0.1。下一时期的预测值就为:


那么,再推演下一时期的预测值也是如此,即根据


假设现在我们到达了下一时期的末尾且该时期的实际销量为11,那么:


所以,在时期 1 结束的时候,时期 3 的预测值为 21;但是在在时期2 结束的时候,时期3 的预测值为20。除了确定初始预测值和alpha 值以外, 在使用一阶指数平滑模型时需要解决的另一个问题是:预测值应该多久更新一次呢?本例中,预测值是一个时期更新一次,但这既不实际也不是最优做法。不实际的原因在于,你并不能每隔一个时期就更新一次预测值;不是最优做法的原因在于,这样做可能会对系统造成极大干扰。可以使用离散事件仿真来分析这个问题。


给定一个时期,该时期使得偏差接近于 0 的 alpha 的取值可能与使得预测偏差的标准差最小的 alpha 的取值不同。偏差很大意味着发生了欠预测,可能会导致预计保护期需求量过低,提高发生缺货的概率。过大的alpha 值会导致产生很大的预测误差的标准差,导致安全库存增加。以上例子表明,初始预测值及对 alpha 值的选取都会对库存管理绩效产生长久的影响。在对这些决策及其预测效果,以及最终对库存管理系统绩效所产生的影响进行评估时,离散事件仿真是一个很有用的工具。


评价:使用一阶指数平滑模型时包含一个假设,那就是需求不存在趋势或季节性特征。如果在需求存在正向趋势的时候使用该模型,预测会出现负偏差。增大 alpha 值能降低偏差值,因为预测的响应速度会因此加快,但是并不会消除偏差。类似地,如果需求存在负向趋势,偏差会是正值, 因为平均预测值会偏大。


十、趋势调整的指数平滑

现在,让我们使用趋势调整的二阶指数平滑(trend adjusted expo- nential smoothing)模型来解决需求趋势的问题。如果需求存在趋势,为了更好地进行库存管理,通过需求预测确定这是一个正向还是负向的趋势就变得十分关键。


上图中所示的二阶指数平滑模型拟合的是一个带截距和斜率的等式。截距代表需求水平,斜率代表趋势。用创建好的模型预测未来一个时期的需求,你只需要用现有斜率加上截距,即可得到新的斜率。预测未来两个时期的需求,就用现有斜率加上截距的两倍。预测未来 n 个时期的需求, 就用现有斜率加上截距的 n 倍。基于此,很容易就可以看出二阶指数平滑模型的潜在问题。该模型假设趋势是线性的,并且没有上限。我们会在稍后讨论解决这一问题的办法。二阶指数平滑模型的预测公式为:
其中 Lt 为截距,即预测的需求水平;Tt 是斜率,即预测的需求趋势,n 代表未来的 n 个时期。所以,如果需求水平等于 20,趋势为 5,则下个时期的需求预测值为:


而如果是预测未来 30 天的需求,那么需求预测值为:


我们先前提供的二阶指数平滑公式是不够的,因为它们无法估算出水平分量 Lt 和趋势分量 Tt。为了估算水平分量,需要引入一个相关的平滑常数,我们在这里也用 alpha(α)表示它,取值范围为(0,1)。

为了估算趋势分量,需要用到相关的平滑常数 beta(β),取值范围也为(0,1)。类似于一阶指数平滑模型,使用二阶指数平滑模型预测时,水平和趋势分量都需要有一个初始预测值。并且,与一阶指数平滑模型类似,从一个时期到下一个时期,水平分量调整的剧烈程度会随着 alpha 值的增大而增加。类似地,趋势分量调整的剧烈程度也会随着beta 值的增大而增加。

用二阶指数平滑模型预测水平分量的计算式如下:


回顾一下一阶指数平滑模型的公式,可以发现其和上面的公式存在相似的地方。本例中,(at–1 +Tt–1) 是前一时期对当前水平分量的预测值, [at - (at -1 +Tt -1)] 可被认为是水平分量的 FE;at 是实际需求水平,(at–1+Tt–1))则是预测值,两者之差就是 FE。所以,实际上,和一阶指数平滑类似,前一时期对需求水平的预测值也会由误差的一部分矫正。预测趋势分量可以看成预测需求水平的改变情况。所以,趋势的预测值是基于部分误差,通过对前一时期的趋势预测值进行调整来更新的。


再回顾一下一阶指数平滑及二阶指数平滑模型计算需求水平的公式。可以看到,这些公式都使用了前一时期的预测值加上部分误差的算法。我们可以把(Lt–Lt–1)看成需求水平的实际改变值,Tt-1 则是前一时期对改变值的预测。所以,差值就是前一时期的预测误差。现在来看这样一个例子。假设前一时期的水平分量为 100,趋势分量预测值为 1;前一时期的实际销量实际销量为 110,当前时期的为 120,前一时期对当前时期的预测值为111;alpha 和 beta 值均为 0.1。


现在,让我们来对未来10 个时期进行预测。


假设我们要预测未来的365 个时期,那么:


综上,这一预测值好像就不是很合理了,似乎存在趋势增长速度减小的时间点。







注:本文系本站转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请与本站联系,我们将在第一时间删除内容!本文版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。

热门课程

关注我们

关注我们