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