李娌芝,楊柱元,官心果,何翠玲,王春菊
(云南民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,昆明 650500)
股票市場作為中國證券市場的主要組成部分,準(zhǔn)確地預(yù)測股票價(jià)格,意味著投資者能獲得高回報(bào),政府能對市場進(jìn)行有效監(jiān)管.股票價(jià)格的變化是一種典型的非線性時(shí)間序列,股票的預(yù)測方法也是多樣的,大致有時(shí)間序列分析法[1]、解釋性預(yù)測法.小波神經(jīng)網(wǎng)絡(luò)具有較好的逼近非線性映射[2]的能力.筆者提出基于BP[3]和小波神經(jīng)網(wǎng)絡(luò)的預(yù)測方法,對股票進(jìn)行分析和預(yù)測.
小波分析是傅里葉分析發(fā)展史上的里程碑,小波變換繼承和發(fā)展了短時(shí)傅里葉變換局部化的思想,其在低頻部分具有較高的頻率分辨率和較低的時(shí)間分辨率,在高頻部分具有較高的時(shí)間分辨率和較低的頻率分辨率.小波網(wǎng)絡(luò)的基本思想是用小波元代替神經(jīng)元,通過仿射變換建立小波變換和網(wǎng)絡(luò)系數(shù)的連接.小波母函數(shù)是正負(fù)交替的振蕩波形,其平均值為0.
將母函數(shù)ψ(t)經(jīng)過伸縮和平移得到:
其中a為伸縮因子,b為平移因子.對任意函數(shù)的連續(xù)小波變換為:
(1)
其重構(gòu)公式(逆變換)為
(2)
小波神經(jīng)網(wǎng)絡(luò)是將小波分析理論[4]應(yīng)用到神經(jīng)網(wǎng)絡(luò)中,從而形成的一種前饋網(wǎng)絡(luò)[5],其有理論指導(dǎo),且誤差函數(shù)不存在局部極小點(diǎn)[6],收斂速度快.如果恰當(dāng)?shù)剡x擇網(wǎng)絡(luò)的權(quán)值、位移和小波函數(shù),則小波神經(jīng)網(wǎng)絡(luò)[7]就可以逼近函數(shù)f(x).
其中,隱含層輸出計(jì)算公式為
(3)
小波神經(jīng)網(wǎng)絡(luò)的隱節(jié)點(diǎn)函數(shù)是小波函數(shù),而輸入層到隱層的權(quán)值和閾值分別為小波的伸縮和平移參數(shù).該文采用的小波函數(shù)為Morlet母小波基函數(shù),數(shù)學(xué)公式為
y=cos(5x)e-x2/2.
(4)
輸出層計(jì)算公式為
(5)
式中,ωij為隱入層到隱含層權(quán)值;cjk隱含層到輸出層的權(quán)值;h(i)為第個(gè)隱含層節(jié)點(diǎn)的輸出;l為隱含層節(jié)點(diǎn)數(shù);m為輸出層節(jié)點(diǎn)數(shù).
確定了小波網(wǎng)絡(luò)的結(jié)構(gòu)后,小波基函數(shù)的平移和伸縮參數(shù)也可事先確定,所以小波網(wǎng)絡(luò)的可調(diào)參數(shù)只有權(quán)值.由于小波網(wǎng)絡(luò)的輸出與權(quán)值是線性的,采用梯度法的學(xué)習(xí)訓(xùn)練過程具有指數(shù)收斂性和抗噪聲干擾的魯棒性.其誤差修正過程[8-9]如下.
1) 計(jì)算網(wǎng)絡(luò)預(yù)測誤差
(6)
2) 根據(jù)預(yù)測誤差e校正小波基函數(shù)系數(shù)和小波網(wǎng)絡(luò)的權(quán)重.
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
式中,η為學(xué)習(xí)速率.
小波神經(jīng)網(wǎng)絡(luò)算法:
步驟1 網(wǎng)絡(luò)初始化.隨機(jī)初始化小波函數(shù)伸縮因子ak、平移因子bk以及網(wǎng)絡(luò)連接權(quán)重ωij、ωjk,設(shè)置網(wǎng)絡(luò)學(xué)習(xí)速率η.
步驟2 樣本分類.把樣本分為訓(xùn)練樣本和測試樣本,訓(xùn)練樣本用于訓(xùn)練網(wǎng)絡(luò),測試樣本用于測試網(wǎng)絡(luò)預(yù)測精度.
步驟3 預(yù)測輸出.把訓(xùn)練樣本輸入網(wǎng)絡(luò),計(jì)算網(wǎng)絡(luò)預(yù)測輸出并計(jì)算網(wǎng)絡(luò)輸出和期望輸出的誤差e.
步驟4 權(quán)值修正.根據(jù)誤差e修正網(wǎng)絡(luò)權(quán)值和小波函數(shù)參數(shù),使網(wǎng)絡(luò)預(yù)測值逼近期望值.
步驟5 判斷算法是否結(jié)束,若沒有結(jié)束,則返回步驟3.
本文將浦發(fā)銀行股票數(shù)據(jù)作為研究對象,選擇2016-12-16—2017-12-10期間的245個(gè)數(shù)據(jù)[10],將該數(shù)據(jù)分成兩部分,將前面206個(gè)數(shù)據(jù)作為網(wǎng)絡(luò)的訓(xùn)練樣本,后面39個(gè)數(shù)據(jù)作為網(wǎng)絡(luò)的測試樣本.
對于上述股票數(shù)據(jù),其網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)設(shè)置如下:
首先選擇具有單隱層的3層小波神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).由于股票的交易周期是一周,且只從周一到周五,股票處于交易運(yùn)作狀態(tài),周六和周日處于休息狀態(tài).因此選擇神經(jīng)網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)為5,即前5日的收盤價(jià).
神經(jīng)網(wǎng)絡(luò)預(yù)測用訓(xùn)練好的網(wǎng)絡(luò)預(yù)測函數(shù)輸出,并對預(yù)測結(jié)果進(jìn)行分析,見圖1.
將BP網(wǎng)絡(luò)對股票數(shù)據(jù)進(jìn)行分析,其隱含層節(jié)點(diǎn)數(shù)根據(jù)參考公式確定節(jié)點(diǎn)數(shù)的大致范圍,然后用試湊的方法確定最佳節(jié)點(diǎn)數(shù).誤差精度為0.004,經(jīng)過2 000次網(wǎng)絡(luò)訓(xùn)練,得到如下的預(yù)測圖、預(yù)測誤差圖.
經(jīng)過訓(xùn)練的網(wǎng)絡(luò)將預(yù)測股票數(shù)據(jù)的最后39個(gè)數(shù)據(jù),得到的預(yù)測圖和誤差圖如圖2:
該文采用小波函數(shù)作為隱含層的激勵函數(shù),選取適合的尺寸參數(shù)和平移參數(shù),調(diào)節(jié)小波系數(shù)來達(dá)到對函數(shù)的最佳逼近,同時(shí)借助小波分析理論指導(dǎo)網(wǎng)絡(luò)的初始化方法.
隱含層神經(jīng)元的個(gè)數(shù)的確定影響預(yù)測精度的高低,當(dāng)確定好隱含層神經(jīng)元個(gè)數(shù)后,就可以用訓(xùn)練好的小波網(wǎng)絡(luò)進(jìn)行仿真,得到擬合圖、擬合誤差圖、預(yù)測圖與預(yù)測誤差圖,BP與Morlet小波神經(jīng)網(wǎng)絡(luò)預(yù)測值圖及絕對誤差圖截取部分如下:
表1 BP與Morlet小波神經(jīng)網(wǎng)絡(luò)預(yù)測值及相應(yīng)的絕對誤差表
表2 BP神經(jīng)網(wǎng)絡(luò)與Morlet小波神經(jīng)網(wǎng)絡(luò)平均絕對誤差百分比表 %
從表2可以看出,小波神經(jīng)網(wǎng)絡(luò)能夠更準(zhǔn)確地預(yù)測股票,其預(yù)測值接近于期望值.
小波網(wǎng)絡(luò)通過訓(xùn)練學(xué)習(xí),既能逼近函數(shù)的整體,又能刻畫函數(shù)的變化細(xì)節(jié),使得函數(shù)的逼近效果更好.這正是它優(yōu)于其他網(wǎng)絡(luò)之處.小波網(wǎng)絡(luò)的可調(diào)參數(shù)最少,有利于縮短網(wǎng)絡(luò)的訓(xùn)練時(shí)間.