摘 要: 时序模型作为一种预测方法,在货运量预测、机场客流量预测、疾病发病率预测、空气质量预测等许多重要的领域具有广泛的应用。本文利用大同市2016年1月到2019年8月共44个月的空气质量综合指数数据样本,使用牛顿插值进行了缺失值插补,根据给定的数据序列进行了时序图、自相关图和偏自相关图的构建。然后,进行单位根检验,判断出序列为平稳非白噪声序列。本文使用相对最优模型识别方法确立模型的p、q值,最终建立ARIMA(2,0,1)模型,对2019年9-12月的空气质量综合指数进行预测。通过对模型的分析,判断预测值比较准确。
关键词: ARIMA;时序分析;非白噪声序列;平稳序列
中图分类号: TP391 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.12.020
本文著录格式:张叶娥,高云. 基于ARIMA模型的大同市空气质量预测研究[J]. 软件,2019,40(12):8589
Research on Air Quality Prediction in DaTong Based on ARIMA Model
ZHANG Ye-e, GAO Yun
(School of Computer and Network Engineering, Shanxi Datong University, Datong,Shanxi 037009, China)
【Abstract】: As a forecasting method, time series model has been widely used in many important fields,such as cargo volume prediction, airport passenger flow prediction, disease incidence prediction, and air quality prediction. In this paper, 44 months of air quality composite index data samples from January 2016 to August 2019 in datong city were used to carry out missing value interpolation with Newton interpolation, and time sequence, autocorrelation and partial autocorrelation were constructed according to the given data sequence. Then, the unit root test is carried out and the sequence is determined to be a stationary non-white noise sequence. In this paper,The relative optimal model identification method was used to establish the p and q values of the model, and finally the ARIMA(2,0,1) model was established to predict the air quality index from September to December 2019. Through the analysis of the model, the prediction value is more accurate.
【Key words】: ARIMA; Time series analysis; Non-White noise sequence; Stationary series
0 引言
城市的空气质量问题与居民的健康、生活、交通等问题息息相关,因此城市空气质量成为城市居民关注的焦点问题。随着大同市经济的高速发展,城市人口、交通工具、石化能源消费剧增,由此带来的污染问题对城市环境的影响倍受关注。完善大同市城市空气质量检测体系,对城市空气质量检测历史数据的变化进行分析,预测未来的空气质量,对即将可能出现的空气质量问题进行预防和治理,对城市环境建设具有非常重要的意义。
1 预测方法
目前,常用的预测方法有BP神经网络和时间序列分析法,邱晨等人研究了基于BP神经网络的空气质量模型分类预测,建立了三层神经网络數学模型,对空气质量等级进行分类预测,预测准确率达到90%[1]。基于BP神经网络的预测模型虽然收敛效果好,精度高,但易于陷入局部最优、过拟合。孟庆云等人应用时间序列分析法对天津市空气质量各项指标进行了预测分析,预测结果较理想[2]。
由于大同市的空气质量具有周期性和季节性,空气质量的预测问题包含了时间的分量,所以采用时间序列分析法易于进行预测。但由于数据具有缺失值,本文进行了数据插补。对大同市空气质量时序数据,首先需要时序分析的预处理,然后在此基础上建立时序分析模型,进行空气质量预测。
1.1 时序分析
时序分析方法是以概率统计学为基础,利用时序监测数据,建立相应的数学模型,描述时序状态,以便预测未来的方法。本文应用时间序列进行分析,使用一个给定的已被观测了的时间序列,即大同市2016年1月到2019年8月共44个月的空气质量综合指数数据样本,来预测该序列的未来值。
1.2 时序分析的预处理
获得大同市2016年1月到2019年8月共44个月的空气质量综合指数数据样本后,首先要进行时序分析的预处理,检查序列的平稳性和纯随机性。
1.2.1 平稳性检验
(1)时序图检验
检验大同市2016年1月到2019年8月共44个月的空气质量综合指数数据样本的时序图,判断该序列值是否始终在一个常数附近波动,并且波动的范围有界,确定数据序列是否为平稳序列。如果不是,那么数据序列为非平稳序列,需要通过差分运算,使得序列成为平稳序列。
(2)自相关图、偏自相关图检验
利用自相关图对大同市2019年8月共44个月的空气质量综合指数数据样本进行平稳性检验,自相关系数如果随着延迟期数的增加,以较快的速度趋向于零,并在零附近随机波动,则序列为平稳序列,否则为非平稳序列。利用偏自相关图对数据样本进行平稳性检验,看偏自相关系数是否随着延迟期数的增加超出置信度的上下限,如果没超出则为平稳序列,否则,序列为非平稳序列。
(3)单位根检验
检验大同市2019年8月共44个月的空气质量综合指数序列中是否存在单位根,不存在单位根的序列为平稳序列,否则为非平稳序列。
1.2.2 纯随机性检验
纯随机检验也称白噪声检验,通过大同市2019年8月共44个月的空气质量综合指数数据样本各延迟期数的自相关系数,计算得到检验统计量,判断是否为白噪声序列,若是,则停止对该序列的分析。
1.3 ARIMA模型
ARIMA模型,又称自回归移动平均模型,是20世纪70年代初由博克思(Box)和詹金斯(Jenkins)提出的时间序列预测方法。其中ARIMA (p,d,q)模型是由差分运算与ARIMA (p,q)模型组合而成,其中,p是自回归模型的阶数,d是差分的阶数,q是移动平均的阶数[5]。
实际应用中的绝大部分序列都是非平稳的,将非平稳序列采用差分运算转换成差分平稳序列,这样就可以使用ARIMA模型进行建模分析。
差分平稳时间序列建模步骤如图1所示。
图1 差分平稳时间序列建模步骤图
Fig.1 Differential stationary time series
modeling step diagram
2 使用ARIMA模型实现大同市空气质量的预测分析
本文在Python中实现ARIMA模型建模过程,使用了StatsModels库,对于通常的数据探索任务来说,Numpy和Pandas的结合是够用的,但是对于较为深入的统计模型时,就会使用StatsModels。
本文选用的数据为2016年1月至2019年8月的大同市共44个月的空气质量综合指数,通过对这44个月的空气质量综合指标建立模型,预测2019年9月到12月的空气质量综合指数。本文选用的数据视为无异常值数据,但是有缺失值。
其基本步骤是:(1)以已有数据为基础,进行数据插补补足缺失值。(2)以原有数据和补足的缺失值数据为依据,区别不规则变动、循环变动、季节变动等不同时间的动势,特别是连续的长期动势。(3)运用ARIMA求出时间序列以及将来时态的各项预测值。
2.1 缺失值补足
本文获取的数据中,存在着4个月数据缺失,原始数据如图2所示。
图2 大同市空气质量月报数据图
Fig.2 Datong city air quality monthly data map
处理缺失值可以采用数据插补的方法,在众多插补方法中,牛顿插值法使用较为普遍,所以本文采用了牛顿插值法来进行缺失值补足。
2.1.1 牛顿插值法
对于平面上已知的n个点(无两点在一条直线上)可以找到n-1次多项式y=a0+a1x+a2x2+…+ an-1xn-1,使此多项式曲线过这n个点[6]。
(1)求已知的n个点对(x1,y1),(x2,y2)…(xn,yn)的所有阶差商公式
(2)联立以上商差公式建立如下插值多项式
其中,
.
P(x)为牛顿插值逼近函数,R(x)为误差函数。
2.1.2 使用牛顿插值法进行插补
Python中使用的Scipy库是建立在Numpy的基础之上,基于Python生态的一款开源数值计算,是用于科学与工程应用的开源软件。本文应用牛顿插值法对缺失值进行插补,使用缺失值前后各5个未缺失的数据参与建模,在插值之前会对数据进行異常值检测,异常值大于50也定义为空缺值(本文不存在异常值),进行补数。
缺失值插补后的数据如图3所示。
图3 缺失值插补后的数据图
Fig.3 Data diagram after missing value interpolation
分析插补值可知,缺失的月份分别为6、9和12月,6月大同市天气比较舒适,不需要使用空调,不影响空气质量;12月大同市已经进入了供暖期,供暖对空气造成一定程度污染,这两个月的插补值比较准确。9月空气质量应该与6月比较接近,这里的插补值略微偏大,一定程度上会对预测结果造成影响,但是综合几个月来看,影响在可接受范围内。
2.2 ARIMA模型的建立
使用ARIMA建模,步骤如下:
(1)检验序列的平稳性
2016年1月至2019年8月的大同市共44个月的空气质量综合指数的数据序列时序图如图4所示。
检验数据序列的平稳性,对应的自相关图和偏自相关图,如图5、图6所示。
图4 数据序列的时序图
Fig.4 Time series of data series
图5 数据序列的自相关图
Fig.5 Autocorrelation diagram of data series
图6 数据序列的偏自相关图
Fig.6 Partial autocorrelation diagram of data series
数据序列的ADF(单位根)检验结果为: (–4.360335390121504, 0.0003486671586324529, 6, 37, {'1%': –3.6209175221605827, '5%': –2.9435394610388332, '10%': –2.6104002410518627}, 82.97142692734585)
表1 数据序列的单位根检验
Tab.1 Unit root test for data series
adf cValue p值
1% 5% 10%
–4.36 –3.6209 –2.9436 –2.6104 0.0003
结果显示,数据序列的时序图在其均值附近进行比较平稳的波动、自相关图具有很强的短期相关性、单位根检验p值远小于0.05,adf值小于三个水平值,所以数据序列是平稳序列,不需要再进行差分运算。
(2)数据序列的白噪声检验
数据序列的白噪声检验结果为:(array ([17.38442578]), array([3.05317522e-05]))。
表2 数据序列的白噪声检验
Tab.2 White noise test of data series
stat p值
17.3844 3.05317522e-05
输出的p值远远小于0.05,所以数据序列是平稳非白噪声序列。
(3)对数据的平稳非白噪声序列拟合ARMA 模型。
对模型的拟合可以通过人为识别的方法,此时序列的自相关图和偏自相关图均显示出拖尾性,所以可以考虑使用ARMA(2,1)模型拟合该序列。
但是人为识别的方法会带有很大的主观性并受到历史经验的限制,所以实际应用中通常会采用相对最优模型识别的方法来拟合模型,即计算ARMA(p,q)。本文采用了44条数据量,计算时p和q的值即一般阶数不超过44/10。计算当p和q均小于等于4时的所有组合的BIC信息量,这里取其中BIC信息量达到最小的模型阶数。计算出当p和q均小于等于4时的BIC矩阵如图7所示。
图7 BIC矩阵图
Fig.7 BIC matrix diagram
p值为2、q值为1时最小BIC值为122.637017,p、q定阶完成,原始序列不需要差分运算,序列建立模型为ARIMA(2,0,1)。
2.3 ARIMA模型分析
(1)模型检验
残差为白噪声序列。
(2)参数检验和参数估计
使用了ARMA模型进行建模,BIC、AIC和HQIC值见表3所示。
表3 BIC、AIC和HQIC值
Tab.3 BIC, AIC and HQIC values
BIC AIC HQIC
122.6370 113.7161 117.024
模型参数见表4所示。
表4 模型参数表
Tab.4 Model parameter table
Coef Std.Err t
const 5.1266 0.0338 151.5411
ar.L1.空气综合指数 1.4780 0.0980 15.0815
ar.L2.空气综合指数 –0.7389 0.0969 –7.6242
ma.L1.空气综合指数 –1.0000 0.0695 –14.3854
(3)ARIMA模型预测
应用ARIMA(2,0,1)对给空气质量数据做为期4个月的预测,结果如表5所示。
表5 2019年9-12月空气质量数据预测表
Tab.5 Forecast Table of Air Quality Data for
September-December 2019
2019-9 2019-10 2019-11 2019-12
4.50285477 5.48054205 6.11064921 6.31951199
3 结论
本文采用了ARIMA(2,0,1)模型,利用历史44个月的大同市空气质量指标数据进行了4个月的数据预测,从预测结果来看,所得空气质量指标数据与往年同期相比,符合相关规律,与2019年1-8月相比,符合本年天气变化规律。即预测数据符合短期相关性。但时间预测的典型特点是利用模型向前预测的时期越长,预测的误差将会越大。
参考文献
[1]邱晨, 罗璟, 赵朝文, 等. 基于BP神经网络的空气质量模型分类预测研究[J]. 软件, 2019, 40(2): 129-132.
[2]孟庆云, 张若晴, 袁朱红, 等. 基于ARIMA模型的天津市空气质量各项指标的预测分析[J]. 农业灾害研究, 2018, 8(5): 44-45.
[3]Mehdi Khashei, Zahra Hajirahimi. A comparative study of series arima/mlp hybrid models for stock price forecasting[J]. Communications in Statistics - Simulation and Computation, 2019, 48(9).
[4]敖建松, 尚文利, 趙剑明, 等. 基于ARIMA预测修正的工控系统态势理解算法[J/OL]. 计算机应用研究: 1-5 [2019-09-25]. https://doi.org/10.19734/j.issn.1001-3695.2019.05. 0148.
[5]李苑辉, 刘夏, 欧志鹏. 基于ARIMA 模型的三亚机场客流量预测[J]. 软件, 2018, 39(7): 42-47.
[6]高萌. 抵御黑洞攻击的牛顿插值备份路由协议研究[D]. 中国矿业大学, 2017.
[7]赵朝文, 罗璟, 邱晨. 基于ARIMA模型与Winter模型的水运货运量预测比较[J]. 软件, 2019, 40(1): 172-178.
[8]张良均, 王璐等. Python数据分析与挖掘实战[M]. 北京: 机械工业出版社, 2016.