姚 遠,張朝陽
河南大學 管理科學與工程研究所,河南 開封475004
股指價格預測一直是國內外學術的焦點,但是股票市場受到宏觀經濟政策、政治、投資心理和新聞輿論等大量因素的影響,具有高噪聲、非平穩、非線性等特點,所以股票市場較難預測。國內外許多學者曾對時間序列預測模型進行研究,提出很多預測股票市場的模型。目前主要存在兩大類模型,一類是傳統計量模型,如ARMA、ARIMA和GARCH等模型[1-4],但是對一些高噪聲、非平穩、非線性的時間序列預測精度較低。另一類是人工智能模型,近年來,由于人工智能技術快速發展,在金融界得到廣泛應用。機器學習算法中的神經網絡模型非常適合非平穩、非線性數據的建模[5-6],作為神經網絡的一種,循環神經網絡(Recurrent Neural Network,RNN)則非常適合時間序列預測,理論上也能夠學習任意長度的時間序列,但由于存在梯度消失問題,實際中并不能學習較長的時間序列[7]。Hochreiter等人[8]提出了長短期人工神經網絡(Long-Short-Term Memory,LSTM),相比普通RNN神經網絡,LSTM神經網絡模型引入了門控機制,解決了梯度消失問題,能學習較長的時間序列,在時間序列預測領域得到廣泛應用[9-11]。由于大多金融時間序列具有高噪聲等特點,在金融時間序列預測領域,LSTM神經網絡結合其他模型可以得到精度更高的預測結果。景楠等人[12]將卷積神經網絡(CNN)和LSTM神經網絡模型結合在一起,利用CNN神經網絡模型從時間序列中提取空間特征,將提取的特征輸入LSTM,并在LSTM輸出端引入注意力機制對滬銅期貨高頻價格進行預測,得到了預測精度更高的混合模型。Bao等人[13]將小波變換(WT)、堆疊自編碼機(SAEs)和LSTM神經網絡模型結合在一起,利用小波變換對股指價格時間序列進行去噪,然后利用堆疊自編碼機學習股指價格時間序列的深度特征,最后將提取的特征輸入LSTM神經網絡模型進行預測,實驗結果顯示預測精度得到顯著提升。Zhang等人[14]把股價時間序列看作不同交易頻率的疊加,對LSTM神經網絡模型內部結構進行修改,將DFT算法融入LSTM神經網絡模型,預測精度得到較大提升,但此類模型網絡深、參數多、復雜度高等特點,決策過程難以理解。Cho等人[15]在LSTM神經網絡的基礎上提出門控循環單元(Gated Recurrent Unit,GRU)。GRU神經網絡相比LSTM神經網絡僅包含“更新門”和“復位門”兩個門控結構,并且融合了LSTM神經網絡中的“細胞狀態”和“隱藏狀態”,因此GRU神經網絡中訓練參數更少,更不容易過擬合,并保持了LSTM神經網絡的預測效果。因為GRU神經網絡的優良特性,因此在越來越多的領域得到應用。如Umut等人[16]將GRU神經網絡應用于電力價格預測,實驗結果表明GRU神經網絡的預測精度優于所有基準模型。趙兵等人[17]結合卷積神經網絡(CNN)和GRU神經網絡,并將注意力機制融入網絡中,提出基于注意力機制的CNN-GRU模型,最后將提出的模型應用于短期電力負荷預測中,實驗結果表明CNN-GRU模型具有更高的預測精度。但是金融領域需要的不僅僅是高精度模型,同時更關注模型的可解釋性,因此提高神經網絡模型的可解釋性也成為當前人工智能領域的新課題。
在混合模型中,有一類是利用信號分解算法將時間序列分解為不同頻率的序列,然后分別預測分解出的各個序列使預測精度得到提升。如郭金錄[18]利用變分模態分解(VMD)和集合經驗模態分解(EEMD)技術將滬深300指數價格時間序列分解為不同頻率的時間序列,然后利用LSTM神經網絡模型分別進行預測,最后將預測結果相加得出股指的預測值。實驗結果表明,與其他基準模型比較,精度得到顯著提升。但是在此類模型當中,較難分析分解出的各個序列的實際意義,可解釋性仍然較差。另一類模型則將傳統計量模型和神經網絡模型結合,既提高了模型預測精度,同時也提高了模型的可解釋性。如Kim等人[19]將LSTM神經網絡模型和GARCH模型整合在一起,提出LSTM-GARCH混合模型,并將模型用于股指價格波動率預測,實驗結果顯示,相比單一GARCH模型,預測精度得到顯著提升。Bukhari等人[20]將ARFIMA模型和LSTM神經網絡模型結合在一起,提出ARFIMA-LSTM模型,并將其用于金融時間序列預測,與單一ARIMA和LSTM神經網絡模型相比,預測精度得到提升。此類模型在提高了預測精度的同時,融合傳統計量模型,相比將不同的機器學習模型或者信號處理算法融合起來的混合模型,降低了模型的復雜性,提高了模型的可解釋性。
由于股指價格會受到不同因素的影響,有研究將股指價格時間序列分解為不同頻率的子序列,并分別對其進行預測以提高預測精度。HP濾波(Hodrick-Prescott Filter)是由Hodrick和Prescott提出的一種研究經濟運行的一種濾波方法,它將經濟運行看作長期趨勢和短期波動的疊加,被廣泛用于經濟學研究中[21-24]。HP濾波除了可以用于宏觀經濟分析,一些研究也將HP濾波用于微觀經濟變量預測當中。如姚遠等人[25]使用HP濾波將已實現波動率分解為長期分量和短期分量,然后使用自回歸神經網絡(ARXNN)預測長期分量,使用自回歸模型預測短期分量,實證結果顯示預測精度得到顯著提升;周亮[26]利用HP濾波將人民幣匯率序列分解為趨勢項和周期項,分別利用ARIMA模型和機器學習模型對其進行預測,實驗結果顯示預測結果比單一模型更加精確;楊建輝等人[27]利用HP濾波將股價時間序列分解為長期趨勢序列和短期波動序列,然后通過高階自回歸和GARCH模型對分解出的序列進行預測,得到了精度較高的預測結果。由于大多數基于HP濾波的預測模型都使用了傳統計量模型對分解出的序列進行預測,預測結果雖具有較高的可解釋性和實際含義,但預測精度相對不高,實際利用價值不高。
股指價格時間序列具有高噪聲、非線性、非平穩等特點,而LSTM神經網絡模型對此類時間序列預測精度較高,因此本文引入HP濾波器,將股指價格時間序列分解為長期趨勢序列和短期波動序列,使用LSTM神經網絡模型分別對長期分量和短期分量進行預測,最后將兩個預測值相加得到股指價格預測值,實驗結果表明本文提出的模型相比單一神經網絡模型預測精度有較大提升。因為長期趨勢序列和短期波動序列分別代表原時間序列的長期特征和短期特征,具有一定的實際經濟含義,因此模型的可解釋性也得到了提升。
Hodrick-Prescott濾波(HP濾波)是由Hodrick和Prescott于1980年提出,隨后被廣泛應用于經濟分析中。HP濾波假設經濟運行是長期變動和短期波動的結合,將時間序列Y={y1,y2,…,yT}分解為兩個子序列,即長期趨勢序列G={g1,g2,…,gT}和短期波動序列S={s1,s2,…,sT}。其中長期趨勢序列gt,t=1,2,…,T,通過最小化下式得出:

