悦读

中国链
爱链中国,链你所爱!

趋势的预测:霍尔特指数平滑法

更新时间:06-11信息来源:世界经理人


霍尔特法得名于查尔斯·霍尔特,最早发表于1957年,成为预测上用得最广的模型之一[1]。对需求预测和库存计划来说,上世纪50、60年代可以说是人才辈出。这里我想特别介绍一下美国的HMMS研究团队。这个团队的名称来自四位研究者姓氏的第一个字母(Holt,Modigliani,Muth和Simon),当时他们都在卡内基工学院[2],旨在是寻找更好的决策机制,以帮助工业界更好地应对种种库存、生产和计划问题。这些问题在宏观层面导致经济危机,在微观层面让企业经常处于危机状态,要么是赶工加急,要么是产能利用不足,以及库存积压。

Holt就是这里要讲的霍尔特,他开发了应对平缓需求的简单指数平滑法、应对趋势的霍尔特双参数线性指数平滑法,以及应对季节性的霍尔特—温特模型,这些都成为工业界最为广泛应用的预测模型[3]。其余的3位研究者中,Modigliani和Simon后来获得了诺贝尔经济学奖,而Muth的理性预期模型呢,又成为卢卡斯获取诺贝尔奖的基石。不得不感叹,这真是个才华横溢的研究团队啊,那时的卡内基梅隆就已经是个才俊辈出的地方。

简单地说,霍尔特法就是在简单指数平滑系数α的基础上,增加了一个趋势的平滑系数β,所以也叫“双参数平滑法”。当β等于0的时候,霍尔特模型就成了简单指数平滑法。

当需求呈现明显的趋势,比如图 1中的情况,简单指数平滑法没法有效应对,表现在对平滑系数择优时,你会发现最优的α变成了1,或者非常接近1——简单指数平滑法没法有效预测时,就只能“步步紧逼”,“球”跑到哪里,就跟到哪里,这注定被动反应,永远滞后一步。霍尔特法增加了趋势参数,更好地预判“球”的走向,系统地增加了拦截到“球”的胜算。

在霍尔特双参数平滑法模型中,预测由两部分构成;一部分是水平部分,是在上期水平部分的基础上,用简单指数平滑法来更新;另一部分是趋势部分,是在上期趋势部分的基础上平滑调整,也用简单指数平滑法来更新;两者相加,就得到下期的预测[4]。

霍尔特法不但持续调整水平部分,而且持续调整趋势部分,在横向和纵向两维调整预测,所以能更好地应对趋势的变化。基本的公式分三部分,更多细节可以百度“霍尔特双参数指数平滑法”。

本期水平部分=α*本期需求实际值 + (1-α)*(上期水平部分+上期趋势部分)(1)

本期趋势部分=β*(本期水平部分-上期水平部分)+(1-β)*上期趋势(2)

下期预测=本期水平部分 + 本期趋势部分(3)

因为有趋势,霍尔特法可以预测多期的值:未来第n期的预测等于本期水平部分加上n倍的趋势部分。比如在图 1的例子中,第22周的预测=40+1*(-18)=22,第23周的预测=40+2*(-18)=4。你马上会发现,第24周的预测就成了负数,这显然不合理——这是趋势参数带来的问题,导致霍尔特法有过度预测的倾向,在使用的时候要加以留意。

霍尔特双参数平滑法中,平滑系数α和β介于0和1之间。与简单指数平滑法一样,这两个平滑系数越大,预测模型就越响应,也就是说最新发生的对下一步的预测影响更大,风险是有可能过度反应;平滑系数越小,预测模型就越平稳,也就把最新发生的更多地当成“杂音”给过滤掉,风险是可能没法及时响应需求变动。

在霍尔特参数的择优中,我们也可以用Excel中的Solver插件,基于预测准确度最高的目标,围绕两个参数α和β优化,选择最优的参数。

用霍尔特双参数指数平滑法来预测

图1:用霍尔特双参数指数平滑法来预测

