江嘉華 徐鵬程 鄧小毛





摘要:針對金融數據的時序特征,構造了滑動窗口-變分模態分解(SW-VMD) 的數據處理方法,對股指收盤價以及收益率時序數據進行分解與重構,把非線性、非平穩的數據序列轉換為線性且平穩的數據。處理后的數據作為長短時記憶神經網絡(LSTM) 的輸入數據,對股票指數未來的收盤價和收益率進行預測分析。實證分析將趨勢準確率作為模型的評價指標,以此反映模型對隔天收盤價和收益率漲跌的預測能力。結果顯示,與無數據分解的模型相比較,采用了數據分解后的LSTM模型在趨勢預測準確率上有顯著的優化效果。
關鍵詞:滑動窗口;變分模態分解;長短時記憶神經網絡;金融時序預測
中圖分類號:TP183? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)34-0014-05
1 概述
金融時序預測指根據歷史數據建立時間序列等計量模型對各個重要的金融數據指標包括價格、指數、收益率、波動率等進行預測。金融時序數據預測可以更好地認識和理解金融市場的波動規律,幫助國家對金融市場進行風險控制,以及幫助廣大投資者利用有效的市場波動信息,做出更加合理的投資策略。金融時序預測的經典方法主要使用ARCH(Autoregressive Conditional Heteroskedasticity Model) 、GARCH(Generalized-ARCH) 等統計模型及其改進模型,描述了金融市場時間序列波動率的異方差性和聚集性的特征[1-2]。21世紀邁入了深度學習的時代,深度學習有許多經典的神經網絡模型,比如深度卷積神經網絡(CNN) 、深度置信網絡(DBN) 、自編碼器(AE) 、深度循環神經網絡(RNN) 等,其中非常有效處理時序數據的神經網絡為長短時記憶神經網絡(Long Short-Term Memory, LSTM) 。1997年Sepp Hochreiter和Jurgen Schmidhuber提出長短時記憶神經網絡[3]。LSTM神經網絡作為循環神經網絡(RNN) 的一種,可以有效地提取時序數據中的長期相關性,把遠期的有用歷史信息保留在神經元中,解決了長期依賴的問題,得到了廣泛應用。如在金融時序預測方面,金雪軍(2016) 在研究中國通貨膨脹水平是否受美國修整貨幣政策為擴張狀態影響時,使用了LSTM進行研究,同時建立了VAR(Value at Risk) 模型進行對比驗證,得出結論LSTM模型在經濟分析中的表現較之VAR模型更為優秀[4]。謝合亮等(2018) 構建了LSTM期權定價模型,并利用50ETF看漲期權和看跌期權進行實證分析,實驗結果表明LSTM期權定價模型比經典的Black-Scholes蒙特卡洛方法具有更高的定價精確性[5]。李瑩和王璐璐(2020) 提出了一種基于遺傳算法優化的長短時記憶神經網絡模型(GA-LSTM) [6],該模型在LSTM的基礎上使用了遺傳算法對參數進行尋優,針對期貨市場價格的復雜、非線性時間序列數據進行了建模預測,通過結果分析發現,價格預測的精度有所提高。陳琪琪(2020) 通過卷積神經網絡進行數據的空間結構特征提取,然后使用LSTM對輸入的時間序列進行特征提取,使混合了卷積神經網絡和長短時記憶網絡的CNN-LSTM模型更加有效地預測出短期的當日股票最高價[7]。
處理良好的數據集將使得計算模型的性能顯著提升。針對時間序列數據的有效數據分解方法包括經驗模態分解(Empirical Mode Decomposition, EMD)? [8]及變分模態分解(Variational Mode Decomposition, VMD)? [9]等,這些數據分解方法最初被提出并應用于工程信號處理中的降噪問題,隨后被推廣應用至原油價格[10]、黃金價格[11]等金融數據序列的處理和預測中。其中VMD是新近提出的一種自適應信號分解技術,它基于變分原理,通過求解使得每個模態的帶寬之和最小的最優化問題,將多分量信號分解為多個準正交本征模函數。該方法在模中沒有殘余噪聲,并且可以減少冗余模式。在實際金融市場中,由于金融時序數據序列非線性非平穩的特征,對價格、收益率等指標的預測如果直接使用歷史收盤價和收益率等數據代入LSTM網絡,預測結果往往會出現一定的滯后性,這就導致LSTM對金融指標的漲跌趨勢預測準確率較低。本文將提出一種基于滑動窗口的變分模態分解(Sliding Window-Variational Mode Decomposition , SW-VMD) 對中國證券市場股指數據進行處理,提取數據的主要特征后使用LSTM神經網絡進行股指價格及收益率漲跌趨勢預測,最后設計比較實驗驗證該模型的有效性。
2 基于SW-VMD數據分解的LSTM神經網絡
首先,構建滑動窗口的VMD數據分解算法和LSTM長短時記憶神經網絡,然后結合數據分解預處理及該神經網絡,分別得到股指收盤價以及收益率的預測模型。
2.1 滑動窗口-變分模態分解算法
VMD算法的核心思路是將原始數據序列的分解問題轉化為一個搜索約束變分模型最優解的問題,在滿足各個本征模態函數IMF(Intrinsic Mode Function) 與殘差函數之和等于原始數據序列的前提下,求解每一個模態的估計帶寬的最小值。根據上述條件確定每個分解序列的頻率中心以及帶寬,從而可以自適應地實現信號的頻域剖分以及各分解序列的有效分離,進而提取出多個本征模態函數。在迭代搜尋的過程中,IMF的中心頻率和本征模態函數會不斷更新,最后分解為多個IMF,以達到信號分解的效果,其中IMF的數量是人為預設的。
對于本文中的金融時序數據,由于VMD每個分解結果都受到全體原始信號的影響,意味著若將整個時間序列數據進行VMD分解,則當前時刻數據的分解結果包含了未來時刻數據的信息,從而無法基于當前時刻的數據分解結果進行預測分析。為了得到對時序輸入數據合理的分解和重構結果,本文提出基于滑動窗口的VMD數據分解模式,即以32天為一個數據集長度,采用遞進的方式進行數據分解。具體流程如下:第1天至第32天的數據進行VMD數據分解,得到第1天至第32天的數據分解結果,取第32天的數據分解結果存放為模型輸入變量的第一個數據,以此數據來預測第33天的收盤價和收益率。如此類推,也即運用第n-31天至第n天的數據分解結果,取第n天的數據存放為模型輸入變量的第n-31個數據,以此數據來預測第n+1天的收盤價和收益率。滑動窗口-變分模態分解數據構造流程如圖1所示。
圖1中VMD_i(i=1,...,n-31) 代表對第i組數據進行變分模態分解;VMD_i_j(i=1,...,n-31,j=i,...,i+31) 表示從第i次變分模態分解得到的第j天的數據分解結果;VMDi則表示輸入變量中的第i天的輸入數據,為原始數據的第i次變分模態分解結果中的最后一項,即圖1中的VMD32=VMD_1_32,VMD33=VMD_2_33,VMD34=VMD_3_34,依此類推VMDn=VMD_(n-31)_(n)。
2.2 LSTM網絡結構
長短時記憶神經網絡(LSTM) 由輸入層、輸出層和隱藏層三個部分構成,其中隱藏層的層數和每一層神經元個數決定了神經網絡的深度和復雜程度。與生物神經網絡相仿,神經元也是神經網絡模型中具備運算能力的最小結構單元,LSTM通過神經元讓序列信息有選擇性地影響神經網絡中每個訓練步的狀態,并使用tanh、sigmoid、ReLU等激活函數輸出一個0到1之間的數值作為門控,描述當前輸入有多少信息量可以通過這個“門”。而“層”就是神經元的集合,各個層以一定的方式互相連接就構成了神經網絡。LSTM算法主要包括前向傳播和反向傳播兩個過程,前向傳播按遺忘門、輸入門、輸出門的順序處理信息;反向傳播則是利用鏈式法則計算每個神經元中的權重和偏置梯度;最后使用優化算法反復更新這些系數,直至訓練出適合該問題的神經網絡模型。圖2為LSTM單元結構示意圖。
從LSTM單元結構可以看出,該神經網絡不僅可以從序列當前數據狀態中提取有用信息,還能保留距離當前狀態較遠的計算步中具有長期相關性的信息,所以LSTM是解決時序問題的理想工具之一。綜上,基于SW-VMD數據分解的LSTM時序預測模型的具體算法流程如下:
step1: 對長度為n的股指收盤價序列以及收益率序列,進行滑動窗口-變分模態分解,得到長度為n-31,本征模函數IMF數量為m的數據作為模型的輸入變量;
step2: 將數據分割為訓練集、驗證集以及測試集,其中驗證集長度為30天,測試集長度為60天;
step3: 在模型訓練的過程中,在訓練步數達到1000步后開始引入驗證集,每30步驗證一次獲取各個模型的驗證集結果,并保存訓練過程中驗證集表現較好的模型;
step4: 對訓練結束后保存下來的模型輸入測試集數據進行股指收盤價以及收益率預測,驗證并比較不同模型以及數據對預測性能的影響。
3 實證分析
由于股票指數具有較強的股票市場代表性,作為投資對象相對穩健,本文選取上證指數、滬深300的股指收盤價以及收益率數據,運用當前時間之前的歷史信息,構建LSTM神經網絡模型預測隔天的股指收盤價和收益率的漲跌趨勢。 本文使用波動較小的收盤價以及波動較大的收益率兩種數據進行數據分解,以此驗證算法對兩種波動性差異較大數據的作用,構建價格預測模型以及收益率預測模型。同時本文將無數據分解的模型與使用SW-VMD數據分解模型進行對比,分析并評價數據分解方法對于模型預測性能的優化程度。
首先,將相鄰兩天的收盤價格進行比對,使用如下的對數收益率計算公式,得到收益率序列:
基于該收益率序列,如下定義漲跌趨勢trend:
本文所取樣本中的漲平跌趨勢數據量大約各占三分之一。在此設定下,為驗證算法對未來價格和收益率的漲、平、跌三種情況的預測表現,定義如下的趨勢準確率accuracy:
3.1 數據處理
所用數據通過網易財經下載,分別為滬深300指數2007年1月15日到2020年4月28日和上證指數1990年12月21日到2020年4月28日的收盤價、最高價、最低價、前收盤價、成交量和收益率數據。上述六個指標的數據將作為不使用數據分解模型的LSTM神經網絡的輸入變量。對于使用SW-VMD數據分解的預測模型,設定本征模態函數個數為6,收盤價以及收益率原始數據需分別按照圖1的步驟進行變分模態分解,將得到的6個本征模態函數作為數據分解模型的輸入變量。
首先,對數據進行ADF平穩性檢驗。當ADF檢驗結果小于1%、5%、10%水平下的拒絕原假設的統計值,則說明該序列是平穩的,否則是非平穩的。上證指數及滬深300收盤價及收益率序列平穩性檢驗結果如表1所示。從檢驗結果可知,兩個股指的收盤價序列均為非平穩序列,收益率序列則為平穩序列。
為判定LSTM神經網絡的模型性能,在使用神經網絡計算之前,首先使用Hurst指數來驗證所取收盤價和收益率時間序列數據的記憶性。上證指數和滬深300指數的收盤價和收益率時間序列的Hurst檢驗結果見表2。由表2可以看出,兩種指數的收益率數據序列的Hurst值均屬于區間[[0.45, 0.5]],根據Hurst指數的數值意義,說明選取的收益率時間序列均具有長記憶性,但具有弱反持續性,即在一定時間內上升后,下一時間段內下降。表2中收盤價的Hurst值均在0.5以上,這說明了收盤價序列也具有長記憶性且具有持續行為,也即在收盤價上升的情況會繼續上升,下降的時候會持續下降。因為收益率值在零軸附近波動劇烈,漲跌變化較快,而收盤價序列則通常會出現持續上漲或持續下跌的趨勢,這與Hurst指數的數值意義是一致的。
接下來,運用SW-VMD變分模態分解算法對兩個股指的收盤價序列以及收益率序列進行分解,得到6個本征模函數IMF,以滬深300收盤價的VMD數據分解結果為示例,詳見圖3。圖3中第一個本征模函數為原始序列的低頻項,反映了原始序列的趨勢情況,第2~6個本征模函數為原始序列的高頻項。本征模函數的頻率從上到下逐漸上升。上證指數的VMD數據分解結果與滬深300指數的分解結果相似,此處略去。
3.2 預測結果分析
使用TensorFlow計算框架實現LSTM神經網絡。首先使用Z-score標準化對數據進行歸一化處理,也即取數據與該組平均數的差再除以標準差的過程,以消除數據間量綱不同的影響。隱藏層層數設置為3,每一隱藏層神經元個數為128。批次大小(batchsize) 設置為256,時間步設置為1,迭代次數設置為5000。為防止模型出現過擬合現象,dropout層的失活率設置為0.1,正則化方法選用L1及L2正則化,正則化參數均為0.01。迭代使用固定步長衰減學習率,學習率初值為0.0015,每50步衰減為原學習率的97.5%,優化器算法為Adam。訓練損失函數選用如下均方誤差MSE:
上證指數和滬深300的原始數據總長度分別為7207、3264。注意滑動窗口的VMD數據分解以32條數據為一組,實際使用時只選取分解后數據的最后一條,LSTM神經網絡輸入數據的實際總長度為7176和3233。筆者將測試集設置為總數據的最后60天數據(共60條數據),驗證集為總數據的最后90天到最后60天的數據(共30條數據)。訓練集為除測試集和驗證集以外的所有數據,即上證指數和滬深300的訓練集數據長度分別為7086和3143。
兩種股指的價格和收益率LSTM預測模型訓練損失函數值下降過程分別見圖4和圖5。從圖4可見,相較于使用SW-VMD數據分解(綠線)和不使用數據分解兩種情況(紅線),前者訓練損失函數值的下降速度更快,且使用數據分解后的損失函數最終收斂值總是小于直接使用LSTM神經網絡的收斂值,可見使用SW-VMD數據分解后LSTM模型對實測數據的擬合度更好。而對于圖5直接使用LSTM神經網絡計算的兩種指數的收益率損失函數值均下降較緩慢,相對而言,滬深300指數的損失函數下降的速度和幅度均快于上證指數。這是由于收益率序列屬于波動較大的序列,模型尋優的過程也相對困難。而使用SW-VMD數據分解后收益率損失函數值仍能快速下降,且紅線和綠線明顯分離,收斂值顯著變小,可見使用SW-VMD數據分解對收益率序列的收斂過程改善程度更大。此外由于LSTM神經網絡使用了衰減學習率和的dropout正則化等原因,可以觀察到損失函數值在一個小范圍內不均勻變化,呈震蕩下降趨勢。
兩種股指的價格和收益率預測模型在使用SW-VMD數據分解(綠線)和不使用數據分解(紅線)兩種情況下,LSTM網絡中驗證集預測準確率accuracy表現見圖6和圖7。從兩圖可以看出,總體而言綠線居于紅線之上,在總共180次驗證中,上證指數和滬深300價格預測模型使用SW-VMD數據分解準確率高于無數據分解模型的次數分別為158、120,占比分別為87.78%、66.67%。兩種指數收益率預測模型使用SW-VMD數據分解準確率高于無數據分解模型的次數分別為148、173,占比分別為82.22%、96.11%。由此可見,基于滑動窗口-數據分解的模型在驗證集上的平均預測準確率比無處理模型更高。最后,結合測試集的綜合表現,基于SW-VMD數據分解方法對于價格預測平均提升達5.28%,對于收益率預測平均提升達到12.65%。總體而言,本文提出SW-VMD-LSTM模型對于時序預測具有顯著的優化效果,且使用SW-VMD數據分解后收益率預測準確率高于價格預測,可見所提出模型對波動較大的時間序列有較好的預測作用。
4 總結
本文基于滑動窗口-變分模態分解數據分解方法以及LSTM神經網絡,對金融時序數據的漲跌趨勢預測提出了一種優化方法。由于變分模態分解基于整組輸入數據提取本征模態函數,當用于時序數據的處理時,為使得預測模型充分利用歷史數據,同時符合時序數據隨時間推進的特點,采用了滑動窗口的變分模態分解數據處理方法。數據分解達到了特征提取和重用,線性化和平穩化的效果。分解后的數據作為LSTM神經網絡的輸入數據,構建股指價格和收益率的深度學習預測模型。實證選擇中國股票市場兩種股票綜合指數,從無數據處理和使用數據處理結果的比較分析中得到滑動窗口-變分模態分解數據分解有助于提高LSTM神經網絡的收斂速度,且在股指收盤價序列和收益率序列漲跌趨勢預測的準確度更高。相對波動較大的收益率序列的實驗結果優于收盤價序列,可見本文提出的方法在處理波動較大數據序列的能力增強。
參考文獻:
[1] Engle R F.Autoregressive conditional heteroscedasticity with estimates of the variance of United Kingdom inflation[J].Econometrica,1982,50(4):987.
[2] Bollerslev T.Generalized autoregressive conditional heteroskedasticity[J].Journal of Econometrics,1986,31(3):307-327.
[3] Hochreiter S,Schmidhuber J.Long short-term memory[J].Neural Computation,1997,9(8):1735-1780.
[4] 金雪軍,曹贏.美國擴張性貨幣政策對中國通脹的影響——基于深度長短期記憶神經網絡的分析[J].上海金融,2016(3):80-83.
[5] 謝合亮,游濤.基于深度學習算法的歐式股指期權定價研究——來自50ETF期權市場的證據[J].統計與信息論壇,2018,33(6):99-106.
[6] 李瑩,王璐璐.基于遺傳算法優化的LSTM神經網絡期貨價格預測模型研究[J].電腦知識與技術,2020,16(1):182-184.
[7] 陳琪琪.基于CNN-LSTM神經網絡研究股票價格的變動[J].經濟研究導刊,2020(2):157-160.
[8] Huang N E,Shen Z,Long S R,et al.The empirical mode decomposition and the Hilbert spectrum for nonlinear and non-stationary time series analysis[J].Proceedings of the Royal Society of London Series A:Mathematical,Physical and Engineering Sciences,1998,454(1971):903-995.
[9] Dragomiretskiy K,Zosso D.Variational mode decomposition[J].IEEE Transactions on Signal Processing,2014,62(3):531-544.
[10] Jianwei E,Bao Y L,Ye J M.Crude oil price analysis and forecasting based on variational mode decomposition and independent component analysis[J].Physica A:Statistical Mechanics and Its Applications,2017,484:412-427.
[11] Jianwei E,Shenggang L,Ye J M.A new approach to gold price analysis based on variational mode decomposition and independent component analysis[J].Acta Physica Polonica B,2017,48(11):2093.
【通聯編輯:唐一東】