其中,T表示時間序列yt的樣本個數,λ大于0,稱為平滑參數。表示兩項的權重。當λ=0時,滿足最小化問題的長期趨勢序列G等于原序列Y。λ的值越大,長期趨勢序列中的變化總數相對于原序列中的變化減小,即λ越大,分離出的長期趨勢序列越平滑。當λ趨于無窮大時,長期趨勢序列將接近線性函數。短期波動序列可以通過原時間序列減去長期趨勢序列得出,即S=Y-G。
循環神經網絡(RNN)是神經網絡的一種,可以根據時間序列中的前一個觀測值來預測下一個時刻的值。RNN一次處理一個時間序列中的觀測值,在隱藏層中通過不斷調整一個“狀態向量”來儲存時間序列中的歷史信息。雖然RNN的目標是學習時間序列中的歷史信息,但是因為RNN使用反向傳播算法,會遇到梯度消失問題,所以RNN不適合處理較長的時間序列。長短期人工神經網絡(LSTM)是RNN的一種變體,解決了訓練過場中遇到的梯度消失問題,因此可以處理較長的時間序列。LSTM相比標準RNN增加了輸入門(input gate)、忘記門(forget gate)和輸出門(output gate)三個門控單元,LSTM體系結構如圖1所示。

圖1 長短期人工神經網絡體系結構Fig.1 Structure of Long-Short-Term Memory

