邰曉紅,劉 義
(遼寧工程技術(shù)大學(xué) 工商管理學(xué)院,遼寧 葫蘆島 125105)
居民消費價格指數(shù)(consumer price index,CPI)是一個用來反映居民家庭購買消費商品及服務(wù)的價格水平變動情況的重要宏觀經(jīng)濟指標[1]。CPI涉及維系人民生計,關(guān)乎社會和諧,歷來備受政府和民眾關(guān)注。同時,CPI是價格總水平監(jiān)測及調(diào)控、宏觀經(jīng)濟分析及決策、國民經(jīng)濟核算的重要參考依據(jù)[1-5]。因此,科學(xué)精確的對CPI進行預(yù)測具有重要的現(xiàn)實意義。
目前,已經(jīng)有一些學(xué)者對CPI進行預(yù)測研究,建立了一些預(yù)測模型。例如,神經(jīng)網(wǎng)絡(luò)模型[2]、ARIMA模型[3]、支持向量機模型[4]以及一些組合預(yù)測模型[5]等。這些模型對于CPI的預(yù)測具有重要意義。同時也存在一定的局限性,需要作進一步研究。需要說明的是,已有研究大多數(shù)是基于CPI的歷史時序數(shù)據(jù)建立的預(yù)測模型。而CPI同時受到多重因素影響,其歷史時序數(shù)據(jù)往往存在較大程度的波動。直接使用存在較大波動的CPI歷史時序數(shù)據(jù)進行預(yù)測會在一定程度上影響CPI的預(yù)測結(jié)果。本文針對CPI歷史時序數(shù)據(jù)的特點,提出了一種基于EEMD-PSO-SVM的月度CPI預(yù)測模型。在該模型中,首先采用EEMD對存在較大波動的CPI序列進行降噪分解,得到不同頻率相對穩(wěn)定的IMF序列和一個殘余序列。然后采用PSO-SVM對得到的每個序列分別進行擬合預(yù)測。在此基礎(chǔ)上,采用PSO-SVM對每個序列的預(yù)測結(jié)果進行融合,得到最終的月度CPI的預(yù)測結(jié)果。最后,以1994年1月至2017年5月的我國月度CPI為研究對象進行實際預(yù)測以驗證模型的有效性和可靠性。
集合經(jīng)驗?zāi)B(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)[6]是針對經(jīng)驗?zāi)7纸猓‥MD)[7]的一種改進算法,其能夠有效地解決采用EMD對時序數(shù)據(jù)進行分解時會出現(xiàn)虛假分量和模態(tài)混疊的問題。為了更加清晰地說明EEMD,這里首先對EMD進行簡要介紹。
1.1.1 EMD方法的基本原理
EMD的基本思想是將一組時間序列數(shù)據(jù)轉(zhuǎn)換成一系列帶有不同尺度趨勢或者波形的數(shù)據(jù)序列,其中產(chǎn)生的每一組數(shù)據(jù)序列稱為一個特征模函數(shù)分量(intrinsic mode function,IMF)[7,8]。這里的IMF需要同時滿足如下兩個條件:(1)由IFM分量的極值點確定的包絡(luò)線的均值為零,(2)IFM分量通過極值點的個數(shù)與通過零點的個數(shù)相等或者最多相差1個。
對于一組時間序列數(shù)據(jù)x(t),采用EMD對其進行分解的具體步驟如下。
(1)記u(t)和v(t)分別表示x(t)的極大值和極小值擬合成的包絡(luò)線。則兩條包絡(luò)線的均值m1(t)可以表示為:
計算擬IMF分量h1(t):
判斷h1(t)是否滿足上述IMF條件,若滿足則h1(t)即為第一個IMF分量;若不滿足則將h1(t)作為原始時間序列,采用上述過程進行計算,直到經(jīng)過k次篩選之后,得到的分量h1k(t)滿足上述IMF的條件,此時得到的h1k(t)即為第一階IMF分量,即為:
(2)記第一階IMF分量得剩余信號為r1(t),r1(t)可以采用公式(4)計算,即:
依據(jù)上述過程對r1(t)進行分解,直到經(jīng)過n此分解之后,rn(t)為一個單調(diào)函數(shù)時,分解結(jié)束。這樣可以得到n個IMF分量c1(t),c2(t),…,cn(t)和n個IMF分量得剩余信號r1(t),r2(t),…,rn(t)。則原始時間序列可以表示為:
1.1.2 EMD方法的基本原理
由于采用EMD進行分解時容易產(chǎn)生虛假分量和模態(tài)混疊問題。EEMD通過引入高斯白噪聲擾動并將多次分解的IMF進行集合平均進而可以效地解決EMD的上述問題。對于一組時間序列數(shù)據(jù)x(t),采用EEMD對其進行分解的具體步驟如下:
(1)對間序列數(shù)據(jù)x(t)疊加一組高斯白噪聲序列ω1(t),可以得到疊加序列X(t),即:
(2)依據(jù)上文中EMD的分解過程,對X(t)進行分解,可以得到各階IMF分解量:
(3)對間序列數(shù)據(jù)x(t)疊加不同的高斯白噪聲序列ωi(t),并重復(fù)上述步驟,可以得到不同噪聲序列對應(yīng)的各階IMF分解量,即:
需要說明的是ωi(t)的幅值為k的取值通常設(shè)置為0.2。
(4)由于高斯白噪聲頻譜的均值為零,可以采用式(9)計算x(t)對應(yīng)的各階IMF分量,即:
其中N表示加入高斯白噪聲序列ωi(t)的總次數(shù),通常取值為100。
SVM最早是在20世紀90年代由Vapnik等人首次提出的,SVM屬于小樣本、小概率事件類型神經(jīng)網(wǎng)絡(luò)模型。SVM與神經(jīng)網(wǎng)絡(luò)不同,它以統(tǒng)計學(xué)相關(guān)理論為基礎(chǔ),結(jié)構(gòu)風險最小化為其學(xué)習原則,建立在小樣本學(xué)習方法之上,具有非常強的非線性逼近能力和很好的泛化性能。SVM的算法具體如下[9]:
設(shè)輸入量為x,首先將x通過映射Φ:Rn→H映射到高維特征空間H中,即:
擬合數(shù)據(jù)(xi,yi)目標函數(shù)式為:
式中,Φ(xi)·Φ(xj)為核函數(shù),核函數(shù)有多種類型,本文選取徑向基核函數(shù),即:
有:
得最終預(yù)測函數(shù):
雖然SVM具有上述很多優(yōu)勢,但是SVM的懲罰參數(shù)c和核函數(shù)參數(shù)g對模型預(yù)測性能有較大的影響。為快速合理地確定SVM的c和g,本文引入PSO來優(yōu)化SVM的c和g,給出了一種PSO-SVM算法。關(guān)于PSO的相關(guān)介紹可以參見文獻[10]。關(guān)于PSO-SVM算法的具體描述如下:
(1)以訓(xùn)練樣本的交叉驗證均方誤差(MSE Mean Squared Error)作為PSO的適應(yīng)度函數(shù);
(2)初始化PSO的種群,粒子速度v,進化代數(shù),學(xué)習因子c1,c2和慣性權(quán)重w,初始化SVM參數(shù)c和g并確定c和g取值范圍;
(3)依據(jù)式(10),計算交叉驗證的PSO的適應(yīng)度函數(shù)值;
式中,表示SVM預(yù)測值,yi表示實際值,n表示樣本數(shù)量。
(4)尋找當前粒子的個體及全局最優(yōu)值,若優(yōu)于歷史值,則對其進行更新;
(5)依據(jù)式(10)和式(11),更新粒子速度和位置。
式中,r1和r2為0到1區(qū)間的隨機數(shù),p為當前粒子位置,即SVM參數(shù)(c,g)的當前數(shù)值,pBest表示個體最優(yōu)值,gBest表示整體最優(yōu)值。
(6)若滿足終止條件,則停止迭代該適應(yīng)度值對應(yīng)的c和g即為SVM最優(yōu)的c和g;若不滿足終止條件,則對個體和速度進行更新直到滿足迭代終止條件。
關(guān)于算法的描述如下:
(1)記歷史月度CPI序列為x(t)。采用EEMD將x(t)進行分解可以得到n個不同頻率相對穩(wěn)定的IMF分量c1(t),c2(t),…,cn(t)和剩余信號rn(t)。
(2)分別對c1(t),c2(t),…,cn(t)和rn(t)采用滾動窗口的方式訓(xùn)練PSO-SVM,可以得到針對每個分量序列的預(yù)測模型,分別記為PSO-SVMc1,PSO-SVMc2,…,PSOSVMcn和PSO-SVMrn。
(3)分 別 采 用PSO-SVMc1,PSO-SVMc2,…,PSOSVMcn和PSO-SVMrn進行預(yù)測。以同一月份的PSOSVMc1,PSO-SVMc2,…,PSO-SVMcn和PSO-SVMrn的預(yù)測結(jié)果為自變量,該月份的實際CPI為因變量,再采用PSO-SVM對每個分量的預(yù)測結(jié)果進行融合,進而可以得到最終的月度CPI的預(yù)測結(jié)果。
以1994年1月至2017年5月的我國月度CPI為研究對象(共281個月),其中1994年1月至2016年12月CPI數(shù)據(jù)作為訓(xùn)練樣本用于建立模型,以2017年1月至2017年5月CPI數(shù)據(jù)作為測試樣本用于檢驗?zāi)P?。?shù)據(jù)來源于國家統(tǒng)計局(http://www.stats.gov.cn/),具體數(shù)據(jù)見圖1。圖1中序號1表示1994年1月,序號281表示2017年5月。
圖1 1994年1月至2017年5月的我國月度CPI數(shù)據(jù)
采用EEMD對原始CPI月度數(shù)據(jù)進行分解,最終得到7個不同頻率相對穩(wěn)定的IMF分量和一個剩余信號r(t),如圖2所示。
圖2 EEMD分解結(jié)果
分別對c1(t),c2(t),…,c7(t)和r(t)采用滾動窗口的方式訓(xùn)練PSO-SVM,其中窗口大小設(shè)置為3??梢缘玫结槍γ總€分量序列的預(yù)測模型,分別記為PSO-SVMc1,PSOSVMc2,…,PSO-SVMc7和PSO-SVMr。 分別采用PSO-SVMc1,PSO-SVMc2,…,PSO-SVMc7和PSO-SVMr對訓(xùn)練樣本進行回代預(yù)測,并以各預(yù)測結(jié)果為自變量,該月份的實際CPI為因變量,再采用PSO-SVM對每個分量的預(yù)測結(jié)果進行融合。進行結(jié)果融合時PSO-SVM的相關(guān)參數(shù)設(shè)置如下:種群最大進化次數(shù)為200,種群數(shù)量為20,SVM的參數(shù)c和g的取值范圍分別為[0.01,100]和[0.001,1000],PSO中的學(xué)習因子c1=1.5,c2=1.7,PSO中慣性權(quán)值w=1。得到適應(yīng)度(交叉驗證MSE)與進化次數(shù)的關(guān)系如圖3所示。由圖3可知,進化116代之后模型收斂,得到最終的MSE=0.01283,Best c=0.01,Best g=18.24。
圖3 適應(yīng)度與進化代數(shù)的關(guān)系
由圖4可知,建立的CPI預(yù)測的EEMD-PSO-SVM的月度CPI預(yù)測模型對訓(xùn)練樣本數(shù)據(jù)的擬合效果較好。
圖4 擬合結(jié)果
利用建立好的EEMD-PSO-SVM的月度CPI預(yù)測模型對2017年1月至2017年5月CPI數(shù)據(jù)進行預(yù)測,結(jié)果見表1。
表1 預(yù)測結(jié)果及比較
為了便于比較和分析,表1中同時列出了采用人工神經(jīng)網(wǎng)絡(luò)(ANN)、自回歸移動平均模型(ARIMA)和SVM的預(yù)測結(jié)果。由表1可知,本文提出的EEMD-PSO-SVM的月度CPI預(yù)測模型最大絕對誤差為0.39,平均絕對誤差為0.204,最小絕對誤差僅為0.01,均小于低于ANN、ARIMA和SVM。本文提出的預(yù)測模型的平均相對誤差僅為0.201%,能夠滿足實際的預(yù)測需求。
(1)本文針對月度CPI時序數(shù)據(jù)的特點,提出了一種基于EEMD-PSO-SVM的月度CPI預(yù)測模型。在該模型中,EEMD能夠?qū)Υ嬖谳^大波動的CPI序列進行降噪分解,可以得到不同頻率相對穩(wěn)定的IMF序列和一個殘余序列,為后續(xù)預(yù)測奠定良好的數(shù)據(jù)基礎(chǔ)。PSO-SVM對帶有小樣本、非線性特點的CPI數(shù)據(jù)具有非常強的預(yù)測能力。本文將EEMD和PSO-SVM進行結(jié)合,綜合發(fā)揮了二者的優(yōu)勢。
(2)以1994年1月至2017年5月的我國月度CPI為研究對象,采用提出的EEMD-PSO-SVM的月度CPI預(yù)測模型進行實際預(yù)測并與ANN、ARIMA、SVM進行比較。結(jié)果表明本文提出的預(yù)測模型的平均相對誤差僅為0.201%,能夠滿足實際的預(yù)測需求,為CPI科學(xué)準確的預(yù)測提供了一種新的方法。