与简单指数平滑类似,霍尔特双参数也需要初始化。

在初始化时,可以假定初始“水平部分”为第一个实际需求值,初始“趋势部分”为第二个实际需求值减去第一个实际需求值;也可以基于前几个实际需求值,利用线性回归模型来计算截距(水平部分)和斜率(趋势部分)。当然还有别的方法来初始化,比如把趋势部分的初始值设为0[5](这是假定刚开始的时候没有趋势),以及用前几期的平均值作为水平部分的初始值。

跟前面简单指数平滑法的情况类似,经过一段时间的初始化后,模型会自动纠偏,初始值的影响变得有限,直至微乎其微。

在图 1的例子中,我们用前9期的数据来初始化,用后12期的数据来测试模型、选择最优的模型。鉴于前几个数据相当离散,我们用前5期的平均值作为水平部分的初始值,趋势部分的初始值设为0,α取值0.8,β取值0.1。对于测试组而言,预测的平均绝对误差为33%,均方差为1790。我也尝试用简单指数平滑来预测,最优化的平滑系数接近1,这两个准确度指标分别为37%和1869。显然,对于这个快消品来说,需求变化剧烈,一经导入就达到顶峰,需求然后就一路下滑,与简单指数平滑法相比,霍尔特法是更有效的预测方法。

当然,对于指数平滑法,到现在为止,你读了可能没有什么感觉。这没关系,先了解一下,然后动手实践,在实践中加深理解。毕竟,不管理论多完美,除非下到水里,是没法学会游泳的。

【实践者问】我的专业是工业工程,目前感兴趣的工作有两方面,一个是计划,另一个跟供应链稍微偏差些,是数据分析。我由于本身专业跟供应链很相关,而且对于生产计划这样与数据打交道的工作也很感兴趣,但是专业课上学到的无外乎移动平均法、指数平滑法、霍尔特法这些,感觉一个外行人用点心,一天就能熟练掌握几种预测方法,我想知道在计划这个行业进一步是什么样的职业发展道路?

【刘宝红答】这些基本的方法能够解决需求计划的大部分问题,所以不要小看它们。它们看上去简单,其实不简单,不然的话为什么还要把人名冠上去?像霍尔特这种专家,都是跟诺贝尔奖获得者相提并论的人。这些方法凝聚着众多研究者多年的心血,远远没有想象的那么简单——如果我们认为简单,那八成是因为我们不理解。

比如移动平均法是简单,但是究竟用多少期的需求历史就很不简单,因为这要求我们懂得如何去评估预测模型的好坏。这又涉及到绝对误差、均方差等预测准确度的统计方法——均方差又让我们意识到,预测的一大关键是避免大错特错:小的预测失误容易对付,可以通过安全库存、供应链执行来解决;害死我们的是大错特错。

那大错特错又是怎么发生的?选择了不合适的预测模型,用了不合适的参数是一个原因,但基础数据也是一大问题源,比如数据没有清洗,我们把以前促销的数据包括在内,后续需求预测自然显著偏高。这是对发生了的促销,那没有发生的呢?这又涉及到跟销售端的对接——需求预测是“从数据开始,由判断结束”,数据代表已经发生的,可重复的;判断代表还没有发生的,不可重复的,这又牵扯到销售跟运营协调流程,企业的几大主干流程之一。

所以,不要低估这些基本的模型。运用得当,这些模型能解决大部分的问题。不要求新求异。如果有人跟你大谈卡尔曼滤波,或者灰色预测法什么的专业名词,你应该敬而远之——我不是说这些不重要,而是说那更多的是龙肝凤胆;我们得回归计划的基本面,先把我们的大米饭做得更好更合口再说。

这就如练武,不管你学什么武术,基本的招数也就那些。要经过一遍又一遍的练习,熟能生巧,出神入化的时候,才能真正掌握。要知道,高手的高,并不在于他们知道的招数比别人多,而是在相同的招数里,他们得到更多。