其中,xt表示在t時刻的輸入向量,W和U表示輸入權重向量,b為偏置向量,⊙表示哈達馬積(Hadamard product)。函數σ和tanh都為非線性激活函數。激活函數σ通常為Sigmoid函數,所以輸出ft在[]0,1之間,表示遺忘前一時刻的Ct-1的概率。Ct由兩部分組成,第一部分是,即輸入門,第二部分為ft⊙Ct-1,兩部分相加來得到Ct。ht由兩部分組成,第一部分為ot,它由前一時刻的ht-1和現在的輸入向量xt以及Sigmoid函數組成,第二部分由Ct-1和tanh激活函數組成,即
股指價格時間序列受到長期經濟政策和短期交易行為的影響,并具有高噪聲、非平穩、非線性等特點。短期預測更多地依賴短期波動數據,而長期預測應更多地運用長期趨勢數據。而且為了在提高模型精度的同時不過度增加模型的復雜度,使模型具有較高的性能和可解釋性,本文提出HP-LSTM模型,首先運用HP濾波將股指的開盤價、最高價、最低價、收盤價和交易量等5個指標的時間序列分解為長期趨勢子序列和短期波動子序列,然后運用LSTM神經網絡模型分別對兩個子序列進行預測建模。本文中將用于預測長期趨勢序列的LSTM神經網絡模型稱為LSTM-L,將用于預測短期波動序列的LSTM神經網絡模型成為LSTM-S,詳細建模步驟如下:
(1)將原始股指數據通過HP濾波進行分解,得到長期趨勢序列和短期波動序列。
(2)為了加快神經網絡的訓練速度,消除不同指標的不同量綱對結果的影響,將上步分解得到的時間序列進行歸一化處理。
(3)利用滑動窗口法對數據處理,生成適合輸入LSTM神經網絡模型的數據集,并將生成的數據集劃分為訓練集、驗證集和測試集,在訓練集中訓練模型,驗證集中調整參數。
(4)將測試集中的長期趨勢序列和短期波動序列分別輸入訓練好的LSTM-L和LSTM-S中進行預測,得到兩個序列的預測結果。
(5)將步驟(4)中得到的兩個序列的預測結果進行反歸一化處理,然后疊加得到最終預測結果。模型結構如圖2所示。
本次研究在Windows10x64操作系統下進行,使用的Python版本為3.7,模型搭建在支持GPU的Tensor-Flow框架下完成,TensorFlow版本為2.3.1。CPU為Intel?CoreTMi5-7300HQ,GPU為NVIDIA GeForce GTX 1050,內存為8 GB。
本文使用的數據來自CSMAR數據庫,采用上證綜指、深證成指和滬深300三個股指數據,時間跨度為2009年1月1日至2019年12月31日,選取每日開盤價、最高價、最低價、收盤價和交易量5個特征,每種股指共擁有2 675條有效數據。
運用HP濾波之前必須選取一個合適的平滑參數λ,不同的平滑參數決定了不同的長期趨勢和短期波動,根據此前相關研究[26-28],本文中將λ值設定為100。為了加快神經網絡的訓練速度,消除不同指標的不同量綱對結果造成的影響,本文采用線性歸一化函數對數據進行歸一化:

其中,Pn表示時間序列中第n個,maxPn和minPn分別是時間序列Pn中的最大值和最小值,為了使預測數據仍然具有實際意義,需要對預測數據進行反歸一化:

其中,maxclose和minclose分別為收盤價中的最大值和最小值為第n個預測值為第n個反歸一化后的預測值。圖3為對選取的深證成指每個指標歸一化后進行HP濾波分解的結果。

