王永杰,白艷萍
(中北大學(xué) 理學(xué)院, 太原 030051)
?
基于主成分分析的PSO-BP算法在GDP和CPI預(yù)測(cè)中的應(yīng)用
王永杰,白艷萍
(中北大學(xué) 理學(xué)院, 太原 030051)
GDP增速與CPI指數(shù)具有復(fù)雜的時(shí)間序列和非線性特征。鑒于BP神經(jīng)網(wǎng)絡(luò)算法有良好的非線性擬合能力,但容易陷入局部極小值的特點(diǎn),提出了基于主成分分析的PSO-BP算法。該方法主要通過(guò)主成分分析方法對(duì)輸入變量進(jìn)行降維,利用PSO算法良好的全局尋優(yōu)能力對(duì)BP算法的權(quán)值和閾值進(jìn)行優(yōu)化,從而避免BP算法陷入局部極小值。最后運(yùn)用模型對(duì)GDP增速和CPI指數(shù)進(jìn)行擬合預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明:該模型比PCA-BP模型和PSO-BP模型具有更高的擬合精度和更小的均方誤差。
主成分分析;PSO-BP算法;CPI;GDP
GDP是指一個(gè)國(guó)家在一定時(shí)期內(nèi)所有常住單位生產(chǎn)的所有最終物品和勞務(wù)的市場(chǎng)價(jià)值,是衡量一個(gè)國(guó)家或地區(qū)經(jīng)濟(jì)狀況的重要指標(biāo)。CPI居民消費(fèi)物價(jià)指數(shù)是反映普通消費(fèi)者所購(gòu)買的物品與勞務(wù)總費(fèi)用的宏觀經(jīng)濟(jì)指標(biāo)[1]。GDP的增長(zhǎng)率體現(xiàn)的是一個(gè)國(guó)家的宏觀經(jīng)濟(jì)狀況,CPI則直接影響居民的購(gòu)買力。深入研究分析這些宏觀經(jīng)濟(jì)指標(biāo),對(duì)于研究我國(guó)的經(jīng)濟(jì)發(fā)展過(guò)程,探究經(jīng)濟(jì)增長(zhǎng)規(guī)律,進(jìn)行經(jīng)濟(jì)宏觀調(diào)控以及制定經(jīng)濟(jì)政策具有非常重要的意義。
GDP增速和CPI指數(shù)直接影響國(guó)家宏觀經(jīng)濟(jì)運(yùn)行,學(xué)者們一直在研究如何預(yù)測(cè)GDP增速和CPI指數(shù),以便給國(guó)家制定經(jīng)濟(jì)政策提供理論參考。2005年林健等提出了基于神經(jīng)網(wǎng)絡(luò)集成的GDP預(yù)測(cè)模型,將神經(jīng)網(wǎng)絡(luò)應(yīng)用于GDP預(yù)測(cè)。2009年王宇等將BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于的我國(guó)CPI預(yù)測(cè)。2011年喻勝華等提出了基于主成分分析和貝葉斯正則化的BP神經(jīng)網(wǎng)絡(luò)的GDP預(yù)測(cè)模型。2013年劉向榮等提出了基于附加動(dòng)量法的BP神經(jīng)網(wǎng)絡(luò)CPI運(yùn)行預(yù)測(cè)研究模型。本文受上述研究成果的啟發(fā),提出了基于主成分分析的PSO-BP算法模型,并將它們應(yīng)用于GDP和CPI增速預(yù)測(cè)研究中。
1.1 BP神經(jīng)網(wǎng)絡(luò)算法
BP(back propagation)人工神經(jīng)網(wǎng)絡(luò)算法是一種多層前饋神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)的主要特點(diǎn)是信號(hào)向前傳遞,誤差反向傳播。在前向傳遞過(guò)程中,輸入信號(hào)從輸入層經(jīng)隱含層逐步傳播,直到輸出層。如果沒(méi)有達(dá)到期望輸出,則轉(zhuǎn)入反向傳播,然后根據(jù)誤差不斷調(diào)整BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,直到達(dá)到期望輸出或者迭代完畢為止[2-5]。BP神經(jīng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)如圖1所示:

