張倩玉,嚴(yán)冬梅,韓佳彤
天津財經(jīng)大學(xué) 理工學(xué)院,天津300222
股票市場是投資市場最重要的組成部分之一。與其他行業(yè)相比,股票市場有著更高的投資回報率,同時也存在著更高的風(fēng)險,股票市場預(yù)測一直是投資者密切關(guān)注的問題。因此,對股票市場預(yù)測方法的研究以及如何減小股票價格預(yù)測的誤差成為了國內(nèi)外眾多學(xué)者的研究熱點。目前,常見的股票預(yù)測方法包括計量經(jīng)濟(jì)學(xué)方法和機(jī)器學(xué)習(xí)方法。
計量經(jīng)濟(jì)學(xué)方法是人們根據(jù)統(tǒng)計學(xué)理論,應(yīng)用統(tǒng)計分析模型對股票價格進(jìn)行預(yù)測。常用的模型有自回歸滑動平均模型(Autoregressive Moving Average,ARMA)、差分整合移動平均自回歸模型(Autoregressive Integrated Moving Average,ARIMA)、廣義自回歸條件異方差模型(Autoregressive Conditional Heteroskedasticity,GRACH)。吳玉霞等人[1]通過建立ARIMA模型對創(chuàng)業(yè)板市場股票價格的變動規(guī)律和趨勢進(jìn)行了預(yù)測。楊琦等人[2]對數(shù)據(jù)初步分析并建立了ARMA模型,后通過加入GARCH項來消除模型中的條件異方差性,得到ARMA-GARCH模型對大眾公用股票價格進(jìn)行分析預(yù)測。計量經(jīng)濟(jì)學(xué)模型雖然比較客觀,有良好的理論支撐,但其優(yōu)勢體現(xiàn)在處理線性數(shù)據(jù)上且需要嚴(yán)格的基礎(chǔ)假設(shè),而股票價格序列是一種復(fù)雜的非線性時間序列,因此使用傳統(tǒng)的計量經(jīng)濟(jì)模型無法達(dá)到最理想的預(yù)測效果。
與計量經(jīng)濟(jì)模型相比,機(jī)器學(xué)習(xí)方法可直接從數(shù)據(jù)中挖掘有價值的信息,無需預(yù)先制定假設(shè),并且機(jī)器學(xué)習(xí)方法能更好地處理非線性數(shù)據(jù),因此被廣泛應(yīng)用于股票價格預(yù)測。常用的機(jī)器學(xué)習(xí)方法包括決策樹、支持向量機(jī)(Support Vector Machine,SVM)、支持向量回歸機(jī)(Support Vactor Regression,SVR)、神經(jīng)網(wǎng)絡(luò)等。其中,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制使其擁有更強(qiáng)大的學(xué)習(xí)能力和非線性擬合能力,在股票價格預(yù)測領(lǐng)域更具有優(yōu)勢。
神經(jīng)網(wǎng)絡(luò)概念的提出要追溯到20世紀(jì)40年代,但由于網(wǎng)絡(luò)自身的局限性,人們對神經(jīng)網(wǎng)絡(luò)的研究一度陷入了低潮,直到20世紀(jì)80年代玻爾茲曼機(jī)和反向傳播(Backpropagation,BP)算法[3]的出現(xiàn)解決了多層網(wǎng)絡(luò)的訓(xùn)練問題,神經(jīng)網(wǎng)絡(luò)重新成為了研究熱點。隨后,國內(nèi)外眾多學(xué)者開始利用神經(jīng)網(wǎng)絡(luò)進(jìn)行股票價格預(yù)測。White等人[4]將BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于股票價格預(yù)測,并使用IBM個股作為實驗對象,但由于出現(xiàn)了梯度爆炸現(xiàn)象,使參數(shù)陷入局部最小值,因此沒有達(dá)到預(yù)想的預(yù)測效果,但作者指出可以通過對網(wǎng)絡(luò)進(jìn)行調(diào)整以及對優(yōu)化算法進(jìn)行改造來提升模型性能。向小東等人[5]提出一種激勵函數(shù)來加速BP算法的收斂,通過調(diào)整參數(shù)并結(jié)合BP算法對股票價格進(jìn)行預(yù)測。張坤等人[6]使用小波分解將股票價格數(shù)據(jù)分解為不同的尺度,利用Elman神經(jīng)網(wǎng)絡(luò)分別對不同尺度的數(shù)據(jù)進(jìn)行預(yù)測,最后對各尺度數(shù)據(jù)的預(yù)測結(jié)果使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行合成得到最終預(yù)測結(jié)果。肖菁等人[7]為避免算法陷入局部最優(yōu),基于LM算法建立了三層BP神經(jīng)網(wǎng)絡(luò)對股價進(jìn)行預(yù)測,并利用遺傳算法優(yōu)化網(wǎng)絡(luò)的權(quán)重和閾值,提高網(wǎng)絡(luò)的預(yù)測精度。于卓熙等人[8]運用主成分分析法對影響股票價格的指標(biāo)進(jìn)行降維,并使用廣義回歸神經(jīng)網(wǎng)絡(luò)對股票價格進(jìn)行預(yù)測,與ARIMA模型相比,該模型得到了更優(yōu)的預(yù)測結(jié)果。鄧烜堃等人[9]使用了深度自編碼器(Deep Autoencoder,DAE)對高維數(shù)據(jù)進(jìn)行壓縮并結(jié)合BP神經(jīng)網(wǎng)絡(luò)建立預(yù)測模型,實驗證明該模型可以有效減少計算開銷,并提高了預(yù)測精度。
人們通過對網(wǎng)絡(luò)進(jìn)行優(yōu)化一定程度上避免了使參數(shù)陷入局部解,通過對輸入數(shù)據(jù)進(jìn)行降維,減少了訓(xùn)練開銷并提高了模型的預(yù)測準(zhǔn)確率,但傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)往往泛化能力不強(qiáng),容易出現(xiàn)過擬合等問題。
近年來,隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展以及計算機(jī)運算能力的提升,深度學(xué)習(xí)技術(shù)受到了國內(nèi)外學(xué)者的廣泛關(guān)注。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,深度學(xué)習(xí)模型層數(shù)更多,特征提取能力更強(qiáng)。以深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)等為代表的深度學(xué)習(xí)技術(shù),在股票預(yù)測領(lǐng)域取得了進(jìn)展。但由于股票數(shù)據(jù)的復(fù)雜性及其存在的長期依賴問題,使傳統(tǒng)的RNN模型的預(yù)測性能無法進(jìn)一步提升,因此長短期記憶網(wǎng)絡(luò)(Long Short Term Memory Network,LSTM)成為了目前股票預(yù)測的主流模型。
Wei等人[10]利用小波變換對股票價格時間序列進(jìn)行分解,消除噪聲干擾,利用堆疊式自動編碼器(Stacked Autoencoderm,SAE)提取深層特征,將高級去噪特征輸入LSTM預(yù)測股票價格。Huang等人[11]以LSTM作為股票預(yù)測主體模型,采用貝葉斯優(yōu)化方法對參數(shù)進(jìn)行動態(tài)選擇,確定最優(yōu)單元數(shù),與傳統(tǒng)LSTM相比預(yù)測準(zhǔn)確率提高25%。任君等人[12]從優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)的角度入手,采用正則化方法修改LSTM模型的目標(biāo)函數(shù),得到泛化能力強(qiáng)的彈性正則化LSTM,并使用該模型預(yù)測道瓊斯指數(shù)價格,得到了較好的預(yù)測效果。陳佳等人[13]從特征參數(shù)選取角度,對股票的15個參數(shù)指標(biāo)通過先分類后降維的思想篩選出最終的輸入?yún)?shù),并使用LSTM對股票指數(shù)價格進(jìn)行預(yù)測,該模型在速度和預(yù)測準(zhǔn)確性方面都得到了提升。
為了進(jìn)一步減小股票價格的預(yù)測誤差,本文引入深度學(xué)習(xí)中的注意力機(jī)制并結(jié)合門控循環(huán)單元(Gated Recurrent Unit,GRU)神經(jīng)網(wǎng)絡(luò)對蘋果、亞馬遜、百度和貴州茅臺四家公司的股票價格及上證指數(shù)進(jìn)行預(yù)測,并且應(yīng)用經(jīng)驗?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)算法和自適應(yīng)噪聲的完整集成經(jīng)驗?zāi)B(tài)分解(Complete Ensemble Empirical Mode Decomposition with Adaptive Noise,CEEMDAN)算法對原始股票價格時間序列進(jìn)行分解,對各分解信號分別進(jìn)行預(yù)測,最后將各分量的預(yù)測值相加得到最終預(yù)測結(jié)果。通過與其他模型進(jìn)行實驗對比,驗證模型的有效性。
1.1.1 循環(huán)神經(jīng)網(wǎng)路
RNN被廣泛應(yīng)用于語音識別、語言翻譯、時序數(shù)據(jù)預(yù)測等領(lǐng)域。RNN結(jié)構(gòu)如圖1所示,在t時刻,xt為網(wǎng)絡(luò)的輸入向量,st為網(wǎng)絡(luò)隱藏層值,οt為網(wǎng)絡(luò)的輸出向量,U、V、W為網(wǎng)絡(luò)的權(quán)重矩陣。網(wǎng)絡(luò)中的隱藏層節(jié)點相互連接,st的值不僅取決于當(dāng)前時刻的輸入xt,還取決于上一時刻隱藏層的輸出st-1。這種結(jié)構(gòu)使得網(wǎng)絡(luò)在t時刻的輸出與t時刻之前的輸入相關(guān)聯(lián),并能從之前的輸入中獲取到有效信息,因此RNN是一種具有記憶功能的神經(jīng)網(wǎng)絡(luò)。
圖1 RNN結(jié)構(gòu)圖
盡管RNN能夠有效地處理時間序列,但由于原始RNN隱藏單元的權(quán)重對網(wǎng)絡(luò)的訓(xùn)練影響較大,導(dǎo)致網(wǎng)絡(luò)存在梯度消失和梯度爆炸現(xiàn)象,這使得RNN不能很好地解決長距離依賴。為了解決這一問題,Hochreiter和Schmidhuber提出了LSTM神經(jīng)網(wǎng)絡(luò)模型[14]。
LSTM神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)。與傳統(tǒng)RNN相比,LSTM網(wǎng)絡(luò)的神經(jīng)元中增加了能夠保存長期狀態(tài)的單元狀態(tài)(CellState)結(jié)構(gòu),以及三個對單元狀態(tài)進(jìn)行控制的門(Gate)結(jié)構(gòu),分別是遺忘門(Forget Gate)、輸入門(Input Gate)和輸出門(Output Gate)。
LSTM神經(jīng)元的內(nèi)部結(jié)構(gòu)如圖2所示,在t時刻,xt是LSTM單元的輸入數(shù)據(jù),ht-1是LSTM單元在前一時刻的輸出,xt是單元狀態(tài)的值,ht是LSTM單元在當(dāng)前時刻的輸出。
圖2 LSTM神經(jīng)元結(jié)構(gòu)
1.1.2 GRU神經(jīng)網(wǎng)絡(luò)
GRU神經(jīng)網(wǎng)絡(luò)[15]由Cho等人于2014年首次提出,是目前LSTM神經(jīng)網(wǎng)絡(luò)最成功的變體之一。與LSTM相比,GRU結(jié)構(gòu)更簡單,參數(shù)更少,而且還能保持著和LSTM相同的效果。
GRU對LSTM做了兩個改動:(1)將輸入門、遺忘門、輸出門變?yōu)閮蓚€門——更新門(Update Gate)zt和重置門(Reset Gate)rt;(2)將LSTM的單元狀態(tài)ct與輸出合并為一個狀態(tài)ht,圖3為GRU神經(jīng)元的內(nèi)部結(jié)構(gòu)。
圖3 GRU神經(jīng)元結(jié)構(gòu)
更新門zt的作用是決定上一時刻隱藏層狀態(tài)中有多少信息傳遞到當(dāng)前時刻隱藏層狀態(tài)ht中,重置門rt的作用是決定上一時刻隱藏層狀態(tài)中的信息有多少是需要被遺忘的為當(dāng)前時刻的隱藏層的候選狀態(tài),使用重置門決定當(dāng)前候選狀態(tài)中要遺忘多少上一時刻隱藏狀態(tài)ht-1的內(nèi)容,ht表示當(dāng)前時刻隱藏層狀態(tài)。W為權(quán)重矩陣,[ht-1,xt]表示兩個向量的連接,σ是激活函數(shù)。
GRU單元的計算公式見式(7)~(10):
注意力機(jī)制(Attention Mechanism)的靈感來源于對人類視覺注意力機(jī)制的研究。當(dāng)人類的視覺在感知眼前的場景時,由于人的注意力有限,所以不會對場景中的所有物體投入同等的關(guān)注度,而是快速捕捉到需要重點關(guān)注的區(qū)域,對重要區(qū)域給予更多的注意力,而忽略其他非重要區(qū)域,這一機(jī)制使人類能夠利用有限的注意力從大量信息中篩選出更高價值的信息,提高了人類在視覺信息處理時的效率和準(zhǔn)確率。
結(jié)合注意力機(jī)制的模型近年來在圖像處理、語音識別和自然語言處理等領(lǐng)域被廣泛應(yīng)用。Mnih等人[16]將RNN模型與注意力機(jī)制結(jié)合來進(jìn)行圖像分類,Bahdanau等人[17]首次將注意力機(jī)制應(yīng)用到機(jī)器翻譯任務(wù)中。
深度學(xué)習(xí)中的注意力機(jī)制和人類的視覺注意力機(jī)制類似,它的核心就是從輸入的序列中學(xué)習(xí)每一個輸入元素對目標(biāo)元素的重要程度,即注意力權(quán)重,使神經(jīng)網(wǎng)絡(luò)可以專注于選定好的對目標(biāo)任務(wù)更有效的輸入,在計算資源不足的情況下,將有限的資源分配給更重要的特征。
受啟發(fā)于Qin等人[18]提出的結(jié)合注意力機(jī)制的時間序列預(yù)測模型,本文對原始輸入序列引入注意力機(jī)制并結(jié)合GRU神經(jīng)網(wǎng)絡(luò)對股票價格進(jìn)行預(yù)測。
對于給出的N個長度為T的時間序列,輸入矩陣表示輸入數(shù)據(jù)的特征數(shù),T表示設(shè)置的時間步長度,xk=表示第k個長度為T的時間序列表示在t時刻輸入的長度為N的序列。
目標(biāo)序列的歷史數(shù)據(jù)表示為(y1,y2,…,yT)T,yi∈R,輸入序列的歷史數(shù)據(jù)表示為(x1,x2,…,xT)T,xi∈R,i={1,2,…,T}。結(jié)合了注意力機(jī)制的GRU神經(jīng)網(wǎng)絡(luò)模型的目標(biāo)就是給定時間步長T,根據(jù)輸入序列和目標(biāo)序列歷史數(shù)據(jù),學(xué)習(xí)一個從輸入序列到目標(biāo)序列的非線性映射。
根據(jù)結(jié)合注意力機(jī)制的GRU神經(jīng)網(wǎng)絡(luò)的思想,針對t時刻而言,根據(jù)輸入矩陣X=(x1,x2,…,xT)T,學(xué)習(xí)一個從原始輸入序列xt到GRU神經(jīng)網(wǎng)絡(luò)隱藏層ht的映射,即:
其中,ht∈Rm表示GRU網(wǎng)絡(luò)在t時刻的隱藏層的值,m為隱藏節(jié)點的個數(shù)。
將ht和第k個輸入時間序列RT做相應(yīng)的計算,得到:
信號分解算法在處理非線性、非平穩(wěn)信號領(lǐng)域具有廣泛應(yīng)用。股票作為一種典型的非線性時序數(shù)據(jù),應(yīng)用EMD、CEEMDAN算法處理原始輸入序列S(t)可以有效地捕獲到原始價格序列在不同時間尺度上的特征。
2.1.1 EMD算法原理
EMD算法是Huang等人[19]提出的一種自適應(yīng)信號時頻處理方法,與傳統(tǒng)的傅里葉變換方法相比,EMD根據(jù)數(shù)據(jù)本身的時間尺度特征對信號進(jìn)行分解,通過自適應(yīng)得到基函數(shù),無需預(yù)先設(shè)定。
EMD將原始信號分解為有限個本征模函數(shù)(Intrinsic Mode Function,IMF),每個IMF分量表示原始信號在不同時間尺度上的不同特征。IMF可以是線性函數(shù)也可以是非線性函數(shù),每個分解得到的IMF需滿足以下兩個條件:IMF函數(shù)在其定義域中,極值點的個數(shù)與零點個數(shù)相差不能超過1;由IMF的局部極大值定義的包絡(luò)函數(shù)和由IMF的局部極小值定義的包絡(luò)函數(shù)的和恒為0。
EMD算法的具體步驟如下:
步驟1找出原數(shù)據(jù)序列S(t)的極大值和極小值點。
步驟2通過三次樣條插值過程對上包絡(luò)線U(t)和下包絡(luò)線L(t)的極值點進(jìn)行擬合。
圖4 結(jié)合注意力機(jī)制的GRU模型
步驟3根據(jù)m(t)=(U(t)+L(t))/2計算上包絡(luò)和下包絡(luò)的平均值m(t)。
步驟4從原始序列S(t)中減去m(t),得到一個新的序列h(t)=S(t)-m(t)。
步驟5重復(fù)步驟1到步驟4,以h(t)作為新的輸入序列,直到h(t)的均值接近于零為止,得到第i個IMF,表示為Ci(t)。
步驟6將Ci(t)與原始序列S(t)分離,得到一個不含高頻分量的差分序列rI(t)=S(t)-Ci(t)。
步驟7重復(fù)步驟1至步驟6,以rI(t)作為新的輸入序列,直到滿足終止條件。
通過上述步驟,篩選出一組IMF,記作Ci(t)=(i=1,2,…,N)。根據(jù)式(15),原始信號S(t)由這組IMF重構(gòu)得到。
其中,RN(t)為殘差,代表時間序列的趨勢。
2.1.2 CEEMDAN算法原理
通常情況下,EMD算法在處理非平穩(wěn)和非線性信號方面有很大的優(yōu)勢,但仍然存在“模式混合”問題。模式混合是指在不同的模式中存在相似的振蕩,或在一個模式中存在明顯不同的振幅。通過向信號中添加高斯白噪聲,集成經(jīng)驗?zāi)B(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)算法[20]在一定程度上消除了EMD算法中存在的模式混合問題。但是,EEMD算法不能完全消除信號重構(gòu)后由于高斯白噪聲造成的重構(gòu)誤差。
為了解決這個問題,提出了CEEMDAN算法[21]作為EEMD的改進(jìn)版本。定義運算符Ej(?)表示由EMD生成的第j個模式,設(shè)ωi(t)是正態(tài)分布N(0,1)的白噪聲。CEEMDAN算法的具體步驟如下:
步驟1用EMD分解每個Si(t)=S(t)+ε0ωi(t),提取第一個IMF,其中ε0是噪聲系數(shù),i=1,2,…,I;并將第一種模式定義為
步驟2計算第一殘差
步驟3分解殘差r1(t)+ε1E1(ωi(t))獲得第二種模式:
步驟4重復(fù)上述步驟得到另一個IMF,直到得到最終的殘差,最終的殘差可以表示為:
其中,M為IMFS的總數(shù)。IMFS共同構(gòu)成了原始信號在不同時間尺度上的特征,殘差代表了原始序列的趨勢。
為了進(jìn)一步提高股票預(yù)測模型的性能,提出了基于EMD和CEEMDAN的股票市場預(yù)測模型(EMD-aGRU、CEEMDAN-aGRU)。該模型包含兩個部分,第一部分是通過EMD和CEEMDAN算法,將原始股票價格序列分解為多個IMF序列和殘差序列,第二部分應(yīng)用了結(jié)合注意力機(jī)制的GRU模型(aGRU),將分解后得到的各個序列作為aGRU網(wǎng)絡(luò)模型的輸入數(shù)據(jù)進(jìn)行訓(xùn)練預(yù)測。實現(xiàn)步驟如圖5所示。
圖5 股市預(yù)測流程模型
步驟1利用EMD和CEEMDAN將原始股票價格序列S(t)分解為多個IMF序列Ci(t)(i=1,2,…,M)和殘差RM(t)。
步驟2將所獲得的IMF和殘差作為aGRU預(yù)測模型的輸入數(shù)據(jù)進(jìn)行訓(xùn)練得到各IMF的預(yù)測結(jié)果。測試集的預(yù)測結(jié)果分別表示為
步驟3根據(jù)式(17)對每個IMF和殘差的預(yù)測結(jié)果進(jìn)行重構(gòu),得到最終的預(yù)測價格序列。
其中,L是測試集的長度是每個IMF的預(yù)測序列序列,S是殘差的預(yù)測?(t)表示測試集的最終預(yù)測結(jié)果。
2.3.1 數(shù)據(jù)來源及預(yù)處理
本文選取的股票和股指數(shù)據(jù)(下載自Yahoo財經(jīng)),包含每天的開盤價(Open)、最高價(High)、最低價(Low)、收盤價(Close)、交易量(Volume)和調(diào)整后的收盤價(Adj Close),其中將調(diào)整后的收盤價作為目標(biāo)變量。
由于將股票的價格數(shù)據(jù)和交易量數(shù)據(jù)同時作為輸入的特征參數(shù),而兩者的數(shù)值差異巨大,為了消除指標(biāo)間的量綱影響,提升模型精度和收斂速度,本文對數(shù)據(jù)進(jìn)行了歸一化處理。
將處理后的數(shù)據(jù)按順序分成訓(xùn)練集和測試集,其中前80%的數(shù)據(jù)作為訓(xùn)練集用來訓(xùn)練模型,后20%的數(shù)據(jù)作為測試集對模型預(yù)測效果進(jìn)行評估。
2.3.2模型構(gòu)建與參數(shù)設(shè)置
本文實驗?zāi)P驮赑ython 3.7中的Keras框架下搭建并完成計算過程,Keras版本為2.2.4,采用Keras中的Sequential模型結(jié)構(gòu),將一層GRU層與一層Dense層相結(jié)合建立預(yù)測模型。在模型參數(shù)設(shè)置方面,通過進(jìn)行多次實驗最終確定實驗?zāi)P偷纳窠?jīng)元個數(shù)為128,批處理大?。╞atch_size)為128,迭代次數(shù)(epoch)為500,損失函數(shù)(loss)設(shè)置為平均絕對誤差損失函數(shù)(mae),優(yōu)化器(optimizer)為adam,參考文獻(xiàn)[18],將時間步長T設(shè)置為10。
2.3.3 評價指標(biāo)
為了評估CEEMDAN-aGRU模型對股票價格的預(yù)測性能,本文采用均方根誤差(RMSE)、平均絕對誤差(MAE)和R-平方(R2)三種回歸評價指標(biāo)來量化模型性能,三種指標(biāo)計算如公式(18)~(20)所示:
其中,yi為真實值,yi為預(yù)測值,yˉ為真實值的均值,m為樣本數(shù)。RMSE和MAE用來度量真實值與預(yù)測值間的偏差,其值越小表明預(yù)測值越接近真實值,R2用來度量模型擬合程度,越接近1表明模型擬合越好。
2.3.4 股票時間序列的EMD和CEEMDAN
將股票的原始價格序列通過EMD和CEEMDAN算法分解成若干個IMF序列和一個殘差序列,根據(jù)實驗結(jié)果顯示,CEEMDAN生成的IMF的數(shù)量往往小于EMD算法生成的IMF的數(shù)量,為了更直觀地比較兩種算法的分解效果,實驗限制了EMD生成的IMF數(shù)量與CEEMDAN相同。圖6(a)和(b)展示了亞馬遜公司股票收盤價序列的分解結(jié)果。
每個IMF從高頻到低頻排列,前幾個IMF代表原始序列中的高頻分量,可以看出EMD算法的分解結(jié)果存在“模式混合”現(xiàn)象,而通過CEEMDAN算法進(jìn)行分解這一問題有了明顯的改善,所得到的IMF有了明顯的頻差。
2.3.5 股票價格預(yù)測
將本文提出的CEEMDAN-aGRU模型應(yīng)用于蘋果(AAPL)、亞馬遜(AMZN)、百度(BIDU)和貴州茅臺(600519)四家公司的股票價格預(yù)測中,數(shù)據(jù)集所選時間范圍均為2009年1月1日至2018年12月31日,每只股票包含2 517條股價數(shù)據(jù)。圖7(a)、(b)、(c)、(d)分別為模型對蘋果、亞馬遜、百度和貴州茅臺四只股票的預(yù)測結(jié)果。
圖6 亞馬遜公司股票收盤價序列分解結(jié)果
為了驗證本文模型的性能,將CEEMDAN-aGRU模型與RNN、LSTM神經(jīng)網(wǎng)絡(luò)、GRU神經(jīng)網(wǎng)絡(luò)、結(jié)合注意力機(jī)制的LSTM網(wǎng)絡(luò)(aLSTM)、aGRU模型和EMDaGRU模型進(jìn)行了對比實驗,觀察不同模型對四只股票數(shù)據(jù)集的預(yù)測效果。為了消除一次實驗帶來的結(jié)果偶然性,對每個模型在不同數(shù)據(jù)集上分別進(jìn)行10次實驗,取多次結(jié)果的平均值,得到最終的實驗結(jié)果,實驗結(jié)果如表1所示。
由表1可知,EMD-aGRU和CEEMDAN-aGRU模型在四只個股數(shù)據(jù)集上實驗得到的RMSE和MAE均小于其他模型,R2更接近1,說明與其他模型相比,EMDaGRU模型和CEEMDAN-aGRU模型預(yù)測的股票價格更接近真實值,模型擬合更好。證明針對股票價格預(yù)測問題,使用分解算法對原始序列進(jìn)行分解后再進(jìn)行預(yù)測,可以有效提升模型預(yù)測性能。其中,CEEMDANaGRU模型對股票的預(yù)測誤差小于EMD-aGRU模型,這是由于CEEMDAN從原始數(shù)據(jù)中提取了更有效的特征,因此預(yù)測誤差較小。
圖7 CEEMDAN-aGRU模型對四只股票測試集預(yù)測結(jié)果
表1 不同模型在四只股票測試集的預(yù)測性能
圖8 (a)、(b)、(c)、(d)分別展示了aGRU模型和CEEMDAN-aGRU模型對蘋果、亞馬遜、百度和貴州茅臺四只股票前50天的預(yù)測結(jié)果。可以看出,與aGRU模型相比,CEEMDAN-aGRU模型的預(yù)測結(jié)果更接近股票價格的真實值,誤差更小。
2.3.6 股票指數(shù)預(yù)測
2018年Zhou等人[22]提出了EMD2FNN模型,該模型應(yīng)用EMD算法與FNN模型對股票指數(shù)進(jìn)行了預(yù)測。為了進(jìn)一步驗證CEEMDAN-aGRU模型的預(yù)測性能,將CEEMDAN-aGRU模型與EMD2FNN模型進(jìn)行實驗對比。本節(jié)實驗選擇上海證券交易所綜合指數(shù)(SSEC)作為實驗數(shù)據(jù),根據(jù)文獻(xiàn)[22]將數(shù)據(jù)集時間范圍選取為2012年1月4日至2016年1月30日,共1 214個交易日,實驗結(jié)果如表2所示,本文提出的CEEMDAN-aGRU模型在各項指標(biāo)上均優(yōu)于EMD2FNN模型。圖9展示了CEEMDAN-aGRU模型對SSEC測試集的預(yù)測結(jié)果,圖10展示了aGRU模型和CEEMDAN-aGRU模型對SSEC測試集前50天的預(yù)測結(jié)果。
本文首先提出了結(jié)合注意力機(jī)制的GRU神經(jīng)網(wǎng)絡(luò)模型,即通過使用注意力機(jī)制對輸入特征參數(shù)進(jìn)行加權(quán),使網(wǎng)絡(luò)聚焦于更重要的輸入特征,將加權(quán)后的參數(shù)作為新的輸入,并使用GRU神經(jīng)網(wǎng)絡(luò)作為預(yù)測主體模型。后引入EMD和CEEMDAN算法來減小股票價格序列的非平穩(wěn)性、非線性對預(yù)測結(jié)果的影響。實驗對蘋果等四家公司的股票價格和上證指數(shù)進(jìn)行預(yù)測。結(jié)果表明:與其他網(wǎng)絡(luò)模型相比,本文提出的CEEMDANaGRU模型預(yù)測效果更好,模型擬合程度更高,證明了應(yīng)用信號分解算法能進(jìn)一步提升模型的預(yù)測性能,減小預(yù)測誤差。目前存在的問題是模型選擇的輸入特征參數(shù)較為單一,后期可以考慮增加模型的訓(xùn)練特征,從特征選取的角度進(jìn)一步提升模型的預(yù)測性能。
圖8 aGRU和CEEMDAN-aGRU模型對四只股票前50天的預(yù)測結(jié)果
圖9 SSEC測試集預(yù)測結(jié)果
表2 不同模型在SSEC測試集的預(yù)測性能
圖10 SSEC測試集前50天預(yù)測結(jié)果