圖3 HP濾波分解結果Fig.3 Decomposition result of HP filter
為了評價模型預測效果,本文選取均方根誤差(Root Mean Square Error,RMSE)、平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)和R2score(R2決定系數)作為評價指標。RMSE、MAPE和R2score的計算公式如下所示:

其中,N為預測樣本個數,yi和分別表示真實值和預測值為預測值的平均值。其中RMSE和MAPE越小說明模型的預測效果越好,R2score的取值在0到1之間,越接近1說明模型的擬合效果越好。
神經網絡模型由輸入層、LSTM層、一層全連接層和輸出層組成。本文由前10天的數據預測第11天的收盤價,所以設置LSTM層的時間步長為10,LSTM層使用的激活函數為tanh函數,全連接層使用的激活函數為線性激活函數,批尺寸(batchsize)設置為32,使用的目標優化函數為均方誤差(Mean Square Error,MSE),使用的優化器為亞當優化器(Adam)。通過網格搜索法,神經網絡層數從1層到4層間隔為1依次遞增,每層神經元個數從1到200,間隔為5依此遞增,每種結構運行50次得到驗證誤差平均數,最終確認的LSTM-L和LSTM-S的詳細超參數如表1所示。因為HP濾波分解得到的長期趨勢序列和短期波動序列具有不同的特征,而LSTM-S預測的是短期波動序列,相比長期趨勢序列波動頻率更大,結構更加復雜,神經網絡層數或者每層的神經元個數過多都將會導致過擬合,導致在驗證集中的誤差增大,因此LSTM-S的層數和每層神經元個數均少于LSTM-L。其中LSTM-L和LSTM-S的訓練誤差和驗證誤差如圖4所示,臨近訓練結束時模型LSTM-L和LSTM-S的訓練誤差和驗證誤差都非常接近,說明模型沒有過擬合或欠擬合。

表1 模型參數Table 1 Model parameter

圖4 模型的訓練誤差和驗證誤差Fig.4 Training error and validation error of model
2.6.1 單一模型預測效果分析
本文將HP濾波分解和歸一化后的數據按照3∶1∶1的比例劃分為訓練集、驗證集和測試集,使用2.4節提出的指標衡量模型的預測精度,并與LSTM、RNN、GRU等基準模型進行對比。同時為便于之后與只適合輸入一種特征的混合模型比較,在本小節中也測試了僅將收盤價作為輸入特征情況下的模型精度。
在深證成指數據的實驗中,從表2中得出,輸入開盤價、最高價、最低價、收盤價、交易量等5個特征的情況下,模型的預測效果從差到好依次為RNN、LSTM、GRU、HP-LSTM。HP-LSTM模型在測試集得到的三個指 標 的RMSE、MAPE和R2score分 別 為101.214 8、0.836 3%、0.992 6,均優于單一的LSTM、GRU和RNN。相比次優的GRU模型,LSTM模型結合了HP濾波后,RMSE減少了28.31%,MAPE減少了26.31%,R2score從0.986 2提高至0.992 6。在僅將收盤價作為輸入特征的情況下,HP-LSTM模型預測精度相比基準模型也有顯著提升。因為在兩種不同的輸入特征的情況下,各個模型的預測精度大致相同,因此圖5中只顯示了輸入特征為開盤價、最高價、最低價、收盤價、交易量的預測結果,可以觀察到,單一的LSTM、GRU和RNN模型相比HP-LSTM模型存在明顯的滯后。

圖5 預測結果Fig.5 Results of prediction

表2 HP-LSTM及基準模型測試誤差Table 2 Test error of HP-LSTM and benchmark model
2.6.2 混合模型預測效果分析
因為大部分混合模型的預測性能相比單一模型均有一定提升,且本文提出的HP-LSTM模型為混合模型,為使實驗結果更具可比性,因此將HP-LSTM模型與其他基于HP濾波的混合模型進行比較。經查閱文獻可知[25-26],部分研究使用機器學習模型預測HP濾波分解出的其中一個子序列,使用計量模型預測另一子序列,且預測精度較高。因此將HP-LSTM-ARIMA、HP-ARIMA-GARCH-LSTM作為基準模型,輸入特征為每日收盤價。
由表3可知,在混合模型對比實驗中,混合模型預測精度由低到高分別為HP-LSTM-ARIMA-GARCH、HP-ARIMA-LSTM、HP-LSTM,并且所有混合模型的預測性能均比單一模型有顯著提升。因此HP濾波將時間序列分解為長期趨勢和短期波動,使LSTM神經網絡模型捕捉到了股指價格時間序列的長期趨勢特征和短期波動特征,有助于提高模型整體的預測能力。