圖1 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
圖1中:x1、x2、xm是BP神經(jīng)網(wǎng)絡(luò)的輸入值;Y1、Y2、Ym是BP神經(jīng)網(wǎng)絡(luò)的輸出值;ωij、ωjk是BP神經(jīng)網(wǎng)絡(luò)的權(quán)值。
1.2 主成分分析(PCA)
主成分分析是由Pearson于1901年首次引入,后經(jīng)Hotelling發(fā)展而來(lái)的一種優(yōu)化算法。主成分分析是一種通過(guò)降維技術(shù)把多個(gè)原始變量轉(zhuǎn)化為少數(shù)幾個(gè)主成分變量的多元統(tǒng)計(jì)方法,降維后的主成分變量可以反映原始變量的大部分信息。通常情況下主成分變量是原始變量的一種線性無(wú)關(guān)的線性組合[6]。
若X為一個(gè)數(shù)據(jù)矩陣,每一行代表一個(gè)數(shù)據(jù)值,每一列代表一個(gè)指標(biāo)變量,其中變量X1,X2,…,Xp有p個(gè),則變量的線性組合可以表示為:
(1)
可以簡(jiǎn)寫為

(2)
PCA模型的系數(shù)要滿足以下條件:
1)Yi,Yj是非線性相關(guān)的(i≠j;i,j=1,2,…,p)。
2)Y1與Y2的方差大于和Y3的方差,以此類推。
(3)
主成分變量的總方差等于原始變量的總方差,總方差中第i個(gè)主成分Yi的方差所占的比例稱為主成分Yi的貢獻(xiàn)率。前m個(gè)主成分的貢獻(xiàn)率之和稱為前m個(gè)主成分的累積貢獻(xiàn)率,通常要求前m(m
1.3 粒子群優(yōu)化算法(PSO)
粒子群優(yōu)化算法(particle swarm optimization)是Kennedy和Eberhart受到鳥群覓食過(guò)程中遷徙和群集行為啟發(fā)而提出的一種算法。PSO算法作為一種全局優(yōu)化算法,通過(guò)一組初始解在解空間并行搜索,利用解集中個(gè)體與個(gè)體之間的競(jìng)爭(zhēng)和協(xié)作實(shí)現(xiàn)解集的尋優(yōu),因此具有很好的并行性和魯棒性。


粒子更新公式為


(4)
(5)
其中:ω、c1、c2是權(quán)值,它們加快粒子搜索到pbest和gbest值;rand是一個(gè)(0,1)的隨機(jī)數(shù)。
BP神經(jīng)網(wǎng)絡(luò)算法不僅有良好的非線性擬合能力,而且具有一定的收斂能力、泛化性能、魯棒性,但容易陷入局部極小值。研究表明:PSO粒子群算法具有良好的泛化能力和全局尋優(yōu)能力,并有良好的魯棒性。本文將PSO粒子群算法與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合,用PSO粒子群算法良好的全局優(yōu)化能力對(duì)BP神經(jīng)網(wǎng)絡(luò)算法的權(quán)值和閾值進(jìn)行優(yōu)化,從而避免BP神經(jīng)網(wǎng)絡(luò)算法陷入局部極小值,提高算法的精度[10-11]。
PSO算法中的粒子位置是一個(gè)a維向量,由BP神經(jīng)網(wǎng)絡(luò)中要優(yōu)化的參數(shù)組成。a的值等于優(yōu)化的參數(shù)數(shù)目。實(shí)際上,粒子群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的過(guò)程就是一個(gè)獲取最優(yōu)參數(shù)的過(guò)程。PSO粒子群算法的適應(yīng)度函數(shù)采用BP神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)。在每次迭代中每個(gè)粒子的位置都被映射到BP神經(jīng)網(wǎng)絡(luò)中,得到的訓(xùn)練誤差被用來(lái)計(jì)算該粒子的適應(yīng)度值[12]。PSO算法的適應(yīng)度函數(shù)計(jì)算公式如下:
(6)
其中:ωnjk是網(wǎng)絡(luò)的第n個(gè)輸出值;tn是第n個(gè)訓(xùn)練樣本的實(shí)際值;s2為輸出層神經(jīng)元的個(gè)數(shù)。
PSO-BP神經(jīng)網(wǎng)絡(luò)算法的優(yōu)化流程(圖2)如下:
1) 初始化種群,包括種群數(shù)目、迭代次數(shù)。初始化種群粒子的位置和速度,并設(shè)定速度的取值范圍[-Vmax,Vmax]。
2) 將每個(gè)粒子的位置映射到BP神經(jīng)網(wǎng)絡(luò)中。
3) 訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),并計(jì)算每個(gè)粒子的適應(yīng)度函數(shù)值。
4) 更新粒子個(gè)體最優(yōu)值。對(duì)每個(gè)粒子,如果當(dāng)前迭代的適應(yīng)度值優(yōu)于前一次迭代的適應(yīng)度值,則將當(dāng)前的個(gè)體值作為新的最優(yōu)值。
5) 更新種群全局最優(yōu)值。如果當(dāng)前全局最優(yōu)的適應(yīng)度值優(yōu)于上一次迭代的適應(yīng)度值,種群選擇當(dāng)前迭代的全局最優(yōu)值作為新的全局最優(yōu)值。
6) 更新粒子位置和速度。根據(jù)個(gè)體最優(yōu)值和全局最優(yōu)值對(duì)粒子的位置和速度進(jìn)行調(diào)整。
7) 判斷種群是否滿足結(jié)束條件,若不滿足跳轉(zhuǎn)步驟2),否則跳轉(zhuǎn)步驟8)。
8) 保存迭代訓(xùn)練結(jié)果,結(jié)束PSO算法。
9) 把PSO訓(xùn)練結(jié)果的每維映射到BP神經(jīng)網(wǎng)絡(luò)中,繼續(xù)訓(xùn)練網(wǎng)絡(luò)直到達(dá)到目標(biāo)精度或者迭代完畢為止。
10) 輸入測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)。

