王剛 許曉兵
摘要:本文提出基于小波分析與神經(jīng)網(wǎng)絡(luò)時間序列的股票預(yù)測方法,把股票每日最高價、最低價以及開盤價進(jìn)行小波去噪處理,然后把去噪后的數(shù)據(jù)利用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測分析,實(shí)驗(yàn)的結(jié)果表明利用處理后的數(shù)據(jù)進(jìn)行分析比傳統(tǒng)的直接使用神經(jīng)網(wǎng)絡(luò)進(jìn)行分析的精準(zhǔn)度更高,預(yù)測的效果更好。
關(guān)鍵字:小波分析;去噪處理;神經(jīng)網(wǎng)絡(luò);股票預(yù)測
一、引言
從股票產(chǎn)生起,人們就開始對它進(jìn)行各種各樣的研究,研究表明股票市場是一個極其復(fù)雜的動力學(xué)系統(tǒng)。高噪聲、嚴(yán)重非線性和投資者的盲目任意性等因素決定了股票預(yù)測的復(fù)雜與困難。針對股票市場表現(xiàn)的不同特點(diǎn),人們提出了多種多樣的預(yù)測方法,常用的預(yù)測方法有下面幾種:
1.證券投資分析法。這是分析和預(yù)測股價變化方向和趨勢的方法,可分為基本分析法、技術(shù)分析法和組合分析法三大類。
2.時間序列分析法。這種方法主要是通過建立股價及綜合指數(shù)之間的時間序列相關(guān)辨識模型。
3.其它預(yù)測方法。如專家評估法和市場調(diào)查法等定性方法,季節(jié)變動法、馬爾柯夫法和判別分析等定量預(yù)測方法。
4.神經(jīng)網(wǎng)絡(luò)預(yù)測法。人工神經(jīng)網(wǎng)絡(luò)以其獨(dú)特的信息處理特點(diǎn)在許多領(lǐng)域得到了成功應(yīng)用。它不僅具有強(qiáng)大的非線性映射能力,可以實(shí)現(xiàn)復(fù)雜的因果關(guān)系,而且還具有許多優(yōu)秀品質(zhì),如:自適應(yīng)、自學(xué)習(xí)和糾錯性等。BP神經(jīng)網(wǎng)絡(luò)模型作為證券市場預(yù)測的基本因果模型,收到良好的效果。
5.小波神經(jīng)網(wǎng)絡(luò)預(yù)測法。小波神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)的一種改進(jìn),它融合了神經(jīng)網(wǎng)絡(luò)和小波的優(yōu)點(diǎn)。與一般的神經(jīng)網(wǎng)絡(luò)相比它對高頻信號的適應(yīng)能力更強(qiáng),預(yù)測效果更好[1]-[2]。
由于神經(jīng)網(wǎng)絡(luò)具有可任意逼近非線性連續(xù)函數(shù)的學(xué)習(xí)能力和對雜亂信息的綜合能力,國內(nèi)外眾多學(xué)者都曾使用其對股票數(shù)據(jù)進(jìn)行預(yù)測。White(1992)嘗試用神經(jīng)網(wǎng)絡(luò)來預(yù)測IBM普通股每日的收益率;吳華星(1998)根據(jù)自組織模式理論建立了基于前饋神經(jīng)網(wǎng)絡(luò)的股票價格預(yù)測系統(tǒng);宋軍等(2007)采用Elman回歸神經(jīng)網(wǎng)絡(luò)分析方法,通過對股票市場的技術(shù)指標(biāo)的建模, 尋求股票價格的變化規(guī)律, 實(shí)現(xiàn)對股票價格的預(yù)測。但是經(jīng)過研究發(fā)現(xiàn),使用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測一旦陷入局部最小值就會使其預(yù)測結(jié)果大打折扣。王建偉(2004)運(yùn)用Haar和dbN小波對鞍山信托的收盤價和成交量進(jìn)行變換再用神經(jīng)網(wǎng)絡(luò)對股票價格預(yù)測取得了較好的預(yù)測結(jié)果;蘭秋軍等(2004)[4]和鄧凱旭、宋寶瑞(2006)討論了小波變換在金融時間序列中的應(yīng)用,得出小波方法可有效消除金融時間序列中的噪聲,并能充分保留原信號的特征;李萍(2010)結(jié)合小波變換與神經(jīng)網(wǎng)絡(luò)對匯率等一些經(jīng)濟(jì)數(shù)據(jù)進(jìn)行預(yù)測也收到了很好的效果。[5]可見把小波與神經(jīng)網(wǎng)絡(luò)相結(jié)合的分析預(yù)測方法在經(jīng)濟(jì)數(shù)據(jù)預(yù)測中能夠收到很好的效果。開盤價是股票當(dāng)天第一筆成交價格,是市場各方對當(dāng)天股價的一個預(yù)期,對股價的走勢具有一定的預(yù)測作用。本文通過小波對股票每日最高價、最低價以及開盤價進(jìn)行去噪處理,然后用BP神經(jīng)網(wǎng)絡(luò)對開盤價進(jìn)行預(yù)測。避免了非正常價格對股票的影響,提高了預(yù)測的精度。
二、小波消噪的基本原理
小波分析方法是一種窗口大小固定但其形狀可以改變,時間窗和頻率都可以改變的時頻局部化分析方法。即在低頻部分具有較高的頻率分辨率和較低的時間分辨率,在高頻部分具有較高的時間分辨率和較低的頻率分辨率,所以被譽(yù)為數(shù)學(xué)顯微鏡,正是這種特性,使小波變換具有對信號的自適應(yīng)性。小波分析有兩個顯著特點(diǎn):一是在時域都具有緊支集或近似緊支集;二是正負(fù)交替的波動性。小波分析是將信號分解成一系列小波函數(shù)的疊加,而這些小波函數(shù)都是由一個母小部進(jìn)行比較,獲取的是信號的高頻部分。小波分析理論有一個重要的特色就是可以進(jìn)行多分辨率分析。信號可以通過多層次分解為反映高頻信息的細(xì)節(jié)部分和反映低頻信息的概貌部分,通過這種多分辨率分解,信號和噪聲通常會有不同的表現(xiàn),從而可達(dá)到信噪分離的目的。綜上所述我們可以利用小波函數(shù)去除股票價格信息中包含的噪聲因素。
三、BP神經(jīng)網(wǎng)絡(luò)
BP(Back Propagation)網(wǎng)絡(luò)是1986年由Rumelhart和McCelland為首的科學(xué)家小組提出,是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。BP網(wǎng)絡(luò)能學(xué)習(xí)和存貯大量的輸入-輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。BP神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)包括輸入層(input)、隱含層(hide layer)和輸出層(output layer)。它是利用非線性可微分函數(shù)進(jìn)行權(quán)值訓(xùn)練的多層網(wǎng)絡(luò),具有極強(qiáng)的容錯性、自組織和自學(xué)習(xí)性,有著較好的函數(shù)逼近和泛化能力[6]。
BP神經(jīng)網(wǎng)絡(luò),即誤差反傳誤差反向傳播算法的學(xué)習(xí)過程,由信息的正向傳播和誤差的反向傳播兩個過程組成。輸入層各神經(jīng)元負(fù)責(zé)接收來自外界的輸入信息,并傳遞給中間層各神經(jīng)元;中間層是內(nèi)部信息處理層,負(fù)責(zé)信息變換,根據(jù)信息變化能力的需求,中間層可以設(shè)計(jì)為單隱層或者多隱層結(jié)構(gòu);最后一個隱層傳遞到輸出層各神經(jīng)元的信息,經(jīng)進(jìn)一步處理后,完成一次學(xué)習(xí)的正向傳播處理過程,由輸出層向外界輸出信息處理結(jié)果。當(dāng)實(shí)際輸出與期望輸出不符時,進(jìn)入誤差的反向傳播階段。誤差通過輸出層,按誤差梯度下降的方式修正各層權(quán)值,向隱層、輸入層逐層反傳。周而復(fù)始的信息正向傳播和誤差反向傳播過程,是各層權(quán)值不斷調(diào)整的過程,也是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的過程,此過程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差減少到可以接受的程度,或者預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。[7]-[9]
在金融數(shù)據(jù)分析預(yù)測中經(jīng)常會遇到一些復(fù)雜的非線性系統(tǒng),這些系統(tǒng)狀態(tài)方程復(fù)雜,難以用數(shù)學(xué)方法準(zhǔn)確建模。在這種情況下,可以建立BP神經(jīng)網(wǎng)絡(luò)表達(dá)這些非線性系統(tǒng)。該方法把未知系統(tǒng)看成是一個黑箱,首先用系統(tǒng)輸入輸出數(shù)據(jù)訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),使網(wǎng)絡(luò)能夠表達(dá)該未知函數(shù),然后就可以用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)預(yù)測系統(tǒng)的輸出。本文將把股票每日的最高價和最低價作為輸入,股票每日的開盤價作為輸出訓(xùn)練神經(jīng)網(wǎng)絡(luò),使得訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)能夠預(yù)測股票開盤價的輸出。
四、實(shí)例分析與結(jié)果
本文采用MATLAB小波分析功能實(shí)現(xiàn)原始股票數(shù)據(jù)的分解與重構(gòu),采用MATLAB語言編程。股票數(shù)據(jù)采用江蘇洋河酒廠股份有限公司(SHE:002304)2012年4月到6月每日股票的開盤價、最高價和最低價共計(jì)150組數(shù)據(jù)。通過小波分解與重構(gòu)后,前140組數(shù)據(jù)用于訓(xùn)練神經(jīng)網(wǎng)絡(luò),后10組數(shù)據(jù)用于預(yù)測檢驗(yàn)。
根據(jù)正交性、緊支撐性、消失矩和對稱性等與去噪關(guān)系緊密的小波函數(shù)的特性,我們選擇小波,用函數(shù)獲得信號的默認(rèn)閾值將其多分辨率分解到第3層,使用命令函數(shù)來實(shí)現(xiàn)消噪過程。每日開盤價的消噪結(jié)果如圖4-1所示。由于實(shí)例中有兩個輸入?yún)?shù),一個輸出參數(shù),所以我們選擇BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)為2—5—1,即輸入層有兩個節(jié)點(diǎn),隱含層有五個節(jié)點(diǎn),輸出層有一個節(jié)點(diǎn)。然后把經(jīng)過消噪的數(shù)據(jù)輸入到BP神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練和預(yù)測,預(yù)測的結(jié)果如圖4-2所示。為了比較降噪前和降噪后的BP神經(jīng)網(wǎng)絡(luò)預(yù)測誤差的區(qū)別我們再使用未降噪的數(shù)據(jù)進(jìn)行預(yù)測并保持BP神經(jīng)網(wǎng)絡(luò)的各項(xiàng)參數(shù)不變,預(yù)測結(jié)果如圖4-3所示。我們得到經(jīng)過降噪處理后的數(shù)據(jù)預(yù)測十天開盤價的總誤差為:4.0091,而未處理過的數(shù)據(jù)預(yù)測十天開盤價的總誤差為:35.6732。由此可得基于小波消噪與神經(jīng)網(wǎng)絡(luò)時間序列的股票預(yù)測方法明顯優(yōu)于普通的神經(jīng)網(wǎng)絡(luò)預(yù)測方法。