补充5 供应链中的需求预测(一)时间序列预测法

2023-10-09 08:40

本文主要是介绍补充5 供应链中的需求预测(一)时间序列预测法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        供应链的需求预测方法多样,正如上一篇文章提出的。预测方法分为两部分部分讲,时间序列预测法、基于java的时序预测算法实现及机器学习在预测中的应用。本文为第一部分,介绍时间序列预测法。本文只介绍了几种供应链中常用到的时间序列预测方法,更多预测方法可见金融时间序列分析讲义,讲义虽以金融数据作为讲解,但是预测方法大同小异。

目录

一、静态预测法

 1.估计需求水平和需求趋势

 2.估计季节性因素

 二、适应性预测法

1.移动平均法

2.简单指数平滑法

3.趋势调整的指数平滑法(Holt模型)

4.趋势和季节调整的指数平滑法(Winter模型)

 三、预测误差的度量


一、静态预测法

        静态预测法假定,对于系统成分中的需求水平、需求趋势和季节性因素的估计不随观察到的新需求而改变。在这种情况下,利用历史数据来对每一个参数进行估计,然后将估计出的参数值应用于所有的未来预测中。假定需求的系统成分为混合型,也就是说:

系统成分=(需求水平+需求趋势)*季节性因素

        在这里先给出一些基本定义:

        在静态预测法中,在第t期对第t+l期的需求进行预测的计算公式如下:

         下面以MoonLight公司的不锈钢为例,进行预测。该公司过去三年的需求数据如下:

   1.估计需求水平和需求趋势

        首先,需要提出需求数据中的季节性因素。剔除季节性因素的需求(deseason-alized demand) 是指在没有季节性波动的情况下被观察到的需求。时期p(periodicity)是指每次季节性循环包含的期数。在这里p=4。

        第t期剔除季节性因素后的需求\bar{_{Dt}}可用下面的公式求得:

   

         下面就是上面公司剔除季节性因素后的需求:

        基于需求随时间的变化,剔除季节性因素后的需求 \bar{_{Dt}}与时间t质检存在以下线性关系

        上述的数据,得到的线性关系如下: 

 2.估计季节性因素

        第t期的季节性因素\bar{_{St}}是实际需求Dt和剔除季节性因素后的需求\bar{_{Dt}}的比值,如下所示:

        上面的数据的得到的结果如下所示:         

         若在数据中有r个季节性循环,对所有表示形式pt+i(1<=i<=p)的时期,可以计算季节性因素如下:

        在这里r=3,季节性因素计算如下: 

        利用静态预测法计算未来4个季度的预测值如下: 

 二、适应性预测法

        在适应性预测中,需求水平、需求趋势和季节性因素的估计值在每次观察到实际需求后都要进行修正。适应性预测法的优点在于估计值中将所有观察到的新数据都考虑其中了。

        首先,先定义下面一些符号:

         在适应性预测法中,利用第t期的需求水平估计值和需求趋势估计值,在第t期对第t+l期进行预测。预测公式如下:

         适应性需求预测框架四个步骤如下:①计算初始值②预测③估计误差④修正估计值

        在预测过程中,选取哪种方法最为合适取决于需求的特性和需求系统成分的组成。在每种情况下,都假定待预测的时期为t。

1.移动平均法

        当需求中没有明显的趋势或季节性因素时,可以用移动平均法进行预测。在这种情况下:

系统的系统成分=需求水平

        在移动平均法中,将最近N个时期需求的平均值作为第t期需求水平的估计值,也就是N期移动平均,具体计算方法如下:

         当前对未来所有时期的预测都是一样,都是基于当前对需求水平的估计。预测公式如下:

         在观察到第t+1期的实际需求后,我们对估计值进行如下修正:

         要计算新的移动平均值,只要加入最新观察值并舍弃最早的观测数据就可以了。修正后的移动平均值则用于对下一期的预测。在进行预测时,移动平均法赋予最近N个时期的数据同样的权重,同时忽略那些较早的数据。当增加移动平均的期数N时,移动平均值对最近观察到的需求响应度会降低。

2.简单指数平滑法

        当需求没有明显的、可观察到的趋势或季节性因素时,采用简单指数平滑法比较合适。在这种情况下:

需求的系统成分=需求水平

        由于假设需求没有明显的趋势或季节性,所以需求水平L0的初始估计值可以用所有数据的平均值来估计。给定从第1期到第n期的需求数据,可以得到:

         在第t期对所有未来时期的预测值等于当前的需求水平估计值,可表示如下:

       上式α(0<α<1)为需求水平的平滑系数。修正后的需求水平时观察到的第t+1期的需求(Dt+1)和第t期原来的需求水平估计值(Lt)的加权平均。上式也可改写为

         需求水平的当前估计值时所有历史需求的加权平均,其中近期观察值的权重大,元气观察值的权重小。α取值越大,预测对近期观察值的响应性越好;相反,α取值越小,预测的稳定性越好,但对近期观察值的响应性越差。

3.趋势调整的指数平滑法(Holt模型)

        趋势调整的指数平滑法(Holt模型)适用于需求的系统成分仅包括需求水平和需求趋势,而不存在季节性因素的情况。在这种情况下:

需求的系统成分=需求水平+需求趋势

        通过对需求Dt和时间进行线性回归,可得到需求水平和需求趋势的初始估计值,如下式所示:

         在这种情况下,由于已经假定需求有趋势成分,但不存在季节性因素,所以对需求和时间进行线性回归是合适的。

        在第t期,给定需求水平估计值Lt和需求趋势估计值Tt,那么未来时期的预测值可表示如下:

         在观察到第t期的实际需求后,对需求水平和需求趋势的估计值进行如下修正:

   上式α(0<α<1)为需求水平的平滑系数,β(0<β<1)为需求趋势的平滑系数。可以看到,不管是需求水平修正还是需求趋势修正修正后估计值都是实际观察值与原来的估计值的加权平均。

4.趋势和季节调整的指数平滑法(Winter模型)

        Winter模型适用于需求的系统成分中包括需求水平、需求趋势和季节性因素的情况。在这种情况下:

需求的系统成分=(需求水平+需求趋势)*季节性因素

        在第t期,给定需求水平为Lt、需求趋势为Tt和季节性因素为St,...,St+p-1,那么对未来时期的预测可表示为:

         观察到第t+1期的需求后,对需求水平、需求趋势和季节性因素的估计值进行修正:

  上式α(0<α<1)为需求水平的平滑系数,β(0<β<1)为需求趋势的平滑系数;γ(0<γ<1)为季节性因素的平滑系数。可以看到,不管是需求水平修正还是需求趋势、季节性因素修正后估计值都是实际观察值与原来的估计值的加权平均。

 三、预测误差的度量

        基于下面两个原因,管理者必须对预测误差进行仔细分析。

        ①管理者可以利用误差分析来判定线性的预测方法是否可以准确预测需求的系统成分。

        ②所有应急计划都必须考虑预测误差。

        只要观察到的误差的历史误差估计范围内,就可以继续使用现行的方法。如果持续超出,就需要及时改变预测方法了。

        第t期的预测误差Et为:

         平均平法误差(MSE)是度量预测误差的常用指标,具体公式如下:

         MSE与预测误差的方差有关,对大误差的惩罚更大。所以,如果较大预测误差引发的成本远大于精确预测带来的收益,则非常适合用MSE这一指标来预测方法进行比较。当预测误差以0为重心对称分布时,也适合用MSE来衡量预测误差。

        平均绝对偏差(MAD)定义为整个预测期内所有时期的绝对偏差的平均值,表达式为:

         如果需求的随机成分呈正态分布,那么可用MAD来估计随机成分的标准差,即

σ=1.25MAD

        因此,估计需求的随即成分的均值为0,标准差为σ。在预测误差不是对称分布时,MAD是比MSE更好的误差度量指标。即使是在预测误差对称分布的情况下,如果预测误差的成本和误差的大小成正比,也可以用MAD来选择预测方法。

        平均绝对百分比误差(MAPE)是指绝对偏差站需求的百分比的平均值,计算公式如下:

         当潜在需求具有较强季节性且各期需求变化较大时,MAPE是一个很好的度量预测误差的指标。

        当一种预测方法已不能反应潜在需求模式时(如发生经济危机时),预测误差不可能以0为中心随机分布。通常,需要一种跟踪和控制预测方法的手段。其中一种手段就是用预测误差的滚动和来评估偏差(bias),公式如下:

         跟踪信号(TS)是偏差与平均绝对偏差的比值,即

         如果任一时期的TS超出±6的范围外,就说明预测出现了偏差,可能低估了需求(TS<-6)或高估了需求(TS>6)了。之所以出现这种情况,可能是因为预测方法存在缺陷或潜在的需求模式发生了变化。

        当需求突然减少(如发生经济危机时)或急剧增加是的历史数据丧失相关性时,TS也可能增大。如果需求突然减少,那么在进行预测时就要增大当前数据的权重,提高预测的响应性。麦克莱恩建议,在使用指数平滑法进行预测时采用“α值递减”的方法,公式如下:

         长期来看,平滑系数收敛于α=1-β,随着时间的推移,预测值变得更加稳定。

这篇关于补充5 供应链中的需求预测(一)时间序列预测法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171659

相关文章

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

Python日期和时间完全指南与实战

《Python日期和时间完全指南与实战》在软件开发领域,‌日期时间处理‌是贯穿系统设计全生命周期的重要基础能力,本文将深入解析Python日期时间的‌七大核心模块‌,通过‌企业级代码案例‌揭示最佳实践... 目录一、背景与核心价值二、核心模块详解与实战2.1 datetime模块四剑客2.2 时区处理黄金法

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

PostgreSQL 序列(Sequence) 与 Oracle 序列对比差异分析

《PostgreSQL序列(Sequence)与Oracle序列对比差异分析》PostgreSQL和Oracle都提供了序列(Sequence)功能,但在实现细节和使用方式上存在一些重要差异,... 目录PostgreSQL 序列(Sequence) 与 oracle 序列对比一 基本语法对比1.1 创建序

Pandas进行周期与时间戳转换的方法

《Pandas进行周期与时间戳转换的方法》本教程将深入讲解如何在pandas中使用to_period()和to_timestamp()方法,完成时间戳与周期之间的转换,并结合实际应用场景展示这些方法的... 目录to_period() 时间戳转周期基本操作应用示例to_timestamp() 周期转时间戳基

JavaScript时间戳与时间的转化常用方法

《JavaScript时间戳与时间的转化常用方法》在JavaScript中,时间戳(Timestamp)通常指Unix时间戳,即从1970年1月1日00:00:00UTC到某个时间点经过的毫秒数,下面... 目录1. 获取当前时间戳2. 时间戳 → 时间对象3. 时间戳php → 格式化字符串4. 时间字符

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息