表3 HP-LSTM及其他混合模型測試誤差Table 3 Test error of HP-LSTM and other hybrid models
為進一步驗證本文提出的模型的準確性和穩定性,將使用HP-LSTM和基準模型預測上證綜指和滬深300,然后通過每個模型的預測結果,得到測試誤差,最后從實驗得到的測試誤差結果證明HP-LSTM優于基準模型。
數據集的時間跨度為2009年1月1日至2019年12月31日,剔除節假日后共有2 675條有效數據。由圖6可知,三個股票走勢相似,進行歸一化后將消除量綱影響,所以在對上證綜指和滬深300的預測當中繼續使用表1中的超參數。因為在輸入特征不同的情況下HPLSTM的預測效果大致相同,因此圖7中只顯示了輸入特征為開盤價、最高價、最低價、收盤價、交易量時HPLSTM模型的預測結果。

圖6 股指價格時間序列Fig.6 Time series of stock index price

圖7 上證綜指和滬深300預測結果Fig.7 Forecast results of Shanghai Composite Index and CSI 300
在表4中可以發現,在兩種不同的輸入特征情況下,HP-LSTM模型在使用上證綜指和滬深300數據集上都優于基準模型,并且對上證綜指的預測效果略好于滬深300。當輸入特征為開盤價、最高價、最低價、收盤價、交易量時,在上證綜指數據集中,HP-LSTM模型的測試誤差最小值相比次優模型,RMSE降低了27.30%,MAPE降低了24.04%,R2score由0.982 0提升至0.990 5。在滬深300數據集中,測試誤差相比次優模型,RMSE降低了26.84%,MAPE降低了23.33%,R2score從0.980 1提升至0.989 3,預測精度明顯提升。當輸入特征為收盤價時,在上證綜指和滬深300數據集中所有混合模型的測試誤差均低于單一模型,并且HP-LSTM模型的測試誤差始終最低。因為均方根誤差(RMSE)表示預測值和真實值之間的差異,量綱與原數據的量綱相同,在平均絕對百分誤差(MAPE)和R2score相差不大的情況下,如果原數據量綱不同,均方誤差將會相差較大,所以在對上證綜指和滬深300的預測中的評價指標RMSE遠低于深證成指。

表4 HP-LSTM及基準模型測試誤差Table 4 Test error of HP-LSTM benchmark model
為了提高股指價格預測精度,本文提出一種基于HP濾波分解的LSTM神經網絡模型預測股指價格走勢。模型首先利用HP濾波將進行歸一化處理后的股指數據分解為長期趨勢和短期波動兩個序列,然后使用LSTM神經網絡模型分別對長期分量和短期分量進行預測,最后將兩個序列相加并反歸一化得到預測值,預測精度相比基準模型顯著提高。經實驗分析,得出HPLSTM模型具有以下特點:
(1)股指價格走勢反應了不同頻率的交易模型,HP濾波作為一種經濟分析工具,將時間序列分解為不同頻率成分的疊加,使HP-LSTM模型繼承了HP濾波的分解功能。
(2)HP濾波是由Hodrick和Prescott提出的一種研究經濟運行的一種濾波方法,它將經濟運行看作長期趨勢和短期波動的疊加,因此HP-LSTM模型的預測結果更加具有可解釋性。
(3)融合了LSTM神經網絡模型處理高噪聲、非平穩和非線性的優良性能,對HP濾波分解出的長期趨勢和短期波動序列進行預測均取得了較高的精度。
(4)在不同的數據集上,HP-LSTM的測試誤差均優于基準模型,說明HP-LSTM模型的預測精度和穩定性均得到較大提升。
雖然本文提出的模型取得了不錯的效果,因為本文沒有考慮技術指標和投資心理等因素,所以在實際運用中可以考慮納入這些指標,股指價格的預測精度可能進一步提高。本文的研究結果有助于有關部門進行風險預警,同時為股指價格預測研究提供了新的思路。