林元雄
福州外語(yǔ)外貿(mào)學(xué)院經(jīng)濟(jì)貿(mào)易系,福州,350202
股票價(jià)格預(yù)測(cè)是證券市場(chǎng)研究領(lǐng)域的重要課題。股票價(jià)格是眾多因素相互影響的綜合結(jié)果,想收集所有的影響因素不僅成本高,而且有時(shí)也不可能做到。大部分的投資決策是在部分信息已知、部分信息未知的情況下作出的,采用灰色系統(tǒng)理論可以處理這種“貧信息”的預(yù)測(cè)問(wèn)題,但是股票價(jià)格波動(dòng)的非線性也難以用精確的模型去擬合。王志遠(yuǎn)認(rèn)為傳統(tǒng)的時(shí)間序列分析、回歸分析在股票價(jià)格的預(yù)測(cè)上精度都不高,實(shí)用性也不強(qiáng)[1]。鄧聚龍將灰色系統(tǒng)和神經(jīng)網(wǎng)絡(luò)組合起來(lái)建立灰色神經(jīng)網(wǎng)絡(luò)模型(Grey Neural Net Model,GNNM)來(lái)預(yù)測(cè)股票價(jià)格[2]。為了提高網(wǎng)絡(luò)的收斂速度和預(yù)測(cè)精度,本文采用粒子群算法(Particle Swarm Optimization,PSO)對(duì)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化。粒子群算法是智能領(lǐng)域除蟻群算法和遺傳算法外的又一智能算法,該算法廣泛用于各種參數(shù)優(yōu)化,具有搜索速度快、效率高的特點(diǎn)[3]。但是粒子群算法容易產(chǎn)生“早熟早收斂”,陷入局部最優(yōu)解而導(dǎo)致預(yù)測(cè)精度降低[4]。為了避免這個(gè)問(wèn)題,本文對(duì)粒子群算法進(jìn)行改進(jìn),加入變異算法,使粒子可以跳出原先的局部搜索區(qū)域,在更大的范圍內(nèi)進(jìn)行參數(shù)優(yōu)化,從而避免陷入局部最優(yōu)問(wèn)題。運(yùn)用改進(jìn)PSO-GNNM模型,可以提高股票價(jià)格預(yù)測(cè)的精準(zhǔn)度,提高投資者的收益率。
灰色關(guān)聯(lián)根據(jù)各因素間幾何形狀的相似程度來(lái)判斷各因素的相關(guān)程度,幾何形狀越接近,關(guān)聯(lián)度越大,在本文中用來(lái)篩選對(duì)股價(jià)有重大影響的指標(biāo)?;疑P(guān)聯(lián)度計(jì)算步驟如下:
2.1.1 確定參考序列和比較序列
假設(shè)參考序列為X1=[x1(1),x1(2),…,x1(n)],比較序列為Xi=[xi(1),xi(2),…,xi(n)]。
2.1.2 數(shù)據(jù)歸一化處理。
由于序列間的量綱不一致,必須對(duì)序列進(jìn)行歸一化處理,將每個(gè)序列不同時(shí)刻的點(diǎn)都縮小至0到1之間。本文采用的歸一化公式為:
(1)
2.1.3 計(jì)算關(guān)聯(lián)系數(shù)
(2)
2.1.4 計(jì)算關(guān)聯(lián)度
關(guān)系系數(shù)ξ1,i(k)描述了序列X1和序列Xi第k個(gè)時(shí)刻關(guān)聯(lián)程度,則序列X1和序列Xi之間有n個(gè)關(guān)聯(lián)系數(shù),不利于序列間的直接比較,因此通過(guò)計(jì)算不同時(shí)刻關(guān)聯(lián)系數(shù)的平均值,即關(guān)聯(lián)度,來(lái)衡量序列間的關(guān)聯(lián)程度。第i個(gè)序列關(guān)聯(lián)度計(jì)算公式如下:
(3)
2.1.5 關(guān)聯(lián)度排序
將上文計(jì)算得出的各個(gè)序列的關(guān)聯(lián)度進(jìn)行排序,關(guān)聯(lián)度越大表示該比較序列對(duì)參考序列的影響越大,通過(guò)排序可以選出對(duì)參考序列影響較大的序列,去掉對(duì)參考序列影響不明顯的序列,達(dá)到指標(biāo)篩選的目的。
GNNM是灰色預(yù)測(cè)模型和神經(jīng)網(wǎng)絡(luò)模型組合的統(tǒng)稱,依據(jù)選取的灰色預(yù)測(cè)模型和神經(jīng)網(wǎng)絡(luò)模型類型以及兩者組合方式,可以構(gòu)建不同的GNNM模型。本文選取的灰色預(yù)測(cè)模型是GM(1,N)模型,神經(jīng)網(wǎng)絡(luò)模型是BP神經(jīng)網(wǎng)絡(luò)模型。兩者的組合方式也具有多樣化,歸納起來(lái)有并聯(lián)組合、串聯(lián)組合和嵌入組合。本文采用嵌入組合方式將GM(1,N)模型和BP神經(jīng)網(wǎng)絡(luò)組合起來(lái),構(gòu)建GM-BP模型。嵌入組合的結(jié)構(gòu)如圖1所示。
圖1 嵌入組合結(jié)構(gòu)
用灰色關(guān)聯(lián)分析篩選出的指標(biāo)作為灰色神經(jīng)網(wǎng)絡(luò)的原始序列,原始序列首先利用公式進(jìn)行歸一化處理。建立模型所用的數(shù)據(jù)是離散的,GM(1,N)模型最終要建立一個(gè)近似微分方程,要求數(shù)據(jù)具有平滑性,因此要用灰色算子對(duì)數(shù)據(jù)進(jìn)行處理,本文采用一次累加生成算子(1-AGO)對(duì)初始數(shù)據(jù)進(jìn)行處理。一次累加生成算子的公式為:
(4)
2≤k≤n
(5)
求出緊鄰序列之后就可以建立GM(1,N)基本模型,基本模型為:
(6)
基本模型的未知參數(shù)為[a,b2,b3,∧,…,bN],根據(jù)已知的輸入和輸出序列,運(yùn)用最小二乘法求解基本模型的參數(shù),其計(jì)算公式為:
[a,b2,b3,∧,bN]T=(BTB)-1BTY
(7)
GM(1,N)基本模型對(duì)時(shí)間t求導(dǎo),可得模型的灰微分方程:
(8)
對(duì)灰微分方程進(jìn)行求解可得到時(shí)間響應(yīng)函數(shù):
(9)
(10)
將轉(zhuǎn)換后的公式用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行求解,可以得到1個(gè)輸出變量和n個(gè)輸入變量的灰色神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 灰色神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
(11)
(12)
PSO標(biāo)準(zhǔn)算法下,將粒子視為要優(yōu)化問(wèn)題的解,其中假設(shè)粒子沒(méi)有重量和體積,每一個(gè)粒子都在優(yōu)化的目標(biāo)函數(shù)(適應(yīng)值函數(shù))限制下,在n維搜索空間中進(jìn)行搜索,每個(gè)粒子都有一個(gè)速度,并依靠適應(yīng)值函數(shù)的大小來(lái)更新它們?cè)谒阉骺臻g中的位置[5]。
設(shè)目標(biāo)解有m個(gè),形成了m個(gè)微粒,在一個(gè)n維的搜索空間中尋優(yōu),則將粒子i在n維空間里的位置表示為[6]:
Xi=(xi1,xi2,xi3,…,xin)
粒子i的當(dāng)前飛行速度:
Vi=(vi1,vi2,…,vin)
標(biāo)準(zhǔn) PSO算法下的粒子的位置的更新方程,即進(jìn)化方程如下兩式:[7]
vij(t+1)=wvij(t)+c1r1(pij(t)-xij(t))
+c2r2(pgj(t)-xij(t))
(13)
xij(t+1)=xij(t)+vij(t+1)
(14)
設(shè)f(X)為適應(yīng)值,即粒子群算法的求解的最小化的目標(biāo)函數(shù),則粒子i的當(dāng)前最好位置的更新規(guī)則如下式:
(15)
群體中所有粒子所經(jīng)歷的最好位置Pg(t)由下式確定:
Pg(t)=min{f(P1(t)),f(P2(t)),…,f(Pm(t))}
(16)
其中,t代表迭代次數(shù);Pi=(pi1,pi2,…,pin)為粒子i所經(jīng)歷的具有最好適應(yīng)值的位置,稱為個(gè)體最好位置,記為pbest;Pg=(pg1,pg2,…,pgn)為所有粒子經(jīng)過(guò)的最好的位置,稱為群體最好位置,記為gbest;c1、c2為加速常數(shù);w為慣性權(quán)重;r1、r2為兩兩相互獨(dú)立的[0,1]范圍內(nèi)變化的隨機(jī)數(shù)[8]。
根據(jù)文獻(xiàn)關(guān)于粒子收斂行為的分析,從動(dòng)力學(xué)的角度看,粒子群算法中粒子存在一個(gè)吸引子P,使得所有的粒子在更新位置進(jìn)行搜索時(shí),隨著速度的減小不斷收斂到P點(diǎn)[9]。在整個(gè)過(guò)程中,被認(rèn)為在P點(diǎn)處實(shí)際上存在著吸引勢(shì)能場(chǎng),使得粒子能夠收斂找到群體最佳位置。記第i個(gè)粒子在吸引子P點(diǎn)的第j維坐標(biāo)為:
(17)
在標(biāo)準(zhǔn)的PSO算法下,粒子的收斂是以軌道的形式實(shí)現(xiàn)的,且粒子的速度總是有限的,因此在搜索過(guò)程中粒子不能覆蓋整個(gè)搜索空間,一般在一個(gè)有限的區(qū)域就收斂了,不能保證以百分百的概率收斂到搜索中的全局的最優(yōu)解[6]。為了克服PSO算法的這個(gè)缺點(diǎn),在PSO尋優(yōu)過(guò)程中加入遺傳算法的變異操作,在粒子的每次更新后,以一定的概率重新初始化粒子,其算法為:
pi,[2r]=r,r>0.8
(18)
公式中r為0到1之間的隨機(jī)數(shù),[2r]為隨機(jī)數(shù)2r的四舍五入值,當(dāng)隨機(jī)數(shù)大于0.8是,第i個(gè)粒子的第[2r]個(gè)位置將重新取隨機(jī)數(shù)。
圖3 改進(jìn)PSO-GNNM模型流程
嵌入組合是灰色預(yù)測(cè)和BP神經(jīng)網(wǎng)絡(luò)的完全融合,首先利用原始數(shù)據(jù)建立灰色預(yù)測(cè)模型,計(jì)算出灰色預(yù)測(cè)模型的時(shí)間響應(yīng)函數(shù),即公式(9)。傳統(tǒng)的灰色預(yù)測(cè)模型采用最小二乘法計(jì)算時(shí)間響應(yīng)函數(shù)的參數(shù),嵌入組合方式則將時(shí)間響應(yīng)函數(shù)映射到BP神經(jīng)網(wǎng)絡(luò)中,時(shí)間響應(yīng)函數(shù)的參數(shù)值設(shè)為BP神經(jīng)網(wǎng)絡(luò)的參數(shù),利用BP神經(jīng)網(wǎng)絡(luò)的尋優(yōu)求解方程的功能去求解時(shí)間響應(yīng)函數(shù)的參數(shù)。最后用求出的時(shí)間響應(yīng)函數(shù)作出預(yù)測(cè)。
本文選取浦發(fā)銀行2013年4月份和5月份的40個(gè)數(shù)據(jù)作為樣本,前30個(gè)樣本作為模型的訓(xùn)練樣本,后10個(gè)樣本作為模型的檢驗(yàn)樣本。模型以每日收盤價(jià)作為預(yù)測(cè)對(duì)象,以預(yù)測(cè)前一日的技術(shù)指標(biāo)作為模型的輸入數(shù)據(jù),模型的初選指標(biāo)有成交量、MACD、KDJ、RSI、ADR、PSY、BIAS、WR、BOLL、DMI、ASI、VR、ARBR、DPO、TRIX、BBI。利用關(guān)聯(lián)分析法計(jì)算各個(gè)指標(biāo)與收盤價(jià)的關(guān)聯(lián)度和關(guān)聯(lián)序,如表1所示。本文選取關(guān)聯(lián)度較高的前6個(gè)指標(biāo)作為股票價(jià)格的主影響因素,它們分別是成交量、PSY、RSI、BIAS、MACD、KDJ。
表1 指標(biāo)關(guān)聯(lián)度及關(guān)聯(lián)序
模型的實(shí)現(xiàn)環(huán)境是MatLab 2009,采用MatLab對(duì)算法進(jìn)行編程計(jì)算。根據(jù)粒子群優(yōu)化算法,在有6個(gè)影響指標(biāo)的條件下需要優(yōu)化的初始參數(shù)有7個(gè)。粒子的最優(yōu)位置代表參數(shù)的最優(yōu)值,每個(gè)粒子有7個(gè)維度表示粒子將在7維的空間進(jìn)行搜索。設(shè)定種群規(guī)模為30,迭代次數(shù)取200次,則PSO和改進(jìn)PSO的適應(yīng)度曲線分別如圖4和圖5所示。
圖4 PSO適應(yīng)度曲線 圖5 改進(jìn)PSO適應(yīng)度曲線
表2的序號(hào)1表示5月20日的股價(jià),以此類推序號(hào)10表示5月31日股價(jià),從表2和圖6可以看出,采用PSO算法優(yōu)化的GNNM模型要比GNNM模型的預(yù)測(cè)精度高,而用改進(jìn)PSO算法優(yōu)化的GNNM模型會(huì)比單純PSO算法優(yōu)化的GNNM模型的預(yù)測(cè)精度高,由此可見(jiàn),經(jīng)過(guò)改進(jìn)PSO算法優(yōu)化的GNNM模型預(yù)測(cè)精度較高,穩(wěn)定性較好。
從圖4和圖5可以看出,因?yàn)楦倪M(jìn)PSO算法的變異操作存在適應(yīng)度曲線在收斂的過(guò)程中有反復(fù)波折的情況出現(xiàn),收斂的速度相對(duì)較慢,但最后適應(yīng)度曲線幾乎收斂于0;而PSO算法容易陷入局部最優(yōu),適應(yīng)度曲線只收斂于0.5左右,沒(méi)有找到最優(yōu)參數(shù)。
為了檢驗(yàn)改進(jìn)PSO-GNNM模型的預(yù)測(cè)精度,分別建立GNNM模型、PSO-GNNM模型和改進(jìn)PSO-GNNM模型并進(jìn)行預(yù)測(cè),將預(yù)測(cè)結(jié)果與實(shí)際值進(jìn)行統(tǒng)計(jì)分析,可得三種預(yù)測(cè)模型的預(yù)測(cè)誤差如表2所示。
由于股票價(jià)格的波動(dòng)受眾多因素的影響,并且具有復(fù)雜的隨機(jī)性和非線性等波動(dòng)特點(diǎn),導(dǎo)致傳統(tǒng)的預(yù)測(cè)方法的預(yù)測(cè)精度較低,實(shí)證結(jié)果表明,GNNM模型能比較準(zhǔn)確預(yù)測(cè)“貧信息、非線性”的股票價(jià)格,PSO優(yōu)化算法通過(guò)優(yōu)化網(wǎng)絡(luò)的初始參數(shù)可以提供模型的預(yù)測(cè)精度,但是PSO算法容易陷入局部最優(yōu),對(duì)PSO算法進(jìn)行改進(jìn)后可以進(jìn)一步提供灰色神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度。
參考文獻(xiàn):
[1]王志遠(yuǎn),基于灰色神經(jīng)網(wǎng)絡(luò)的股票分析預(yù)測(cè)研究[D].鄭州:鄭州大學(xué)經(jīng)濟(jì)學(xué)院,2010:32-33
[2]鄧聚龍.灰色系統(tǒng)基本方法[M],武漢:華中工學(xué)院出版社,1987:43-45
[3]劉思峰,郭天榜,黨耀國(guó),等.灰色系統(tǒng)理論及其應(yīng)用[M].北京:科學(xué)出版社,2000:121-123
[4]劉思峰.灰色系統(tǒng)理論及其應(yīng)用[M].北京:科學(xué)出版社,2008:56-58
[5]范艷敏.基于灰色神經(jīng)網(wǎng)絡(luò)的股指預(yù)測(cè)方法研究[D].北京:北京工業(yè)大學(xué),2011:32-35
[6]秦勇.基于灰色神經(jīng)網(wǎng)絡(luò)的煤礦瓦斯涌出量預(yù)測(cè)模型研究[D].太原:太原科技大學(xué),2011:36-38
[7]馬軍杰.基于優(yōu)化粒子群優(yōu)化算法的灰色神經(jīng)網(wǎng)絡(luò)模型[J].同濟(jì)大學(xué)學(xué)報(bào),2012(5):35-40
[8]雷斌.基于優(yōu)化粒子群優(yōu)化算法的灰色神經(jīng)網(wǎng)絡(luò)的鐵路貨運(yùn)量預(yù)測(cè)[J].計(jì)算機(jī)應(yīng)用,2012(10):32-35
[9]劉幸.基于量子粒子群算法的分布式電源多目標(biāo)優(yōu)化[D].北京:華北電力大學(xué),2012:23-26