基于ARMA与LSTM的CPI经济指标分析与预测方法研究
2021-11-06罗俊霞丁邦旭
罗俊霞,丁邦旭
(1.铜陵学院 经济学院,安徽 铜陵 244061;2.铜陵学院 数学与计算机学院,安徽 铜陵 244061)
1 引言
CPI(Consumer Price Index)是衡量物价水平高低的指标,反映消费品物价及服务价格变动情况,是宏观经济分析与国民经济核算的重要指标,也是政府进行经济决策时的重要参考。CPI上涨意味着物价上涨,有可能出现通货膨胀,导致货币贬值,最终使居民收入缩水,购买力下降。一般来说,CPI的高低直接影响国家的宏观经济调控措施的出台与力度,同时间接影响资本市场变化。
2008 年以来,中国CPI 在经历了几次大的波动后,逐渐进入到总体平稳状态。2008 年受美国次贷危机的全球影响,中国CPI 指数从2008 年峰值109快速下降到2009 年低谷98。伴随着世界范围的货币宽松政策,全球经济逐渐复苏,2009 年下半年后CPI 进入上行趋势,至2011 年7 月CPI 值达到106,2012年之后CPI有所回落并逐渐在小幅度内保持总体稳定态势。
CPI 指数是一个相对滞后的数据指数,通常是反映市场经济的一个重要指标。为了进行CPI 预测,选取了我国2008年1月至2019年10月共142个月份的CPI指数数据,该数据集命名为CPIData。以CPIData 数据集建立自回归滑动平均模型(AutoRe‐gressive Moving Average,ARMA)并进行了数据分析,采用长短时记忆网络(Long Short-Term Memo‐ry,LSTM)算法对全国CPI 数据集CPIData 进行了预测。
2 ARMA模型
2.1 ARMA模型
ARMA 模型称为自回归滑动平均模型,是研究平稳随机过程的典型方法,与AR 模型和与MA 模型相比,具有更高准确度谱估计、更优的谱分辨率性能,参数估计更复杂。ARMA 模型参数估计通常采用线性最小二乘法进行模型参数估算,能实现ARMA模型参数的高精度估计[1,2]。
用于预测的时序数据通常为一个随机数据序列,时序数据集表征数据的随机性、数据与时间的关联性。由于时序数据序列受时间等相关因素影响,设其影响因素为x1,x2,…,xp以回归法公式(1)表示:
公式(1)中:Y为预测数据的观测值,Z为误差,βi为影响因素xi的系数。预测数据Yt与它的影响因素和时间相关,其规律计算方法以公式(2)表示:
误差项在时间向量上具有依存关系,以公式(3)表示:
由此,获得ARMA模型表达式:
故ARMA(p,q)自回归滑动平均模型的表达式如下:
ARMA(p,q)平稳性的条件是方程Φ(L)=0 的根都在单位圆之外;可逆性条件是方程Θ(L)=0 的根全部在单位圆之外[3-5]。
2.2 数据平稳性分析
时序序列分析方法有频域分析和时域分析两种方式。频域分析又称为谱分析,是一种纵向数据分析方法。时域分析是计算序列数据随时间向量的变化规律相关度。按照统计的特征是否随时间变化,时域分析时产生的时序序列随机过程数据分为两类:(1)特征随时间变化:如GDP 时序序列通常随时间变化稳定增长,则此数据序列的随机过程是非平稳的;(2)特征不随时间变化:如每年各季节的气温时序数据序列随机过程是相似的,则此过程是平稳的。
ARMA 模型建模时,首先采用单位根检验(Augmented Dickey-Fuller,ADF)进行时序序列平稳性检验。对于非平稳时序序列,采取对数方式进行差分处理,然后判断处理后的序列平稳性。判断CPIData 是否为平稳性数据集,可利用ARMA 模型对CPIData 数据集采用ADF 进行平稳性检验,返回值依次为adf、P-value、usedlag、nobs、critical values、icbest、regresults、resstore。ADF 检验的原假设存在单位根,当该统计值小于1%,即可以确定地拒绝原假设,判定CPIData数据集为平稳序列[4,6]。
CPIData 数据集的平稳性检验过程为:(1)以1%、5%、10%不同的level 拒绝原假设的统计值与adf 的值比较,若adf 的值同时小于1%、5%、10%,即说明非常好地拒绝该假设。经测试,得到1 阶差分后adf 的值为-5.74,小于3 个level 的统计值;(2)判断P-value 是否非常接近0。CPIData 数据序列经过1阶差分后趋于平稳,P-value值为0.0000006258,接近于0,即可判断该数据集平稳。
2.3 数据相关性分析
2.3.1 相关性检验
若平稳时序序列数据集不具有相关性,则不能建立ARMA 模型进行数据分析,因为非相关时序序列为纯随机序列,即白噪声序列,表示此种序列数据集的前序行为对将来的数据变化不产生影响,即不能从已有时序数据中预测数据值变化规律。白噪声序列具有两个重要性质:(1)纯随机性;(2)方差齐性。纯随机性通常采用异方差性检验的Q 统计量进行检验;当假设方差齐性成立时,采用最小二乘法进行模型参数估计以其保证参数准确,然后进行F检验[5,6]。
2.3.2 线性相关性
进行时序序列分析时,通常采用自相关函数(Autocorrelation Function,ACF)、偏自相关函数(Partial Autocorrelation Function,PACF)计算AR‐MA(p,q)模型的系数和阶数。ACF 表示预测值与过去的数据值之间的线性相关性。PACF 表示在时序序列给定中间观测值的条件下预测值与过去的数据值之间的线性相关性。
采用ARMA 模型的AIC 法则计算3 个模型的aic、bic、hqic,得到3组数据:
选取ARMA(0,3)模型的最小值,以避免出现过拟合的情况发生。
2.4 残差分析
残差是指观测值与预测值之间的差,即实际观察值与回归估计值的差。残差分析是通过残差序列分析时序序列模型的可靠性、周期性,用于判断序列是否适合回归分析。在进行回归分析时,观测值与按回归计算得到预测值的差,以δ表示。残差δ应按正态分布Yt=N(0,σ2)。
残差分析步骤一般包括:异常值检验、方差齐次性检验、残差正态性检验、相关性检验、时序序列数据集变换。图1 与图2 给出了CPIData 数据集的ARMA(0,3)模型ACF 与PACF 残差序列,可看出CPIData数据集适合进行回归分析。
图1 ARMA(0,3)模型ACF残差
图2 ARMA(0,3)模型PACF残差
2.5 D-W检验
D-W 检验又称德宾-沃森检验,是目前检验时序序列的自相关性常用方法,但它只适用于检验1阶自相关性。自相关系数ρ的值区间为:-1<ρ<1,而其界限为:0≤DW≤4。当DW=0 andρ=1 时,即存在正自相关性;当DW=4 andρ=-1 时,即存在负自相关性;当DW=2 andρ=0时,即不存在1阶自相关性。推论:当DW 值接近于0 或4 时,则存在自相关性,而接近于2时,则不存在1阶自相关性。
根据图1 与图2 残差分析得到的结果,可以看出残差序列属于1 阶模型,然后进行D-W 检验,检验结果DW 值为1.9997861751031931,接近于2,据此说明该残差序列不存在自相关性。
经上述相关分析与参数估计实验,对该模型的参数估计结果进行了检验,这一过程主要验证了所选用的ARMA 分析模型适合于时序序列分析,并得出所检验的CPIData时序序列可以执行预测计算。
3 LSTM模型
LSTM 的神经网络结构独特,广泛应用于自然语言处理、语音识别、经济预测等领域。LSTM 的预测准确性通常比循环神经网络(Recurrent Neural Network,RNN)及隐马尔科夫模型(Hidden Mar‐kov Model,HMM)更好。作为非线性模型,LSTM可作为复杂的非线性单元,用于构造大型深度神经网络[7,8]。
LSTM 是循环神经网络RNN 的一种变体,与RNN 相比,LSTM 网络通过门控制将短期记忆与长期记忆结合起来,解决了RNN 的梯度消失问题,可以处理长序列数据,能更好地预测序列数据[8]。
3.1 RNN
循环神经网路RNN 是一种特殊结构的神经网络,其某一序列当前的输出与前面隐藏层的state 相关,即隐藏层的input 包括input 层与上一时刻隐藏层的state输出。
RNN 循环神经网络是时间循环神经网络和结构循环神经网络的总称。时间循环神经网络的神经元之间的连接构成有向图,而结构循环神经网络利用相似的神经网络结构递归构造更为复杂的深度网络。RNN 一般是指时间循环神经网络,可以描述动态时间行为。与前馈神经网络FNN(feedfor‐ward neural network)的input 层有所不同,RNN 将state 在自身网络中循环传递,因此可以接受长时序序列数据输入[8,9]。典型的RNN结构如图3所示。
图3 RNN神经网络结构图
(1)Xt是t时刻的输入向量;
(2)St是隐藏层在t时刻的state 值,它是神经网络记忆单元,St基于前一个隐藏层state 值与与当前的输入向量Xt计算得到:St=f(U⋅Xt+W⋅St-1),函数f通常是非线性函数,例如:tanh或ReLU。St的值取决于Xt,St-1;
(3)Ot是在t时刻的输出向量,Ot=g(V⋅St),g为分类器。例如:Ot=soft max(V⋅St)。
3.2 LSTM
LSTM 神经网络模型是RNN 的一种变体,被改良后在自然语言处理、经济预测等领域得到了广泛应用。LSTM 模型在RNN 结构上增加了各层多个节点的阈门。阈门包括3 类:遗忘门forget gate、输入门input gate、输出门output gate。这些阈门可以打开或关闭,用于控制LSTM 模型前一网络的state的记忆态,在该层output gate 值是否达到阈值从而合并到该层进行计算。节点阈门利用判别函数sig‐moid将网络的记忆态作为输入计算,若输出门达到阈值,则将该阈门输出与当前层的计算结果进行softmax计算作为下一层的输入;若输出门未达到阈值,则该输出结果被舍弃。LSTM 每一层各节点阈门的权值,都会在每次模型反向传播训练过程中进行更新[8-10]。
LSTM 的完整结构由多个LSTM 单元按时序序列构成,最终实现对长时序序列数据的精准预测与分析。图4为LSTM的神经网络计算单元。
图4 LSTM神经网络单元
按LSTM 神经网络前向传播过程,其核心计算思想如下[8,11]:
(1)LSTM 确定从cell 的状态中丢弃什么信息,由遗忘门层完成;
(2)确定新信息被存放于cell状态中;
(3)将上一状态Ct-1与ft相乘,丢弃掉该层确定需要丢弃的信息,并加上即成为新的候选值决定该层的状态进行更新;
(4)基于LSTM 的神经网络单元状态,最终确定输出值。
4 实验结果与分析
4.1 数据处理
以月为时间单位分析CPIData 数据序列中142个月份的CPI 值,采用MinMaxScaler 方法实现数据预处理,将数据标准化到(0,1)区间。在原有t个时刻数据列的基础上,需增加一列t+1 天的数据,因为LSTM 模型采用反向传播神经网络算法,通过时序序列进行反向传播,让模型识别为当天的数据与前一天有关联。同时将CPIData 数据集按照训练集80%,测试集20%进行数据集划分,分别执行模型训练与数据预测计算。
4.2 实验结果分析
4.2.1 ARMA模型数据分析
ARMA 模型对时序序列的要求是平稳型,其没有固定的上升或下降的趋势,即可判断CPIData 数据集为平稳序列。若不进行差分操作,同时使用ADF对CPIData数据序列进行平稳性检验。得到的结果如下:adf值为
(-5.74155499,6.25847160e-07,11,101,{'1%':-3.49681817,'5%':-2.89061075,'10%':-2.58227705},123.35230744)。将CPIData 数据序列经1 阶差分后p-value 值为0.0000006258,趋于平稳。CPIData 数据序列经过1 阶差分后不具有相关性,为白噪声序列。
4.2.2 ARMA模型预测结果分析
采用ARMA 模型对CPIData 数据分析后并进行数据预测,得到的结果为:平均绝对误差0.6223,均方根误差0.7284,平均绝对百分误差0.006089。ARMA 模型预测得到的最后8 个月的CPI 值为:102.23472048,102.18699822,102.08742449,102.20539888,101.97069279,102.18424042,101.89853904,102.11758266。
图5 演示了真实数据和模型拟合数据的可视化,从图中可以看出,模型基本上模拟出了原始序列的变化趋势,平均绝对误差为0.6223 MSE,但预测结果值与测试集数据值存在一定的偏差。
图5 ARMA模型与真实数据对比图
4.2.3 LSTM模型预测结果分析
按照训练集80%、测试集20%对CPIData 数据集进行划分,采用LSTM 算法进行神经网络训练和预测,得到的结果如图6所示。
图6 LSTM数据预测曲线图
经过测试得到LSTM算法的训练集损失稳定在0.0187,测试集损失为0.0196。训练集Train Score:0.2655MSE,测试集Test Score:0.2783MSE。损失曲线如图7所示。
图7 损失曲线图
采用MinMaxScaler 数据处理方法对 CPIData数据集进行标准化后,再利用LSTM 算法基于训练集进行训练,并将得到的预测结果进行标准化,得到标准化的原数据序列与预测数据序列对比图,如图8所示。从图8中可得出:LSTM 算法预测得到的结果与原数据变化趋势相吻合,数据损失为0.0196,预测结果准确度高。
图8 LSTM模型数据对比图
5 结论
本文采用了ARMA 模型与LSTM 神经网络模型分析与预测了CPIData 时序数据集,并对实验结果进行了分析。采用ARMA模型对CPIData数据集进行平稳性检验,通过ACF 和PACF 进行数据相关性分析、残差分析、D-W 检验。经上述步骤对CPI‐Data 时序数据集进行检验与分析,证明了该数据序列不具有自相关性,适合进行数据预测。将CPIDa‐ta 数据集进行数据集划分与标准化后,采用LSTM算法对该数据集进行训练与预测,其损失为0.0196,预测得到的结果与原数据变化趋势相吻合,验证了LSTM算法具有更好的预测效果。