APP下载

基于R语言SARIMA模型的航材需求预测分析

2019-07-17毕钊侯胜利

价值工程 2019年15期
关键词:R语言时间序列需求预测

毕钊 侯胜利

摘要:采用时间序列SARIMA模型对航材需求进行预测,以2010~2014年某航材实际月需求量数据为基础,运用R语言对航材需求量时间序列进行了稳定性判别;通过定阶和参数估计,构建了航材需求预测模型,并进行了数据预测。结果显示使用SARIMA模型拟合效果较好,预测能力可靠,能为航材部门需求预测提供准确方便的方法。

Abstract: The time series SARIMA model is used to predict the demand for aircraft spareparts. Based on the actual monthly demand data of a certain material in 2010~2014, the R language is used to judge the stability of the time series of aircraft spareparts. Through the order and parameter estimation,the aircraft spareparts demand forecasting model was constructed and the data prediction was carried out. The results show that the SARIMA model has a good fitting effect and reliable prediction ability, which can provide accurate and convenient methods for demand forecasting of the aerial material sectors.

关键词:R语言;时间序列;SARIMA模型;需求预测

Key words: R language;time series;SARIMA model;demand forecasting

中图分类号:F726;F224                                  文献标识码:A                                  文章编号:1006-4311(2019)15-0151-04

0  引言

航材保障系统中,航材需求量的预测是平衡航材消耗和库存的关键。做好航材需求量的分析工作,不仅可以提高场站航材股保障机务部门的水平,还能为航材订货计划的制定提供有力依据。考虑到航材供应方式和器材设备故障的特点,航材的需求适宜采用时间序列法预测,而利用时间序列SARIMA模型,能综合考虑季节、趋势和随机干扰多方面因素,对于短期预测有较好效果[1]。

本文采用的工具是免费的R软件,它有许多扩展包(Packages)可以增强其广泛的实用性,其中就有非常丰富的时间序列分析函数和程序包,来帮助我们对时间序列数据进行实验和研究。利用R语言软件选择最优模型,提高航材需求预测的准确性。

1  SARIMA模型算法

在自然界中,时间序列的四种因素长期趋势、季节变动、循环波动和随机干扰之间往往存在着复杂的相互作用关系,使用ARIMA模型很难拟合序列的发展,因此需要建立SARIMA模型,其构造原理如下:

对于只包含趋势性的非平稳时间序列,经过适当的逐期差分消除趋势影响后,再对形成的新的平稳序列建立ARMA(p,q)模型提取时间序列的相关性。

若原时间序列同时包含趋势性和季节性变化时,季节效应本身也具有相关性,因此季节相关性的提取可以使用以周期步长为单位的ARMA(P,Q)模型。

乘积模型是假定多因素对序列发展的影响是相互作用的,用于相对数总变量的计算。所以拟合模型实质为ARMA(p,q)和ARMA(P,Q)的乘积,即时间序列的短期相关性和季节效应相乘。结合使序列平稳化的d阶趋势差分和D阶S步季节差分运算,原观察值序列拟合的SARIMA模型完整结构如下:

该可乘季节模型一般也可以用ARIMA(p,d,q)×(P,D,Q)S来表示,当P=D=Q=0时,就是简单的ARIMA模型[2]。

2  航材需求时间序列数据分析

本文根据文献[3]中的某航材2010年1月到2014年12月需求量数据(表1)建立模型。利用R语言及plot指令作出航材需求量Y的时间序列图(图1)。

时间序列分为平稳时间序列和非平稳时间序列,在分析航材需求历史数据时一般会是具有趋势性和季节性的非平稳时间序列。由图1可以看出航材需求时间序列有明显的年周期性规律,为提取定量化的季节信息,构造季节指数来表示衡量季节变动,即用简单平均法计算周期内各时期季节性影响的相对数。如季节指数为124%,就表明该季度的需求量通常高于年平均数24%;若季节指数为67%,就表明该季度的值通常低于年平均数33%。

为了直观清楚地分析时间序列的趋势起伏变动和季节效应,我们可以使用R语言中的“decompose()”函数。该函数既能根据需要对时间序列的某个因素进行深入考察或单独使用,也可以直接让R提供信息集成显示和图形集成输出。在确定性影响因素很显著时,选择合适的确定性模型通常会得到非常不错的分析预测效果。

图2所示,将时间序列分解后的图形分别为:原始的时间序列图(顶部),估计出的趋势部分图(第二部分),估计出的季节性部分(第三部分)和估计的随机波动部分(底部)。根据图中的信息,季节效应和趋势效应共同导致的序列非平稳,因此選择相应的模型进行分析预测,这里采用SARIMA模型进行建模。

3  基于R的SARIMA航材需求预测

3.1 序列平稳化

所谓平稳,简单的说,就是统计特性(mean,variance,correlation等)不会随着时间而变化。时间序列分析的数据结构有它的特殊性,由于时间的不可重复性,任一时刻只能获得唯一的样本观察值。由于样本信息太少,如果没有其他的辅助信息,通常没有办法进行分析,因此要对时间序列平稳化[4]。

