羅俊霞,丁邦旭
(1.銅陵學(xué)院 經(jīng)濟(jì)學(xué)院,安徽 銅陵 244061;2.銅陵學(xué)院 數(shù)學(xué)與計算機(jī)學(xué)院,安徽 銅陵 244061)
CPI(Consumer Price Index)是衡量物價水平高低的指標(biāo),反映消費品物價及服務(wù)價格變動情況,是宏觀經(jīng)濟(jì)分析與國民經(jīng)濟(jì)核算的重要指標(biāo),也是政府進(jìn)行經(jīng)濟(jì)決策時的重要參考。CPI上漲意味著物價上漲,有可能出現(xiàn)通貨膨脹,導(dǎo)致貨幣貶值,最終使居民收入縮水,購買力下降。一般來說,CPI的高低直接影響國家的宏觀經(jīng)濟(jì)調(diào)控措施的出臺與力度,同時間接影響資本市場變化。
2008 年以來,中國CPI 在經(jīng)歷了幾次大的波動后,逐漸進(jìn)入到總體平穩(wěn)狀態(tài)。2008 年受美國次貸危機(jī)的全球影響,中國CPI 指數(shù)從2008 年峰值109快速下降到2009 年低谷98。伴隨著世界范圍的貨幣寬松政策,全球經(jīng)濟(jì)逐漸復(fù)蘇,2009 年下半年后CPI 進(jìn)入上行趨勢,至2011 年7 月CPI 值達(dá)到106,2012年之后CPI有所回落并逐漸在小幅度內(nèi)保持總體穩(wěn)定態(tài)勢。
CPI 指數(shù)是一個相對滯后的數(shù)據(jù)指數(shù),通常是反映市場經(jīng)濟(jì)的一個重要指標(biāo)。為了進(jìn)行CPI 預(yù)測,選取了我國2008年1月至2019年10月共142個月份的CPI指數(shù)數(shù)據(jù),該數(shù)據(jù)集命名為CPIData。以CPIData 數(shù)據(jù)集建立自回歸滑動平均模型(AutoRe‐gressive Moving Average,ARMA)并進(jìn)行了數(shù)據(jù)分析,采用長短時記憶網(wǎng)絡(luò)(Long Short-Term Memo‐ry,LSTM)算法對全國CPI 數(shù)據(jù)集CPIData 進(jìn)行了預(yù)測。
ARMA 模型稱為自回歸滑動平均模型,是研究平穩(wěn)隨機(jī)過程的典型方法,與AR 模型和與MA 模型相比,具有更高準(zhǔn)確度譜估計、更優(yōu)的譜分辨率性能,參數(shù)估計更復(fù)雜。ARMA 模型參數(shù)估計通常采用線性最小二乘法進(jìn)行模型參數(shù)估算,能實現(xiàn)ARMA模型參數(shù)的高精度估計[1,2]。
用于預(yù)測的時序數(shù)據(jù)通常為一個隨機(jī)數(shù)據(jù)序列,時序數(shù)據(jù)集表征數(shù)據(jù)的隨機(jī)性、數(shù)據(jù)與時間的關(guān)聯(lián)性。由于時序數(shù)據(jù)序列受時間等相關(guān)因素影響,設(shè)其影響因素為x1,x2,…,xp以回歸法公式(1)表示:
公式(1)中:Y為預(yù)測數(shù)據(jù)的觀測值,Z為誤差,βi為影響因素xi的系數(shù)。預(yù)測數(shù)據(jù)Yt與它的影響因素和時間相關(guān),其規(guī)律計算方法以公式(2)表示:
誤差項在時間向量上具有依存關(guān)系,以公式(3)表示:
由此,獲得ARMA模型表達(dá)式:
故ARMA(p,q)自回歸滑動平均模型的表達(dá)式如下:
ARMA(p,q)平穩(wěn)性的條件是方程Φ(L)=0 的根都在單位圓之外;可逆性條件是方程Θ(L)=0 的根全部在單位圓之外[3-5]。
時序序列分析方法有頻域分析和時域分析兩種方式。頻域分析又稱為譜分析,是一種縱向數(shù)據(jù)分析方法。時域分析是計算序列數(shù)據(jù)隨時間向量的變化規(guī)律相關(guān)度。按照統(tǒng)計的特征是否隨時間變化,時域分析時產(chǎn)生的時序序列隨機(jī)過程數(shù)據(jù)分為兩類:(1)特征隨時間變化:如GDP 時序序列通常隨時間變化穩(wěn)定增長,則此數(shù)據(jù)序列的隨機(jī)過程是非平穩(wěn)的;(2)特征不隨時間變化:如每年各季節(jié)的氣溫時序數(shù)據(jù)序列隨機(jī)過程是相似的,則此過程是平穩(wěn)的。
ARMA 模型建模時,首先采用單位根檢驗(Augmented Dickey-Fuller,ADF)進(jìn)行時序序列平穩(wěn)性檢驗。對于非平穩(wěn)時序序列,采取對數(shù)方式進(jìn)行差分處理,然后判斷處理后的序列平穩(wěn)性。判斷CPIData 是否為平穩(wěn)性數(shù)據(jù)集,可利用ARMA 模型對CPIData 數(shù)據(jù)集采用ADF 進(jìn)行平穩(wěn)性檢驗,返回值依次為adf、P-value、usedlag、nobs、critical values、icbest、regresults、resstore。ADF 檢驗的原假設(shè)存在單位根,當(dāng)該統(tǒng)計值小于1%,即可以確定地拒絕原假設(shè),判定CPIData數(shù)據(jù)集為平穩(wěn)序列[4,6]。
CPIData 數(shù)據(jù)集的平穩(wěn)性檢驗過程為:(1)以1%、5%、10%不同的level 拒絕原假設(shè)的統(tǒng)計值與adf 的值比較,若adf 的值同時小于1%、5%、10%,即說明非常好地拒絕該假設(shè)。經(jīng)測試,得到1 階差分后adf 的值為-5.74,小于3 個level 的統(tǒng)計值;(2)判斷P-value 是否非常接近0。CPIData 數(shù)據(jù)序列經(jīng)過1階差分后趨于平穩(wěn),P-value值為0.0000006258,接近于0,即可判斷該數(shù)據(jù)集平穩(wěn)。
2.3.1 相關(guān)性檢驗
若平穩(wěn)時序序列數(shù)據(jù)集不具有相關(guān)性,則不能建立ARMA 模型進(jìn)行數(shù)據(jù)分析,因為非相關(guān)時序序列為純隨機(jī)序列,即白噪聲序列,表示此種序列數(shù)據(jù)集的前序行為對將來的數(shù)據(jù)變化不產(chǎn)生影響,即不能從已有時序數(shù)據(jù)中預(yù)測數(shù)據(jù)值變化規(guī)律。白噪聲序列具有兩個重要性質(zhì):(1)純隨機(jī)性;(2)方差齊性。純隨機(jī)性通常采用異方差性檢驗的Q 統(tǒng)計量進(jìn)行檢驗;當(dāng)假設(shè)方差齊性成立時,采用最小二乘法進(jìn)行模型參數(shù)估計以其保證參數(shù)準(zhǔn)確,然后進(jìn)行F檢驗[5,6]。
2.3.2 線性相關(guān)性
進(jìn)行時序序列分析時,通常采用自相關(guān)函數(shù)(Autocorrelation Function,ACF)、偏自相關(guān)函數(shù)(Partial Autocorrelation Function,PACF)計算AR‐MA(p,q)模型的系數(shù)和階數(shù)。ACF 表示預(yù)測值與過去的數(shù)據(jù)值之間的線性相關(guān)性。PACF 表示在時序序列給定中間觀測值的條件下預(yù)測值與過去的數(shù)據(jù)值之間的線性相關(guān)性。
采用ARMA 模型的AIC 法則計算3 個模型的aic、bic、hqic,得到3組數(shù)據(jù):
選取ARMA(0,3)模型的最小值,以避免出現(xiàn)過擬合的情況發(fā)生。
殘差是指觀測值與預(yù)測值之間的差,即實際觀察值與回歸估計值的差。殘差分析是通過殘差序列分析時序序列模型的可靠性、周期性,用于判斷序列是否適合回歸分析。在進(jìn)行回歸分析時,觀測值與按回歸計算得到預(yù)測值的差,以δ表示。殘差δ應(yīng)按正態(tài)分布Yt=N(0,σ2)。
殘差分析步驟一般包括:異常值檢驗、方差齊次性檢驗、殘差正態(tài)性檢驗、相關(guān)性檢驗、時序序列數(shù)據(jù)集變換。圖1 與圖2 給出了CPIData 數(shù)據(jù)集的ARMA(0,3)模型ACF 與PACF 殘差序列,可看出CPIData數(shù)據(jù)集適合進(jìn)行回歸分析。
圖1 ARMA(0,3)模型ACF殘差
圖2 ARMA(0,3)模型PACF殘差
D-W 檢驗又稱德賓-沃森檢驗,是目前檢驗時序序列的自相關(guān)性常用方法,但它只適用于檢驗1階自相關(guān)性。自相關(guān)系數(shù)ρ的值區(qū)間為:-1<ρ<1,而其界限為:0≤DW≤4。當(dāng)DW=0 andρ=1 時,即存在正自相關(guān)性;當(dāng)DW=4 andρ=-1 時,即存在負(fù)自相關(guān)性;當(dāng)DW=2 andρ=0時,即不存在1階自相關(guān)性。推論:當(dāng)DW 值接近于0 或4 時,則存在自相關(guān)性,而接近于2時,則不存在1階自相關(guān)性。
根據(jù)圖1 與圖2 殘差分析得到的結(jié)果,可以看出殘差序列屬于1 階模型,然后進(jìn)行D-W 檢驗,檢驗結(jié)果DW 值為1.9997861751031931,接近于2,據(jù)此說明該殘差序列不存在自相關(guān)性。
經(jīng)上述相關(guān)分析與參數(shù)估計實驗,對該模型的參數(shù)估計結(jié)果進(jìn)行了檢驗,這一過程主要驗證了所選用的ARMA 分析模型適合于時序序列分析,并得出所檢驗的CPIData時序序列可以執(zhí)行預(yù)測計算。
LSTM 的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)獨特,廣泛應(yīng)用于自然語言處理、語音識別、經(jīng)濟(jì)預(yù)測等領(lǐng)域。LSTM 的預(yù)測準(zhǔn)確性通常比循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)及隱馬爾科夫模型(Hidden Mar‐kov Model,HMM)更好。作為非線性模型,LSTM可作為復(fù)雜的非線性單元,用于構(gòu)造大型深度神經(jīng)網(wǎng)絡(luò)[7,8]。
LSTM 是循環(huán)神經(jīng)網(wǎng)絡(luò)RNN 的一種變體,與RNN 相比,LSTM 網(wǎng)絡(luò)通過門控制將短期記憶與長期記憶結(jié)合起來,解決了RNN 的梯度消失問題,可以處理長序列數(shù)據(jù),能更好地預(yù)測序列數(shù)據(jù)[8]。
循環(huán)神經(jīng)網(wǎng)路RNN 是一種特殊結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),其某一序列當(dāng)前的輸出與前面隱藏層的state 相關(guān),即隱藏層的input 包括input 層與上一時刻隱藏層的state輸出。
RNN 循環(huán)神經(jīng)網(wǎng)絡(luò)是時間循環(huán)神經(jīng)網(wǎng)絡(luò)和結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)的總稱。時間循環(huán)神經(jīng)網(wǎng)絡(luò)的神經(jīng)元之間的連接構(gòu)成有向圖,而結(jié)構(gòu)循環(huán)神經(jīng)網(wǎng)絡(luò)利用相似的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)遞歸構(gòu)造更為復(fù)雜的深度網(wǎng)絡(luò)。RNN 一般是指時間循環(huán)神經(jīng)網(wǎng)絡(luò),可以描述動態(tài)時間行為。與前饋神經(jīng)網(wǎng)絡(luò)FNN(feedfor‐ward neural network)的input 層有所不同,RNN 將state 在自身網(wǎng)絡(luò)中循環(huán)傳遞,因此可以接受長時序序列數(shù)據(jù)輸入[8,9]。典型的RNN結(jié)構(gòu)如圖3所示。
圖3 RNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
(1)Xt是t時刻的輸入向量;
(2)St是隱藏層在t時刻的state 值,它是神經(jīng)網(wǎng)絡(luò)記憶單元,St基于前一個隱藏層state 值與與當(dāng)前的輸入向量Xt計算得到:St=f(U?Xt+W?St-1),函數(shù)f通常是非線性函數(shù),例如:tanh或ReLU。St的值取決于Xt,St-1;
(3)Ot是在t時刻的輸出向量,Ot=g(V?St),g為分類器。例如:Ot=soft max(V?St)。
LSTM 神經(jīng)網(wǎng)絡(luò)模型是RNN 的一種變體,被改良后在自然語言處理、經(jīng)濟(jì)預(yù)測等領(lǐng)域得到了廣泛應(yīng)用。LSTM 模型在RNN 結(jié)構(gòu)上增加了各層多個節(jié)點的閾門。閾門包括3 類:遺忘門forget gate、輸入門input gate、輸出門output gate。這些閾門可以打開或關(guān)閉,用于控制LSTM 模型前一網(wǎng)絡(luò)的state的記憶態(tài),在該層output gate 值是否達(dá)到閾值從而合并到該層進(jìn)行計算。節(jié)點閾門利用判別函數(shù)sig‐moid將網(wǎng)絡(luò)的記憶態(tài)作為輸入計算,若輸出門達(dá)到閾值,則將該閾門輸出與當(dāng)前層的計算結(jié)果進(jìn)行softmax計算作為下一層的輸入;若輸出門未達(dá)到閾值,則該輸出結(jié)果被舍棄。LSTM 每一層各節(jié)點閾門的權(quán)值,都會在每次模型反向傳播訓(xùn)練過程中進(jìn)行更新[8-10]。
LSTM 的完整結(jié)構(gòu)由多個LSTM 單元按時序序列構(gòu)成,最終實現(xiàn)對長時序序列數(shù)據(jù)的精準(zhǔn)預(yù)測與分析。圖4為LSTM的神經(jīng)網(wǎng)絡(luò)計算單元。
圖4 LSTM神經(jīng)網(wǎng)絡(luò)單元
按LSTM 神經(jīng)網(wǎng)絡(luò)前向傳播過程,其核心計算思想如下[8,11]:
(1)LSTM 確定從cell 的狀態(tài)中丟棄什么信息,由遺忘門層完成;
(2)確定新信息被存放于cell狀態(tài)中;
(3)將上一狀態(tài)Ct-1與ft相乘,丟棄掉該層確定需要丟棄的信息,并加上即成為新的候選值決定該層的狀態(tài)進(jìn)行更新;
(4)基于LSTM 的神經(jīng)網(wǎng)絡(luò)單元狀態(tài),最終確定輸出值。
以月為時間單位分析CPIData 數(shù)據(jù)序列中142個月份的CPI 值,采用MinMaxScaler 方法實現(xiàn)數(shù)據(jù)預(yù)處理,將數(shù)據(jù)標(biāo)準(zhǔn)化到(0,1)區(qū)間。在原有t個時刻數(shù)據(jù)列的基礎(chǔ)上,需增加一列t+1 天的數(shù)據(jù),因為LSTM 模型采用反向傳播神經(jīng)網(wǎng)絡(luò)算法,通過時序序列進(jìn)行反向傳播,讓模型識別為當(dāng)天的數(shù)據(jù)與前一天有關(guān)聯(lián)。同時將CPIData 數(shù)據(jù)集按照訓(xùn)練集80%,測試集20%進(jìn)行數(shù)據(jù)集劃分,分別執(zhí)行模型訓(xùn)練與數(shù)據(jù)預(yù)測計算。
4.2.1 ARMA模型數(shù)據(jù)分析
ARMA 模型對時序序列的要求是平穩(wěn)型,其沒有固定的上升或下降的趨勢,即可判斷CPIData 數(shù)據(jù)集為平穩(wěn)序列。若不進(jìn)行差分操作,同時使用ADF對CPIData數(shù)據(jù)序列進(jìn)行平穩(wěn)性檢驗。得到的結(jié)果如下:adf值為
(-5.74155499,6.25847160e-07,11,101,{'1%':-3.49681817,'5%':-2.89061075,'10%':-2.58227705},123.35230744)。將CPIData 數(shù)據(jù)序列經(jīng)1 階差分后p-value 值為0.0000006258,趨于平穩(wěn)。CPIData 數(shù)據(jù)序列經(jīng)過1 階差分后不具有相關(guān)性,為白噪聲序列。
4.2.2 ARMA模型預(yù)測結(jié)果分析
采用ARMA 模型對CPIData 數(shù)據(jù)分析后并進(jìn)行數(shù)據(jù)預(yù)測,得到的結(jié)果為:平均絕對誤差0.6223,均方根誤差0.7284,平均絕對百分誤差0.006089。ARMA 模型預(yù)測得到的最后8 個月的CPI 值為:102.23472048,102.18699822,102.08742449,102.20539888,101.97069279,102.18424042,101.89853904,102.11758266。
圖5 演示了真實數(shù)據(jù)和模型擬合數(shù)據(jù)的可視化,從圖中可以看出,模型基本上模擬出了原始序列的變化趨勢,平均絕對誤差為0.6223 MSE,但預(yù)測結(jié)果值與測試集數(shù)據(jù)值存在一定的偏差。
圖5 ARMA模型與真實數(shù)據(jù)對比圖
4.2.3 LSTM模型預(yù)測結(jié)果分析
按照訓(xùn)練集80%、測試集20%對CPIData 數(shù)據(jù)集進(jìn)行劃分,采用LSTM 算法進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測,得到的結(jié)果如圖6所示。
圖6 LSTM數(shù)據(jù)預(yù)測曲線圖
經(jīng)過測試得到LSTM算法的訓(xùn)練集損失穩(wěn)定在0.0187,測試集損失為0.0196。訓(xùn)練集Train Score:0.2655MSE,測試集Test Score:0.2783MSE。損失曲線如圖7所示。
圖7 損失曲線圖
采用MinMaxScaler 數(shù)據(jù)處理方法對 CPIData數(shù)據(jù)集進(jìn)行標(biāo)準(zhǔn)化后,再利用LSTM 算法基于訓(xùn)練集進(jìn)行訓(xùn)練,并將得到的預(yù)測結(jié)果進(jìn)行標(biāo)準(zhǔn)化,得到標(biāo)準(zhǔn)化的原數(shù)據(jù)序列與預(yù)測數(shù)據(jù)序列對比圖,如圖8所示。從圖8中可得出:LSTM 算法預(yù)測得到的結(jié)果與原數(shù)據(jù)變化趨勢相吻合,數(shù)據(jù)損失為0.0196,預(yù)測結(jié)果準(zhǔn)確度高。
圖8 LSTM模型數(shù)據(jù)對比圖
本文采用了ARMA 模型與LSTM 神經(jīng)網(wǎng)絡(luò)模型分析與預(yù)測了CPIData 時序數(shù)據(jù)集,并對實驗結(jié)果進(jìn)行了分析。采用ARMA模型對CPIData數(shù)據(jù)集進(jìn)行平穩(wěn)性檢驗,通過ACF 和PACF 進(jìn)行數(shù)據(jù)相關(guān)性分析、殘差分析、D-W 檢驗。經(jīng)上述步驟對CPI‐Data 時序數(shù)據(jù)集進(jìn)行檢驗與分析,證明了該數(shù)據(jù)序列不具有自相關(guān)性,適合進(jìn)行數(shù)據(jù)預(yù)測。將CPIDa‐ta 數(shù)據(jù)集進(jìn)行數(shù)據(jù)集劃分與標(biāo)準(zhǔn)化后,采用LSTM算法對該數(shù)據(jù)集進(jìn)行訓(xùn)練與預(yù)測,其損失為0.0196,預(yù)測得到的結(jié)果與原數(shù)據(jù)變化趨勢相吻合,驗證了LSTM算法具有更好的預(yù)測效果。