圖2 PSO-BP算法流程
本文選取2000年第1季度到2015年第3季度的數(shù)據(jù)作為實(shí)驗(yàn)樣本對(duì)象。采用的季度數(shù)據(jù)主要來(lái)源于國(guó)家統(tǒng)計(jì)局網(wǎng)站(http://www.stats.gov.cn/)、中國(guó)人民銀行網(wǎng)站(http://www.pbc.gov.cn/)以及wind數(shù)據(jù)庫(kù),所有的價(jià)格指數(shù)均為同比價(jià)格指數(shù)(上年同期值為100)。
實(shí)驗(yàn)中:模型的輸出變量均為下季度的GDP增速、CPI指數(shù);輸入變量為生產(chǎn)性貸款、工業(yè)增加值、M2、原材料、燃料、外匯儲(chǔ)備、進(jìn)出口總額、固定資產(chǎn)投資、銀行同業(yè)拆借利率、財(cái)政收支、外匯儲(chǔ)備等18個(gè)變量。本實(shí)驗(yàn)中將2000年第1季度到2011年第3季度的47組數(shù)據(jù)作為訓(xùn)練樣本來(lái)訓(xùn)練創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型,將2011年第4季度到2015年第3季度的后16組數(shù)據(jù)作為測(cè)試樣本,來(lái)測(cè)試PCA-PSO-BP算法模型的預(yù)測(cè)性能。
建立模型前,先對(duì)數(shù)據(jù)進(jìn)行主成分分析降維。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn)前7個(gè)主成分的累積貢獻(xiàn)率已達(dá)95.6%,因此實(shí)驗(yàn)中取前7個(gè)主成分作為PCA-PSO-BP算法模型的輸入變量。確定PCA-PSO-BP算法模型的參數(shù)。 BP神經(jīng)網(wǎng)絡(luò)算法參數(shù):初始學(xué)習(xí)率η=0.015,迭代次數(shù)epochs=1 000,迭代目標(biāo)goal=0.000 1;PSO算法參數(shù):粒子種群規(guī)模sizepop=64;種群迭代次數(shù)maxgen=40,權(quán)值ω=0.9,c1=c2=2。實(shí)驗(yàn)中先用47組數(shù)據(jù)訓(xùn)練模型,訓(xùn)練完成后將16組數(shù)據(jù)輸入模型中,得到模型的預(yù)測(cè)輸出。實(shí)驗(yàn)結(jié)果如圖3所示:圖中黑色實(shí)線為實(shí)際值,藍(lán)色虛線為預(yù)測(cè)值。

圖3 GDP增速預(yù)測(cè)擬合

圖4 CPI指數(shù)預(yù)測(cè)擬合
模型的預(yù)測(cè)輸出均方誤差(RMSE)如表1所示。
從圖3、4中可以發(fā)現(xiàn):PCA-PSO-BP模型除了個(gè)別點(diǎn)的擬合效果不理想之外,其他點(diǎn)的擬合效果相對(duì)較好。從表1中可以發(fā)現(xiàn):PCA-PSO-BP神經(jīng)網(wǎng)絡(luò)模型的均方誤差(RMSE)明顯小于PSO-BP模型和PCA-BP模型的均方誤差(RMSE)。實(shí)驗(yàn)結(jié)果表明:選用的PCA-PSO-BP模型具有良好的泛化能力,并可以提高預(yù)測(cè)精度。