有很多方法来平稳数据,根据图2所得的信息,用“diff”语句进行一阶12步季节差分消除时间序列趋势和季节影响,得到了一个近似平稳的随机序列(图3)。

图中2011年10月的数据明显异常,其他数据基本趋于平稳。采用R语言中的KPSS检验,一阶12步季节差分后的时间序列KPSS检验P值大于0.1,不能拒绝差分序列是平稳的。

3.2 模型定阶与参数估计

根据逐次差分的次数和季节差分的阶数,初步确定d=1,D=1,s=12。分别用“acf”和“pacf”语句画出自相关图(图4)和偏自相关图(图5)。

由图可知,差分后的序列自相关系数二阶截尾,而偏自相关系数三阶截尾。初步确定p=3,q=2。再考虑季节自相关特征,延迟12阶、24阶等以周期长度为单位的自相关系数和偏自相关系数拖尾。所以P、Q只能采取0、1、2从低阶到高阶逐个尝试的办法,一般P和Q都取1[5]。根据模型参数检验结果对模型反复调试和检验确定最优模型(表2)。

备选SARIMA模型中考虑估计值方差最小,对数似然值最大,AIC和BIC值最小的模型。综合比较,选择模型ARIMA(0,1,2)×(1,1,1)12时最好。

也可以使用auto.arima函数自动定p,d,q,P,D,Q等参数[6]。auto.arima给出的建议是ARIMA(0,0,0)×(1,1,0)12 with drift,其AIC值为228.29,估计值方差为6.109。

分别对两种模型进行拟合,利用极大似然法估计模型参数。

arima1<-Arima(x,order=c(0,1,2),seasonal=list(order=c(1,1,1),period=12))

arima2<-Arima(x,order=c(0,0,0),seasonal=list(order=c(1,1,0),period=12), include.drift=T)

可以得出两种模型的参数都显著非零。用“Box.test”语句“Ljung-Box”统计量对模型的残差值进行白噪声检验,各阶延迟下P值都大于0.05,表明模型残差没有明显的自相关性。从残差时序图中也可观察到2011年10月的残差较大。

3.3 数据预测

我们采用auto.arima自动拟合得到的模型进行预测。R语言的forecast扩展包有许多函数能完成预测工作。利用时序交叉验证的方法,即利用逐渐增加长度的训练集来预测未来固定长度的测试集,最后将多次交叉验证的模型评价指标取平均数,得到5种对测试集的预测精度的度量(图6),除了MPE其他的精度度量大体上有类似的趋势,且都稳定在比较的小范围内。

利用x.fore<-forecast(arima2,h=12)语句,预测2015年1-12月的航材需求量,同时绘制相关图表见表3和图7。从图中可以看出原序列与模拟序列拟合效果较好,SARIMA模型可以充分挖掘时间序列信息,比较精准地预测航材需求量。

4  结束语

以上是对某航材月需求量数据进行分析研究,主要使用基于R语言的时间序列分析方法。通过趋势差分和季节性差分,将时间序列进行平稳化处理,充分考虑季节效应相关性和其它因素对航材需求的影响,建立SARIMA模型。对于大多数消耗件的需求量时间序列而言,各种因素是相对确定的,因此在一段时期内,可以大致认为相关因素对预测对象的影响及其自身的变化趋势是有规律性的,时间序列预测是在长期的实际情况下达到平衡状态时做出预测。SARIMA模型可充分利用数据的滞后项及残差,提取历史数据中随机性较强不易提取的确定性因素,对未来航材需求做短期预测的预测误差较小,符合航材的实际需求。通过R软件可以轻松实现模型的估计、检验和拟合,既方便又实用。

参考文献:

[1]劉峰,朱妮,邱琳,等.ARIMA乘积季节模型在陕西省手足口病预测中的应用[J].中华流行病学杂志,2016,37(8):1117-1120.

[2]王燕.时间序列分析:基于R[M].北京:中华人民大学出版社,2015:158-160.

[3]刘信斌,沐爱琴,辛安,等.基于ARIMA模型的航材需求预测[J].价值工程,2016,35(24):250-251.

[4]施怡.基于R语言ARIMA模型的全国硕士研究生报名人数预测研究[J].电脑知识与技术,2018,14(8):212-214.

[5]王立志,龚玮.浅谈平稳时间序列的定阶及参数估计问题[J].重庆通信学院学报,2012,31(6):112-115.

[6]吴喜之,刘苗.应用时间序列分析[M].北京:机械工业出版社,2018:31-37.

猜你喜欢

R语言时间序列需求预测
基于贝叶斯最大熵的电动汽车充电需求预测
基于计算实验的公共交通需求预测方法
基于GPS轨迹数据进行分析改善城市交通拥挤
基于R语言的Moodle平台数据挖掘技术的研究
注重统计思维培养与应用为主导的生物统计学课程建设
中国中长期煤炭需求预测
我国卷烟需求预测研究述评