黃宏運(yùn),吳禮斌,李詩爭(zhēng)
(1.安徽財(cái)經(jīng)大學(xué) 金融學(xué)院,安徽 蚌埠 233000;2.安徽財(cái)經(jīng)大學(xué) 統(tǒng)計(jì)與應(yīng)用數(shù)學(xué)學(xué)院,安徽 蚌埠 233000)
?
BP神經(jīng)網(wǎng)絡(luò)在股票指數(shù)預(yù)測(cè)中的應(yīng)用
黃宏運(yùn)1,吳禮斌2,李詩爭(zhēng)1
(1.安徽財(cái)經(jīng)大學(xué) 金融學(xué)院,安徽 蚌埠 233000;2.安徽財(cái)經(jīng)大學(xué) 統(tǒng)計(jì)與應(yīng)用數(shù)學(xué)學(xué)院,安徽 蚌埠 233000)
針對(duì)股票數(shù)據(jù)規(guī)模龐大、結(jié)構(gòu)復(fù)雜、多噪聲和高度模糊非線性等特點(diǎn)而導(dǎo)致的預(yù)測(cè)難問題,利用人工智能算法BP神經(jīng)網(wǎng)絡(luò)的誤差反向傳播機(jī)制建立了一個(gè)以歷史開盤價(jià)、收盤價(jià)、最低價(jià)、最高價(jià)、成交量、成交額和漲跌幅為輸入變量,未來股價(jià)為輸出變量的自適性相對(duì)優(yōu)良的預(yù)測(cè)系統(tǒng),通過MATLAB軟件實(shí)現(xiàn)了自2002年1月7日至2016年6月22日股價(jià)預(yù)測(cè)模型的建立,并且對(duì)預(yù)測(cè)結(jié)果與實(shí)際結(jié)果進(jìn)行了誤差分析,得出了BP神經(jīng)網(wǎng)絡(luò)可以在短期內(nèi)為股價(jià)預(yù)測(cè)提供一定借鑒和指導(dǎo)的結(jié)論.
BP神經(jīng)網(wǎng)絡(luò);股票指數(shù);預(yù)測(cè);負(fù)梯度修正
隨著我國經(jīng)濟(jì)水平的不斷提高,國內(nèi)資本市場(chǎng)也呈現(xiàn)出不斷發(fā)展和擴(kuò)大的局面,作為資本市場(chǎng)主要交易品種之一的股票自然也成為廣大個(gè)體與機(jī)構(gòu)投資者追逐的熱寵.在成熟的市場(chǎng)經(jīng)濟(jì)中,與股票價(jià)格、成交量相關(guān)的指數(shù)不僅是投資者決策的重要依據(jù),同時(shí)也是國民經(jīng)濟(jì)的晴雨表,因而對(duì)于未來股票指數(shù)的預(yù)測(cè)也就成為了廣為熱議的話題之一.
但是,由于歷史股票數(shù)據(jù)具有規(guī)模巨大,多噪聲和高度模糊非線性[1]等特點(diǎn),因而對(duì)于適應(yīng)股票指數(shù)預(yù)測(cè)的方法或系統(tǒng)具有較高的要求,盡管目前已經(jīng)有很多學(xué)者給出了不同的預(yù)測(cè)方法,如時(shí)間序列預(yù)測(cè)[2]、灰色預(yù)測(cè)、組合預(yù)測(cè)等,但由于股票指數(shù)的波動(dòng)易受到短期因素的影響,因而得到的效果并不十分理想.因而尋找一種適應(yīng)性良好的預(yù)測(cè)方法,為投資者對(duì)未來股價(jià)的預(yù)測(cè)提供一定的借鑒就顯得尤為關(guān)鍵.
本文的數(shù)據(jù)主要來源于大智慧與同花順數(shù)據(jù)中心提供的自2002年1月7日至2016年6月22日的滬深300股價(jià)指數(shù),其中數(shù)據(jù)的格式為3505行乘7維,其中每一行代表了每一日的開盤價(jià)、收盤價(jià)、最低價(jià)、最高價(jià)、成交量、成交額和漲跌幅.為了問題與數(shù)據(jù)的處理方便,給出幾點(diǎn)假設(shè):①假設(shè)所獲取的數(shù)據(jù)真實(shí)、準(zhǔn)確和可靠.②假設(shè)對(duì)數(shù)據(jù)進(jìn)行適當(dāng)?shù)臉?biāo)準(zhǔn)化處理不會(huì)對(duì)預(yù)測(cè)結(jié)果產(chǎn)生顯著影響.③假設(shè)在研究期間內(nèi)未出現(xiàn)大的金融市場(chǎng)動(dòng)蕩或貨幣危機(jī).
考慮到股票數(shù)據(jù)所具有的規(guī)模龐大、結(jié)構(gòu)混雜、多噪聲和高度模糊非線性等特點(diǎn),利用人工智能算法BP神經(jīng)網(wǎng)絡(luò)所具有的良好的自適性能力、自學(xué)習(xí)能力和以任意精度逼近能力來構(gòu)建股票指數(shù)預(yù)測(cè)系統(tǒng).
為了考慮前期股票指數(shù)因素對(duì)于股價(jià)的影響,以前一日股票的開盤價(jià)、收盤價(jià)、最低價(jià)、最高價(jià)、成交量、成交額和漲跌幅為因變量,以后一日的開盤價(jià)為自變量構(gòu)建BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)系統(tǒng),即建立一個(gè)具有一般意義的分布滯后模型.
2.1 BP神經(jīng)網(wǎng)絡(luò)
BP(Back Propagation)網(wǎng)絡(luò)[3]是一種多層前向神經(jīng)網(wǎng)絡(luò),由于在網(wǎng)絡(luò)的訓(xùn)練中,調(diào)整權(quán)閥值的訓(xùn)練算法遵循了誤差反向傳播方式,所以,它是神經(jīng)網(wǎng)絡(luò)中比較成熟和完美的一部分.通常BP神經(jīng)網(wǎng)絡(luò)是一種具有3層或者3層以上神經(jīng)元的神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層和輸出層,上下層之間實(shí)現(xiàn)全連接,而同一層神經(jīng)元之間無連接.
輸入層神經(jīng)元與隱含層神經(jīng)元和隱含層神經(jīng)元與輸出層神經(jīng)元之間的是網(wǎng)絡(luò)的權(quán)值,即兩個(gè)神經(jīng)元之間的連接強(qiáng)度,隱含層或輸出層任一神經(jīng)元將前一層所有神經(jīng)元傳來的信息進(jìn)行整合,通常還會(huì)在整合過的信息中添加一個(gè)閥值.當(dāng)一對(duì)學(xué)習(xí)樣本提供給輸入神經(jīng)元后,神經(jīng)元的激活值從輸入層經(jīng)過各隱含層向輸出層傳播,然后按照減少網(wǎng)絡(luò)輸出與實(shí)際輸出樣本之間誤差的方向,從輸出層方向反向經(jīng)過個(gè)隱含層回到輸入層,從而逐步修正各連接權(quán)值,這種算法即被稱為“誤差反向傳播算法”[4]或“負(fù)梯度修正算法”[5].
根據(jù)上述原理,以下給出BP神經(jīng)網(wǎng)絡(luò)算法的實(shí)現(xiàn)過程[6].
假設(shè)X=(xij)是一個(gè)樣本輸入矩陣(i=1,2,…,n,j=1,2,…,p),每一行代表一組觀測(cè)值,且每一組輸入觀測(cè)值對(duì)應(yīng)一個(gè)輸出值,整體樣本的實(shí)際輸出樣本為Y=[y1y2… yn]T,每一列可以理解為一個(gè)指標(biāo)或?qū)傩?,那么輸入層的輸入I1即為X,通常輸入層與輸出層處的激勵(lì)函數(shù)均為線性函數(shù),那么廣義上得到輸入層神經(jīng)元的輸出O1即為X.
假設(shè)隱含層神經(jīng)元的個(gè)數(shù)為m個(gè),對(duì)應(yīng)的權(quán)值矩陣為W=(xij)(i=1,2,…,m,j=1,2,…,p),閥值矩陣為B=(b1,b2,…,bm)T,那么隱含層的輸入
I2=Wm×p×X'p×n+B×ones1×n
(1)
通常作為隱含層的激勵(lì)函數(shù)為單極S型函數(shù)即Sigmoid函數(shù),其表達(dá)式為f(x)=(1+e-x)-1,那么隱含層的輸出為O2=f(I2).輸出層的輸入與隱含層的輸入類似為I3=Wjk×O2+Bjk×ones1×n,對(duì)于第三層的輸出,由傳遞函數(shù)為線性函數(shù),所以,可以認(rèn)為O3=I3.
以下計(jì)算輸出層與隱含層和隱含層與輸入層連接權(quán)閥值的調(diào)整量分比為
(2)
(3)
觀察到f'(x)=f(x)[1-f(x)],可知隱含層的權(quán)閥值調(diào)整量為
(4)
(5)
BP神經(jīng)網(wǎng)絡(luò)的誤差反向傳播算法事實(shí)上即將每一次權(quán)閥值的調(diào)整量與前一次的權(quán)閥值相整合,直至得到誤差最小的最優(yōu)狀態(tài),具體的調(diào)整過程為
(6)
(7)
(8)
(9)
從上述推導(dǎo)可以看出,誤差通過從輸出層到隱含層的反向傳播實(shí)現(xiàn)了連接權(quán)閥值的不斷最優(yōu)調(diào)整過程,但是在實(shí)際的算法實(shí)現(xiàn)過程中,權(quán)閥值通常是通過隨機(jī)數(shù)來產(chǎn)生的,因而不易獲得一組好的權(quán)閥值.
2.2 研究過程
為了消除數(shù)據(jù)數(shù)量級(jí)與量綱方面的差異,首先對(duì)數(shù)據(jù)進(jìn)行了適當(dāng)?shù)臍w一化處理,具體得到的開盤指數(shù)對(duì)比如圖1、圖2所示.
圖1 原始開盤指數(shù)
圖2 歸一化后開盤指數(shù)
從圖1和圖2可以看出,歸一化之后的開盤指數(shù)基本保持了原始開盤指數(shù)的走勢(shì)規(guī)律.以前3000組數(shù)據(jù)為網(wǎng)絡(luò)訓(xùn)練樣本,以后505組數(shù)據(jù)為網(wǎng)絡(luò)測(cè)試樣本,設(shè)置的初始網(wǎng)絡(luò)結(jié)構(gòu)為[7]:設(shè)置兩個(gè)隱含層,且在經(jīng)過多次測(cè)試之后確定最佳的隱含層神經(jīng)元個(gè)數(shù)為50,20,隱含層與輸出層傳遞函數(shù)均為tansig,網(wǎng)絡(luò)訓(xùn)練函數(shù)為traingda,最大的迭代次數(shù)為1000次,學(xué)習(xí)率為0.1,目標(biāo)精度0.000004.
利用MATLAB軟件對(duì)3000組訓(xùn)練樣本進(jìn)行訓(xùn)練后,平均相對(duì)誤差降低到135.988,從預(yù)測(cè)股指輸出與實(shí)際股指輸出的對(duì)比情況來看,BP網(wǎng)絡(luò)結(jié)構(gòu)在一定程度上實(shí)現(xiàn)了對(duì)訓(xùn)練集股指開盤數(shù)的準(zhǔn)確判斷,且誤差基本上控制在5%以內(nèi),具體的訓(xùn)練結(jié)果與誤差顯示如圖3~4所示.
圖3 訓(xùn)練集網(wǎng)絡(luò)開盤指數(shù)預(yù)測(cè)輸出
圖4 訓(xùn)練集預(yù)測(cè)輸出與實(shí)際輸出誤差
以下利用訓(xùn)練好的BP網(wǎng)絡(luò)對(duì)測(cè)試集數(shù)據(jù)進(jìn)行仿真預(yù)測(cè),測(cè)試的具體結(jié)果如圖5所示.
圖5 測(cè)試集網(wǎng)絡(luò)開盤指數(shù)預(yù)測(cè)輸出
從圖5可以看出,訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)在測(cè)試集短期內(nèi)對(duì)開盤指數(shù)的預(yù)測(cè)較好,但是隨著時(shí)間的推遲,在股價(jià)劇烈波動(dòng)的區(qū)域,網(wǎng)絡(luò)的預(yù)測(cè)輸出與實(shí)際輸出存在著較大的差異.預(yù)測(cè)指數(shù)與實(shí)際指數(shù)之間誤差如圖6所示.
圖6 測(cè)試集網(wǎng)絡(luò)預(yù)測(cè)輸出與實(shí)際輸出誤差
從圖6可以看出,網(wǎng)絡(luò)在短期內(nèi)的預(yù)測(cè)輸出與實(shí)際輸出之間的誤差較小,但是長(zhǎng)期內(nèi)的誤差震蕩較大,預(yù)測(cè)輸出與實(shí)際輸出之間的偏離程度非常大,因而BP神經(jīng)網(wǎng)絡(luò)在對(duì)于長(zhǎng)期股票指數(shù)的預(yù)測(cè)仍然存在著較大的缺陷.為了進(jìn)一步比較測(cè)試集預(yù)測(cè)輸出與實(shí)際輸出之間的誤差,選取了股價(jià)波動(dòng)幅度較小的六天(2014年5月28日至2014年6月5日)和波動(dòng)幅度較大的六天(2015年6月18日至2015年6月26日)進(jìn)行對(duì)比,整理的輸出結(jié)果,如表1所示.
表1 網(wǎng)絡(luò)預(yù)測(cè)輸出與實(shí)際輸出結(jié)果
從表1可以看出,位于測(cè)試集初期時(shí)段且股價(jià)波動(dòng)幅度較小時(shí),BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)輸出對(duì)實(shí)際輸出具有較高的擬合度,但對(duì)股價(jià)波動(dòng)幅度較大的時(shí)段預(yù)測(cè)輸出則嚴(yán)重偏離實(shí)際輸出.
本文基于BP神經(jīng)網(wǎng)絡(luò)的誤差反向傳播算法,利用MATLAB軟件建立了以前一日股票的開盤價(jià)、收盤價(jià)、最低價(jià)、最高價(jià)、成交量、成交額和漲跌幅為自變量,以后一日的開盤價(jià)為因變量的股票指數(shù)預(yù)測(cè)模型,通過對(duì)比網(wǎng)絡(luò)的預(yù)測(cè)輸出與實(shí)際輸出得到以下兩點(diǎn)結(jié)論.
(1)BP神經(jīng)網(wǎng)絡(luò)在一定程度可以實(shí)現(xiàn)對(duì)短期股票指數(shù)較為準(zhǔn)確的預(yù)測(cè),但對(duì)于長(zhǎng)期股票指數(shù)預(yù)測(cè)效果并不理想,在實(shí)際的股票投資中,BP神經(jīng)網(wǎng)絡(luò)可以為短期指數(shù)的預(yù)測(cè)提供一定的借鑒,但對(duì)于長(zhǎng)期的投資預(yù)測(cè)仍有待預(yù)測(cè)模型進(jìn)一步的修正與改善.
(2)BP神經(jīng)網(wǎng)絡(luò)對(duì)股價(jià)波動(dòng)浮動(dòng)較小時(shí)段的股指預(yù)測(cè)要明顯比對(duì)股價(jià)波動(dòng)浮動(dòng)較大時(shí)段的股指預(yù)測(cè)準(zhǔn)確,這主要是由于股價(jià)波動(dòng)幅度較大的區(qū)域受到短期不確定的因素影響較多,如相關(guān)利好政策、市場(chǎng)羊群效應(yīng)預(yù)期等,因而預(yù)測(cè)的精度也顯著降低.
[1]王小川,史峰.MATLAB神經(jīng)網(wǎng)絡(luò)30個(gè)案例分析[M].北京:北京航空航天大學(xué)出版社,2013.
[2]陳敏.基于BP神經(jīng)網(wǎng)絡(luò)的混沌時(shí)間序列預(yù)測(cè)模型研究[D].長(zhǎng)沙:中南大學(xué),2007.
[3]韓立群.人工神經(jīng)網(wǎng)絡(luò)理論、設(shè)計(jì)及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2002.
[4]余立雪.神經(jīng)網(wǎng)絡(luò)與實(shí)例學(xué)習(xí)[M].北京:中國鐵道出版社,1996.
[5]飛思科技產(chǎn)品研發(fā)中心.神經(jīng)網(wǎng)絡(luò)與MATLAB 7實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[6]楊杰.MATLAB神經(jīng)網(wǎng)絡(luò)30例[M].北京:電子工業(yè)出版社,2014.
[7]劉玉靜,李成華,楊升明.遼寧省農(nóng)機(jī)總動(dòng)力組合預(yù)測(cè)與分析[J].農(nóng)機(jī)化研究,2007(5):31-33.
(責(zé)任編輯:陳衍峰)
2016-07-12
國家自然科學(xué)基金資助項(xiàng)目“隨機(jī)動(dòng)力系統(tǒng)的非一致指數(shù)二分性及其數(shù)值模擬”(11301001);安徽高等學(xué)校省級(jí)自然科學(xué)基金項(xiàng)目“基于分?jǐn)?shù)布朗運(yùn)動(dòng)的組合信用衍生品定價(jià)及其應(yīng)用研究”(KJ2013Z001);安徽財(cái)經(jīng)大學(xué)校級(jí)重點(diǎn)研究項(xiàng)目“信用衍生品定價(jià)研究”(ACKY1402ZD)
黃宏運(yùn),安徽合肥人,安徽財(cái)經(jīng)大學(xué)金融學(xué)院在讀.
F830.91;O29
A
1008-7974(2016)05-0032-03
10.13877/j.cnki.cn22-1284.2016.10.011