首页天道酬勤为什么叫指数平滑法(移动平均法适合于预测)

为什么叫指数平滑法(移动平均法适合于预测)

admin 12-01 05:31 216次浏览

本文摘自tmdsb编写的《需求预测和库存计划:一个实践者的角度》。

霍尔特方法以宜人的棉花糖命名,最早发表于1957年,成为预测中应用最广泛的模型之一[1]。对于需求预测和库存规划,可以说五六十年代人才济济。我想特别介绍一下美国的HMMS研究团队。这个团队的名字来源于当时都在卡内基理工学院[2]的四位研究人员(霍尔特、莫迪利亚尼、穆特和西蒙)姓氏的首字母,旨在寻找更好的决策机制,帮助行业更好地处理各种库存、生产和计划问题。这些问题导致宏观层面的经济危机,企业往往处于微观层面的危机状态,要么是赶工,要么是产能利用不足,库存积压。

霍尔特就是这里要讲的霍尔特。他发展了处理平缓需求的简单指数平滑法,处理趋势的Holt双参数线性指数平滑法,处理季节性的yldzc模型,这些都成为了工业界应用最广泛的预测模型[3]。在剩下的三位研究者中,莫迪里阿尼和西蒙后来获得了诺贝尔经济学奖,穆特的理性预期模型成为斯利姆棒球获得诺贝尔奖的基石。我不得不感叹,这真是一支有才华的研究团队。当时卡内基梅隆已经是一个人才辈出的地方。

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

当需求呈现出明显的趋势时,比如图1中的情况,单纯的指数平滑法无法有效处理,这说明选择平滑系数时,你会发现最优变为1,或者非常接近1——。当简单的指数平滑法无法有效预测时,只能“步步紧逼”,走到哪里“球”就跟到哪里,注定被动反应,永远落后。霍尔特方法增加了趋势参数,更好地预测了“球”的方向,系统地增加了拦截“球”的胜率。

在霍尔特的双参数平滑模型中,预测由两部分组成;一部分是水平部分,在前面水平部分的基础上用简单的指数平滑法更新;另一部分是趋势部分,在前期趋势部分的基础上平滑调整,也用简单的指数平滑法更新;将它们加在一起,得到下一个预测[4]。

霍尔特方法不仅连续调整横向部分,还连续调整趋势部分,在横向和纵向维度上调整预测,可以更好地应对趋势的变化。基本公式分为三部分,更多细节可以通过百度霍尔特的双参数指数平滑法得到。

当前水平部分= *本期实际需求值(1-)*(上一水平部分,上一趋势部分)(1)

当前趋势部分= *(当前水平部分-最后水平部分)(1-)*最后趋势(2)

下一个预测=当前水平部分,当前趋势部分(3)

因为趋势,霍尔特的方法可以预测多个周期的值:未来N个周期的预测等于当前水平部分加上N倍的趋势部分。例如,在图1的示例中,第22周的预测=401 *(18)=22,第23周的预测=402 *(18)=4。你很快就会发现第24周的预测变成了负数,这显然是不合理的。——这是趋势参数引起的问题,导致霍尔特方法有过度预测的倾向,使用时要注意。

在霍尔特的双参数平滑方法中,平滑系数和在0和1之间。和简单的指数平滑法一样,这两个平滑系数越大,预测模型的反应越灵敏,也就是说最近一次的发生对下一次的预测影响更大,风险在于可能反应过度。平滑系数越小,预测模型越稳定,最新出现的作为“噪声”过滤掉。风险在于它可能无法及时响应需求变化。

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

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

初始化时,可以假设初始“水平部分”为第一实际需求值,初始“趋势部分”为第二实际需求值减去第一实际需求值;截距(水平部分)和斜率(趋势部分)也可以通过基于前几个实际需求值的线性回归模型来计算。当然,还有其他的初始化方式,比如将趋势部分的初始值设置为0[5](假设开始没有趋势),使用前几期的平均值作为水平部分的初始值。

类似于之前简单的指数平滑法,经过一段时间的初始化,模型会自动修正偏差,初始值的影响会变得有限,直到最小。

在图1的示例中,我们使用前9期的数据进行初始化,并使用后12期的数据测试模型并选择最佳模型。鉴于前几期数据相当离散,我们用前五期的平均值作为横盘部分的初始值,趋势部分的初始值设为0,为0.8,为0.1。对于测试组,预测的平均绝对误差为33%,均方误差为1790。我也尝试用简单的指数平滑来预测。优化后的平滑系数接近1,这两个精度指标分别为37%和1869。显然,对于这种快速移动的消费品,需求变化剧烈,一旦引入,就会达到顶峰。然而,需求是自然的

后就一路下滑,与简单指数平滑法相比,霍尔特法是更有效的预测方法。

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

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

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

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

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

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

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

更多供应链管理专栏原创文章,请关注微信公众号:供应链管理专栏


[1] 这篇经典文章的名称是Forecasting seasonals and trends by exponentially weighted moving averages, Charles Holt, ONR Research Memorandum No 52, Carnegie Institute of Technology, 1957。这份研究是由美国海军资助的。在美国,运筹学、运营管理的很多早期研究是由军方资助的,为以后的供应链管理学科打下坚实的理论基础。

[2] 该学院由钢铁巨头卡内基创建,后来与梅隆学院合并,成为今天蜚声海外的卡内基梅隆大学。

[3] Learning How to Plan Production, Inventories, And Work Force, Operations Research, Vol. 50, No. 1, January–February 2002, Charles c. Holt, pp. 96–99.

[4] 我在查阅中文文献,对类似的专业术语,很难找到合适的翻译:那些文献要么用公式中的字母代替,这多出现在学者的文章中;要么就采用英语原名,这多出现在外资背景的职业人写的文章中。这些本来很简单的方法论,却被很多著述弄得异常晦涩难懂——一旦开始卖弄“数学之美”,推导出一串又一串的公式时,这些很实用的方法论就成了学究们的自娱自乐,对我们实践者来说无异于灾难。当本土企业开始大面积用这些的时候,很通俗、很贴切的中文名称就会出现——现在还没到那一步。

[5] 比如在Real-Statisitics.com网站,Charles Zaiontz博士的霍尔特法Excel中,趋势部分的初始值就用0。这位博士开发了各种各样的Excel表格,用来解决数理统计的问题,包括简单指数平滑法和霍尔特法,是学习这些预测模型的很好资料(http://www.real-statistics.com/time-series-analysis)。他以前在美国的大学任教,现居住在意大利。像他那样把复杂的数理统计解释得那么清楚,这世界上可没有多少人。我以前读MBA时,教统计学的那位教授就是这样的人。他让我真正体会到统计学反映出的简单美(惭愧,快20年过去了,我连他的名字都忘了)。这也正是人工智能等没法广泛应用的原因之一:我跟好几个人工智能公司的专家谈,他们都在尝试用人工智能来解决需求预测问题,但没有一个人能够解释清楚,人工智能究竟是怎么运作的,能更好地预测需求——我在计划领域可以说是高于平均水平,他们在人工智能上是远超平均水平,我们在一起都没法搞清楚人工智能是怎么回事,一般的计划经理、计划员怎么能搞清楚呢?不理解就不信任,不信任就不会去用。

【云主机 UHost】Linux服务配置指南:安装配置LNMP更新CentOS系统和优化DNS配置
衡量回归模型的准确性(回归平方和计算公式) 提高注意力(时间序列的种类有哪些)
相关内容