表1 預(yù)測(cè)均方誤差(RMSE)
由于影響因素眾多,導(dǎo)致GDP增速和CPI指數(shù)具有復(fù)雜的時(shí)間序列和非線性特征,傳統(tǒng)的方法難以建立準(zhǔn)確的預(yù)測(cè)模型,而BP算法也受到容易陷入局部極小值的不利影響。為了得到一個(gè)更好的模型,本文提出了一種基于PCA-PSO-BP算法的GDP和CPI預(yù)測(cè)模型,并通過(guò)仿真實(shí)驗(yàn)測(cè)試了模型性能。實(shí)驗(yàn)結(jié)果表明:PCA-PSO-BP模型避免了BP模型容易陷入局部極小值的缺點(diǎn)。建立了預(yù)測(cè)精度高,效果好的GDP增速和CPI指數(shù)預(yù)測(cè)模型,同時(shí)為其他復(fù)雜線性時(shí)間序列問(wèn)題提供了一個(gè)新的建模思路。
[1] 曼昆.經(jīng)濟(jì)學(xué)原理[M].北京:北京大學(xué)出版社,2012.
[2] 王德明,王莉,張廣明.基于遺傳BP 神經(jīng)網(wǎng)絡(luò)的短期風(fēng)速預(yù)測(cè)模型[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2012,46(5):837-841.
[3] 劉向榮,孫紅英.基于改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)中國(guó)CPI運(yùn)行預(yù)測(cè)研究[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2013,43(6):1-8.
[4] 王棟,米國(guó)際.基于灰色關(guān)聯(lián)和BP神經(jīng)網(wǎng)絡(luò)的鐵路貨運(yùn)量預(yù)測(cè)方法[J].江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2015,14(1):80-84.
[5] ZHANG L,LUO J,YANG S.Forecasting box office revenue of movies with BP neural network[J].Expert Systems with Applications,2009,36(3):6580-6587.
[6] BRO R,SMILDE A K.Principal component analysis[J].Analytical Methods,2014,6(9):433-459.
[7] ZHAO S Z,SUGANTHAN P N,PAN Q K,et al.Dynamic multi-swarm particle swarm optimizer with harmony search[J].Expert Systems with Applications,2011,38(4):3735-3742.
[8] MANGAT V,VIG R.Novel associative classifier based on dynamic adaptive PSO:Application to determining candidates for thoracic surgery[J].Expert Systems with Applications,2014,41(18):8234-8244.
[9] MARTíNEZ J L F,GONZALO E G.The PSO family:Deduction,stochastic analysis and comparison[J].Swarm Intelligence,2009,3(4):245-273.
[10]BAI T,MENG H,YAO J.A forecasting method of forest pests based on the rough set and PSO-BP neural network[J].Neural Computing & Applications,2014,25(7-8):1699-1707.
[11]趙振江.基于PSO-BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預(yù)測(cè)與研究[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(1):218-221.
[12]盧金娜.基于優(yōu)化算法的徑向基神經(jīng)網(wǎng)絡(luò)模型的改進(jìn)及應(yīng)用[D].太原:中北大學(xué),2015.
(責(zé)任編輯 陳 艷)
Application of PSO-BP Algorithm Based on Principal Component Analysis in Prediction of GDP and CPI
WANG Yong-jie, BAI Yan-ping
(College of Science, North University of China, Taiyuan 030051, China)
The growth rate of GDP and CPI index have complex time series and nonlinear characteristics. In view of that the BP neural network algorithm has good nonlinear fitting ability, but it is easy to fall into the local minimum value, we put forward the PSO-BP algorithm based on principal component analysis (PCA). The method is mainly based on the principal component analysis to reduce the dimension of the input variables. And the PSO algorithm was used to optimize the weight and threshold of the BP algorithm, so as to avoid the local minimum value of the BP algorithm. Finally, the PCA-PSO-BP model was used to fit the GDP growth rate and CPI index, and the experimental results show that the PCA-PSO-BP model has higher fitting accuracy and smaller mean square error than the PCA-BP and PSO-BP model.
principal component analysis; PSO-BP algorithm; CPI; GDP
2017-01-09
國(guó)家自然科學(xué)基金資助項(xiàng)目(61275120)
王永杰(1991—),男,碩士研究生,主要從事神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方面的研究,E-mail:1007915470@qq.com。
王永杰,白艷萍.基于主成分分析的PSO-BP算法在GDP和CPI預(yù)測(cè)中的應(yīng)用[J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2017(4):150-154.
format:WANG Yong-jie, BAI Yan-ping.Application of PSO-BP Algorithm Based on Principal Component Analysis in Prediction of GDP and CPI[J].Journal of Chongqing University of Technology(Natural Science),2017(4):150-154.
10.3969/j.issn.1674-8425(z).2017.04.025
O29
A
1674-8425(2017)04-0150-05