張煌,梁朋,肖琨武,徐嘉蔚,施三支
(1.長春理工大學(xué) 理學(xué)院,長春 130022;2.長春理工大學(xué) 光電工程學(xué)院,長春 130022)
期貨市場被譽(yù)為經(jīng)濟(jì)學(xué)中最理想的市場形式,是基于廣大商品生產(chǎn)者、貿(mào)易商和加工商的廣泛商業(yè)實(shí)踐而產(chǎn)生的。國內(nèi)期貨市場在經(jīng)歷了方案研發(fā)初步實(shí)施階段、迅猛發(fā)展階段之后目前正處于整頓階段,而由于期貨交易的市場管理和風(fēng)險(xiǎn)評(píng)估能力不斷得到提升,同時(shí)越來越多的投資者針對期貨進(jìn)行研究,整個(gè)市場的規(guī)范化得到了極大的改善。
滬深300指數(shù)樣本覆蓋了滬深市場60%左右的市值,具有良好的市場代表性、反映股市的綜合變動(dòng),可以給投資者提供權(quán)威的投資方向?,F(xiàn)如今國內(nèi)許多學(xué)者針對滬深300股指期貨也做了許多研究,建立不同的預(yù)測模型.其中闞子良,蔡志丹[1]提出了一種基于優(yōu)化機(jī)器學(xué)習(xí)方法的股價(jià)時(shí)間序列預(yù)測方法。李鵬飛[2]利用ARMA模型與GRNN廣義神經(jīng)網(wǎng)絡(luò)模型相結(jié)合對收盤價(jià)進(jìn)行短期預(yù)測。張翱翔[3]利用BP神經(jīng)網(wǎng)絡(luò)選取四只股票來進(jìn)行國內(nèi)外股票價(jià)格預(yù)測。黃卿,謝合亮[4],基于機(jī)器學(xué)習(xí)方法研究BP神經(jīng)網(wǎng)絡(luò),SVM,與XGBoost對期貨數(shù)據(jù)預(yù)測的影響。Esra Akdeniz[5]利用神經(jīng)網(wǎng)絡(luò)來分析非線性時(shí)間序列。Dingmu Cao,Wen Long,Wenning Yang[6]針對行業(yè)內(nèi)指數(shù)進(jìn)行相關(guān)性研究,發(fā)現(xiàn)指數(shù)出現(xiàn)周期性特征。
綜上所述,可以發(fā)現(xiàn)前人對于滬深300指數(shù)的研究,雖然采取不同的方法,但是他們大多都是針對一種方法進(jìn)行研究,也沒有將他們所采用的方法與多種優(yōu)化去噪方法相結(jié)合。因此考慮使用神經(jīng)網(wǎng)絡(luò)的方法,將Elman與BP兩種神經(jīng)網(wǎng)絡(luò)模型對滬深300股指期貨數(shù)據(jù)進(jìn)行學(xué)習(xí)訓(xùn)練從而選出最佳的方法,再通過與小波去噪優(yōu)化方法相結(jié)合從而建立最優(yōu)的預(yù)測模型,對滬深300指數(shù)的開盤價(jià),收盤價(jià)做出預(yù)測,得出結(jié)論。
小波去噪原理如圖1:
圖1 小波去噪流程圖
小波去噪源于傅里葉分析,可以沿時(shí)間軸前后平移,或按比例伸展和壓縮以獲取低頻和高頻小波,從而提取出已含噪聲信號(hào)中的有用信號(hào)。一個(gè)含噪的模型可以表示為:
式中,f(k)為有用信號(hào),S(k)為含噪聲信號(hào),e(k)為噪聲,ε為噪聲系數(shù)的標(biāo)準(zhǔn)偏差。
去噪的關(guān)鍵是在第二步中對小波系數(shù)進(jìn)行去噪處理,根據(jù)處理規(guī)則的不同,小波去噪的常見方法可分為以下幾類:1)模極大值去噪法;2)基于各尺度下小波系數(shù)相關(guān)性進(jìn)行去噪(屏蔽去噪法);3)小波閾值去噪法;4)平移不變量法;
在這里選擇小波閾值進(jìn)行去噪,其計(jì)算速度快,噪聲能得到較好抑制,且代表原始信號(hào)的特征尖峰點(diǎn)能得到較好的保留。同時(shí)選取函數(shù)thselect獲取閾值,利用DB4小波進(jìn)行4層分解,對開盤價(jià),收盤價(jià)進(jìn)行消噪處理。
BP神經(jīng)網(wǎng)絡(luò)最早由Rumelhart,McCelland等[7]科學(xué)家提出,BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過程組合,正向傳播時(shí),輸入樣本從輸入層傳入,經(jīng)各隱含層逐層處理,傳向輸出層。若輸出層的實(shí)際輸出與期望輸出不符,則轉(zhuǎn)入誤差的反向傳播階段。
反向傳播時(shí),將輸出以某種形式逐層反傳,并將誤差分配給各層,將得到的誤差信號(hào)作為修正各單元權(quán)值的依據(jù)。
神經(jīng)網(wǎng)絡(luò)示意如圖2:
圖2 神經(jīng)網(wǎng)絡(luò)示意圖
①網(wǎng)絡(luò)初始化
賦予各連接權(quán)值(-1,1)內(nèi)的隨機(jī)數(shù),設(shè)定誤差函數(shù)e,此處設(shè)定均方誤差為:
net.trainParam.goal=0.65*10^(-3)
②樣本選取
選取k個(gè)輸入樣本以及對應(yīng)期望輸出;
③隱含層計(jì)算
④求偏導(dǎo)數(shù)
利用期望輸出與實(shí)際輸出,計(jì)算誤差函數(shù)對輸出層的各神經(jīng)元的偏導(dǎo)數(shù);
⑤修正權(quán)值
利用輸出層各神經(jīng)元偏導(dǎo)數(shù)和隱含層各神經(jīng)元的輸出修正連接權(quán)值;
⑥計(jì)算全局誤差
在網(wǎng)絡(luò)的設(shè)計(jì)上應(yīng)注意針對網(wǎng)絡(luò)的層數(shù),隱層神經(jīng)元的個(gè)數(shù),初始權(quán)值,以及學(xué)習(xí)速率,期望誤差進(jìn)行選取。
先選取2012年7月24日至2018年10月12日的滬深300指數(shù)期貨的共1528個(gè)交易日的收盤價(jià)作為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)數(shù)據(jù),再分別利用Elman神經(jīng)網(wǎng)絡(luò)模型與BP神經(jīng)網(wǎng)絡(luò)模型通過Matlab軟件進(jìn)行分析,從而得到結(jié)果。
Elman神經(jīng)網(wǎng)絡(luò)又稱SRN(Simple Recurrent Network)由Jeffrey L.Elman[8]提出,是最早的循環(huán)神經(jīng)網(wǎng)絡(luò)。Elman神經(jīng)網(wǎng)絡(luò)流程如圖3:
圖3 Elman神經(jīng)網(wǎng)絡(luò)流程圖
抽取相鄰七天數(shù)據(jù)為一個(gè)樣本,其中前六天設(shè)為自變量x,第七天為目標(biāo)函數(shù)值y,將前1400個(gè)數(shù)據(jù)作為訓(xùn)練集,后122個(gè)數(shù)據(jù)作為測試集。
先將訓(xùn)練集代入建立的Elman神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行學(xué)習(xí),再進(jìn)行預(yù)測,并與已知的測試集進(jìn)行比較得出誤差分析。選擇的各層神經(jīng)元個(gè)數(shù)為:
輸入層:6個(gè);隱藏層:15個(gè);輸出層:1個(gè),迭代次數(shù)為2000次。
訓(xùn)練集的真實(shí)值與預(yù)測值差距如圖4所示:
圖4 訓(xùn)練集的真實(shí)值與預(yù)測值折線圖
訓(xùn)練集的真實(shí)值與預(yù)測值的局部放大圖如圖5所示:
圖5 訓(xùn)練集的真實(shí)值與預(yù)測值的局部放大圖
由圖5可見,網(wǎng)絡(luò)對數(shù)據(jù)的擬合效果不是很好。網(wǎng)絡(luò)實(shí)際輸出與真實(shí)值的均方誤差值mse=37.1。再將測試集輸入網(wǎng)絡(luò),得到網(wǎng)絡(luò)實(shí)際輸出與真實(shí)值的均方誤差33.6,該值雖然比訓(xùn)練集要低的多,但誤差還是非常大。
測試集真實(shí)值與預(yù)測值的差距如圖6所示:
圖6 測試集的真實(shí)值與預(yù)測值
測試數(shù)據(jù)測試結(jié)果的殘差如圖7所示:
圖7 測試集殘差
因此,繼續(xù)對Elman網(wǎng)絡(luò)的神經(jīng)元的個(gè)數(shù)以及迭代次數(shù)進(jìn)行多次調(diào)試,得到當(dāng)神經(jīng)元個(gè)數(shù)為40,最大迭代次數(shù)為4300次時(shí)效相對誤差相對減少,此時(shí)訓(xùn)練集的真實(shí)值與預(yù)測值的相對均方誤差mse=22.8,選取最后2天的預(yù)測結(jié)果與實(shí)際對比,顯示如表1所示:
表1 Elman預(yù)測顯示表
由得出的預(yù)測值與實(shí)際值的誤差結(jié)果來看,此模型雖具有一定的預(yù)測能力但是仍達(dá)不到理想數(shù)值,因此繼續(xù)對另外一種神經(jīng)網(wǎng)絡(luò)進(jìn)行嘗試。
首先利用BP神經(jīng)網(wǎng)絡(luò)模型對1026個(gè)數(shù)據(jù)進(jìn)行學(xué)習(xí),選擇恰當(dāng)?shù)纳窠?jīng)元個(gè)數(shù),訓(xùn)練次數(shù)等等,對于2018年10月11日與2018年10月12日兩天的開盤價(jià)以及收盤價(jià)進(jìn)行預(yù)測。本文中設(shè)置的輸入層與輸出層的神經(jīng)元個(gè)數(shù)都為2,設(shè)置三層隱含層,通過修改三層隱含層個(gè)數(shù)來完成優(yōu)化模型的預(yù)測。
利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測時(shí)與實(shí)際的對比曲線如圖8所示:
圖8 BP預(yù)測最高價(jià)與最低價(jià)對比圖
發(fā)現(xiàn)其預(yù)測效果并沒有很好地達(dá)到預(yù)期數(shù)值,因此考慮將BP神經(jīng)網(wǎng)絡(luò)與小波去噪相結(jié)合,先對原始數(shù)據(jù)進(jìn)行優(yōu)化去噪,消除十分尖銳的異常數(shù)據(jù)再利用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行學(xué)習(xí)預(yù)測。
先對數(shù)據(jù)進(jìn)行四層小波分解試圖消除數(shù)據(jù)中異常尖銳的點(diǎn)。再將優(yōu)化處理后的數(shù)據(jù)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合進(jìn)行學(xué)習(xí)。加入小波去噪后的數(shù)據(jù)擬合前后對比如圖9所示:
圖9 BP神經(jīng)網(wǎng)絡(luò)結(jié)合小波去噪擬合與實(shí)際對比圖
收盤價(jià),開盤價(jià)實(shí)際與預(yù)測值差異局部放大曲線如圖10所示:
圖10 局部放大圖
通過修改各神經(jīng)網(wǎng)絡(luò)層神經(jīng)元個(gè)數(shù)而得到的預(yù)測結(jié)果顯示如表2所示:
表2 模型通過修改神經(jīng)網(wǎng)絡(luò)參數(shù)得到的部分預(yù)測表
其中(J,K,L):J:第一隱含層神經(jīng)元個(gè)數(shù);K:第二隱含層神經(jīng)元個(gè)數(shù);L:第三隱含層神經(jīng)元個(gè)數(shù),迭代次數(shù)為:5000。
通過不斷調(diào)試參數(shù)本文得到三層隱含層神經(jīng)元個(gè)數(shù)配比為(2,20,2)時(shí),誤差最小,經(jīng)過計(jì)算得到誤差約為1.1%,即準(zhǔn)確率為98.9%,這說明了構(gòu)建的模型有一定的參考價(jià)值,能進(jìn)行推廣。
通過構(gòu)建的兩類不同的神經(jīng)網(wǎng)絡(luò)模型對滬深300股指期貨數(shù)據(jù)進(jìn)行分析預(yù)測從而尋找出了更為適宜的模型。分別將Elman神經(jīng)網(wǎng)絡(luò)模型與BP神經(jīng)網(wǎng)絡(luò)模型對數(shù)據(jù)進(jìn)行分析,利用已有數(shù)據(jù)先使模型進(jìn)行學(xué)習(xí),再通過調(diào)試參數(shù),反復(fù)修改神經(jīng)元個(gè)數(shù),以及學(xué)習(xí)次數(shù)等等優(yōu)化途徑不斷減小誤差,從而對不同模型的最終誤差率進(jìn)行比較。
由神經(jīng)網(wǎng)絡(luò)模型分析驗(yàn)證發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)對于股指數(shù)據(jù)的預(yù)測誤差率更低,因此首先考慮對BP神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化處理,考慮利用小波去噪對于數(shù)據(jù)進(jìn)行預(yù)處理,消除數(shù)據(jù)中異常尖銳的點(diǎn),再將去噪處理后的數(shù)據(jù)代入模型中。經(jīng)過不斷調(diào)試誤差率最終達(dá)到約為1.1%,但由于股指基數(shù)較大,此誤差仍未能很好的達(dá)到預(yù)期,故仍需繼續(xù)進(jìn)行調(diào)試并將多種方法相互組合從而尋求最優(yōu)的預(yù)測模型方案。