邸 浩,趙學軍,張自力
(1.北京大學 光華管理學院,北京 100871;2.嘉實基金管理有限公司,北京 100005)
隨著金融市場的日益發展,商品期貨由于其具有分散投資風險、可多空并舉、充分使用杠桿等特性,使得大宗商品在資產配置中的作用越來越重要。在對大宗商品的研究當中,商品價格內在運行規律的研究是學者以及商品投資者最為關注的焦點。
學者們最初廣泛使用時間序列和計量經濟模型來預測商品的價格[1,2]。然而,商品的價格序列為非線性、非平穩的,上述模型不能很好地抓住商品價格非線性的特點,從而導致預測的效果并不理想。面對傳統計量經濟模型的缺陷,有學者開始采用BP神經網絡的方法來對商品價格的序列進行預測研究[3]。結果顯示BP神經網絡可以很好地抓取商品價格非線性的特點,從而使得預測效果得到大大提升。然而,BP神經網絡在訓練的過程中卻沒有體現商品價格先后的時序關系,這在商品價格預測理論上具有很大的缺陷。針對此,學者們提出了循環神經網絡(RNN)。然而,RNN在處理實際問題時經常會面臨梯度消失的情況。1997年Hochreiter和Schmidhuber[4]提出了長短期記憶(LSTM)模型,用來克服RNN梯度消失的問題。2017年Nelson[5]采用LSTM神經網絡根據歷史價格以及技術分析指標來預測股票的價格。相較于以前的人工智能算法,LSTM的預測能力得到了顯著的提升。
上述所有的研究都是采用單一的人工智能方法對商品的價格進行預測,然而單一的人工智能方法泛化能力較弱,在樣本外不能很好地預測商品的價格。針對該問題,本文擬通過Adaboost算法對LSTM神經網絡進行增強。此外,金融市場是由不同投資水平的投資者組成的,不同的投資者依據不同的時間尺度看待和影響金融市場[6]。經驗模態分解(EEMD)方法可以將原始數據進行分解,產生一系列具有不同特征尺度的數據序列。這些不同特征尺度的數據序列,分別代表了不同投資時間水平的投資者所引起的商品價格波動。將分解后的序列輸入到神經網絡模型當中,可以使得神經網絡模型更好地識別商品價格的波動規律,進而提高商品價格預測的準確性[7]。因此,本文擬將EEMD方法、LSTM神經網絡模型和Adaboost算法相結合,構建一個多尺度的組合預測模型(EEMD-LSTM-Adaboost)。
RNN是包含循環的神經網絡,它允許信息的持久化,被用來解決非線性時間可變問題,其網絡結構如圖1所示。

圖1 RNN神經網絡結構圖
在圖1中,RNN神經網絡的模塊A讀取輸入xt,得到輸出值ht。循環可以使得信息從當前步傳遞到下一步。實際上,RNN可以認為是同一神經網絡的多次復制,每個神經網絡模塊會把消息傳遞給下一個模塊。所以,如果將這個循環展開,便得到了如圖2所示的結構。

圖2 RNN神經網絡展開結構圖
上述鏈式的網絡結構揭示了RNN本質上是與序列相關的。RNN是對于這類數據的最自然的神經網絡架構。目前RNN已經在語音識別、圖像處理等問題上取得了顯著的效果。然而,RNN在實際應用過程中經常面臨梯度消失的問題,也就是后面時間節點對前面時間節點的感知力下降。為了解決RNN所面臨的上述問題,Hochreiter和Schmidhuber[4]提出了LSTM神經網絡模型。這個模型類似一個具有隱藏層的標準循環神經網絡(RNN),但每個普通隱藏層中的節點被存儲單元所替換。LSTM模型在RNN的神經元部分增加了輸入門、輸出門和忘記門。該設計結構可以有效地解決梯度消失的問題[8]。這使得LSTM非常適合處理長期依賴問題。模型的具體結構如圖3所示。

圖3帶有忘記門的一個LSTM的記憶細胞
LSTM首先采用“忘記門”來確定細胞狀態中哪些信息需要丟失以及哪些需要保留。忘記門會讀取ht-1和xt,通過sigmoid函數來計算忘記門ft。

其次,是確定哪些信息被存放在細胞狀態中。這里包含兩個部分。第一,sigmoid層稱為“輸入門層”,它決定將要更新什么值。第二,通過tanh層來創建一個新的向量會被加入到狀態之中。下一步,本文會使用這兩個信息對狀態進行更新。

再次,將確定如何更新信息。本文將舊細胞狀態Ct-1更新為Ct。把舊狀態Ct-1與ft相乘,丟棄掉本文確定需要丟棄的信息。接著加上。這就是新的候選值,根據決定更新每個狀態的程度進行變化。

最后,通過“輸出門”來確定輸出什么信息。這個輸出將會基于細胞狀態。首先,通過sigmoid層來確定將要輸出的細胞狀態。然后,把細胞狀態通過tanh層進行處理(得到一個在-1到1之間的數值)并將它和sigmoid門的輸出進行相乘,最終僅僅會輸出確定輸出的部分。

在式(1)至式(6)中,Wi、Wf、WC、Wo為權值向量,bi、bf、bC、bo為相應的偏差向量。
此為較常見的LSTM模型,此外LSTM還有很多其他的形式。例如:流形的LSTM、GRU等。研究發現這些不同形式的LSTM模型預測效果相差不大。
通過上述LSTM神經網絡模型建模之后,模型的預測能力并不能滿足要求。所以,本文將進一步考慮采用Adaboost算法對LSTM神經網絡模型進行增強。
Adaboost算法的基本思想:針對一個復雜的任務,將多個專家的判斷進行適當的綜合所得出的判斷,通常要比其中任何一個專家單獨的判斷效果好。Adaboost算法重點關注被錯分的樣本,器重性能好的弱預測器。
最初Adaboost算法主要應用于二分類問題,而直接去預測商品的價格則需要對算法進行改進。下面給出改進過的Adaboost算法對LSTM神經網絡模型進行增強。
輸出:強預測器。
(2)對k=1,2,…,K
①當權值分布為Dk時,通過LSTM神經網絡對訓練數據進行訓練,得到基于LSTM模型的預測器:hk:S→Y。
②計算hk在訓練數據集上的預測誤差:,函數的輸出區間為[0 , 1]。
④計算當前預測器hk的系數,其中
(2)對k=1,2,…,K
①當權值分布為Dk時,通過LSTM神經網絡對訓練數據進行訓練,得到基于LSTM模型的預測器:hk:S→Y。中
(4)構建最終預測器。將上述訓練好的預測器按照連接權值進行集成得到最終的強預測器。

通過Adaboost算法便把許多個弱預測器集成為一個強預測器,然后通過強預測器分別對IMFi及rn進行預測,最后再將預測結果進行集成得到下一時期商品的預測價格。圖4給出了EEMD-LSTM-Adaboost模型預測商品價格的整體框架。

圖4 EEMD-LSTM-Adaboost模型框架
(1)首先采用EEMD方法對商品價格序列St進行分解,得到n個IMF分量和一個趨勢項rn。
(2)針對每一個IMFi,i=1,2,…,n以及趨勢項rn,采用LSTM-Adaboost方法獲得第t+1天每個IMF的預測值和rn的預測值
(3)將上述預測結果進行集成得到第t+1天商品價格的預測值,其中:

本文將以滬金為例,來檢驗所提出EEMD-LSTM-Adaboost模型的預測能力。
本文選取2008年1月9日至2017年9月22日的滬金收盤價格日數據進行研究,共計2364個數據。其中,選取2008年1月9日至2016年12月30日的數據作為訓練集,選取2017年1月3日至2017年09月22日的數據作為測試集。滬金價格序列的走勢如圖5所示。
對滬金價格序列進行統計分析,結果如表1所示。由表1可以看出,滬金價格序列的偏度為0.2257,峰度為2.5508,這表明滬金的價格序列不服從正態分布。通過ADF檢驗結果(-1.6973>-2.8628),可以看到滬金價格序列是一個非平穩序列。因此,不可以采用諸如多元線性回歸、VAR模型等傳統的方法來預測滬金的價格。本文所采用的EEMD方法可以將非平穩的價格序列轉化為許多個平穩的子序列,進而采用LSTM-Adaboost模型來對分解后的子序列進行預測,然后對預測結果進行集成得到滬金價格的預測值。

圖5 滬金價格走勢

表1 滬金收盤價統計分析
3.2.1 IMF分量和殘差項的統計性質
采用EEMD方法對滬金價格序列進行分解,分解后的子序列如圖6所示。通過圖6可以看到滬金價格序列經EEMD分解之后得到9個IMF子序列和一個趨勢項序列(Residual)。很明顯,每個子序列的頻率不同。進一步,本文對分解后的各IMF進行統計分析,分析結果如表2所示。

圖6 EEMD分解結果

表2 IMF分量數據分析
由表2的結果可知IMF分量有如下兩個性質:
(1)周期性。每個IMF分量的持續周期為該分量樣本點的數目除以極大值(極小值)點的數目。本文把持續周期1個月以內的價格波動看作短期,1個月以上的價格波動看作中期。通過表2可以看出,分量IMF1~IMF4為分解出的高頻序列部分,代表短期投資者的投資行為所引起的商品價格波動;分量IMF5~IMF9為分解出的中頻序列部分,代表中期投資者的投資行為所引起的商品價格波動;殘差項Residual為原始數據剔除中短期干擾因素之后的趨勢項。
(2)平穩性。通過ADF平穩性檢驗的結果可知,各個IMF分量的ADF檢驗的t值均遠遠小于置信度為5%時的臨界值-2.8628,這說明各個IMF分量均為平穩序列。這也驗證了EEMD方法可以將非平穩序列分解成若干個相互獨立且正交的平穩序列的結論。
3.2.2 各IMF分量以及殘差項Residual所代表的經濟意義
(1)趨勢項。通過圖5和圖6(右下圖)可以看到,殘差項Residual基本上描述了滬金價格在2008—2017年的長期運動趨勢。在實踐中,通過對長期趨勢的預測,可以判斷當前的滬金價格是處于高估還是低估狀態,并由此采取相應的投資策略,從而獲得長期穩定的收益。
(2)重大事件影響。分量IMF5~IMF9表示重大事件對滬金價格的影響,其持續周期長度短至1月長至幾年,這說明了重大事件是滬金價格波動的重要組成部分。在受到例如金融危機、戰爭等較大因素的影響下,滬金價格會發生較大幅度的變化,且其持續時間通常較長。這表明由重大事件引起的利好或利空消息難以由市場自動消化,對滬金價格的沖擊可能很大。盡管其影響的持續時間較長,但是由重大事件所引起的滬金價格變化一般會回歸到長期趨勢線上。如果將每個重大事件都從原始信號中分解出來,并計算出對滬金價格的影響,就可以為預測類似事件對滬金價格造成的沖擊提供參考。
(3)短期市場波動因素。分量IMF1~IMF4代表其他短期市場的波動因素,其持續周期為2~24天,這說明了短期市場因素對滬金價格波動的影響有限。例如某短期市場供求變化導致的滬金價格的變化。由于長期內市場供求會再次達到均衡,公眾也會調整他們對滬金價值的評估值,因而此類因素所引起的滬金價格的波動既是不可持續的,又不會過于劇烈。短期投機者可以通過分析這些代表短期影響因素的分量IMF1~IMF4,對短期內滬金價格的變動趨勢做出研判,并由此獲取超額收益。
通過上述分析,可以知道每個IMF分量以及殘差項都有其經濟含義,且每個IMF分量均為平穩序列,采用本文所提出的EEMD-LSTM-Adaboost方法可以更好地預測滬金的價格。圖7是采用EEMD-LSTM-Adaboost方法對樣本外的滬金收盤價預測的結果。
為了進一步檢驗本文所提出EEMD-LSTM-Adaboost模型的有效性,本文分別采用平均絕對百分比誤差(MAPE)、均方根誤差(RMSE)和命中率(DS)指標作為評價標準,每個指標的計算公式如表3所示。

圖7 滬金價格預測結果

表3 性能評價指標公式
表3中的Ti和Pi分別表示滬金價格的預測值和真實值;n為樣本點的總個數。通過上述公式可以看出,MAPE和RMSE越小說明模型的預測能力越好,DS越大說明模型預測價格變化方向的準確率越高,模型的預測能力越好。
本文選取最常見的BP神經網絡作為比較基準。表4展示了直接通過商品價格數據進行預測和按照將價格數據通過分解-集成的思想進行預測時各個模型的性能。

表4 模型預測性能比較
通過表4可以看到BP神經網絡模型的MAPE、RMSE和DS的值分別為1.3396、1.211和54.75%,LSTM神經網絡模型的MAPE、RMSE和DS的值分別為0.0952、0.217和58.66%。由此可知,LSTM神經網絡相較于BP神經網絡的預測能力有了較大的提升,這充分體現了LSTM在時間序列預測上的優勢。同時可以發現,經過Adaboost增強的LSTM的預測能力進一步得到了提升。此外,通過對比可以看出將數據進行EEMD分解-集成的三個模型的預測能力都優于直接使用原始數據來預測商品價格的結果,并且本文所提出的EEMD-LSTM-Adaboost模型的預測能力最高,MAPE和RMSE僅為0.0196和0.007,DS比率高達65%,這說明EEMD-LSTM-Adaboost模型對商品價格的預測更為準確。
本文將EEMD方法、LSTM神經網絡和Adaboost算法相結合,構建了一個多尺度組合預測模型(EEMD-LSTM-Adaboost)。首先應用EEMD方法將商品價格序列分解為不同尺度的本征模態分量(IMF)和一個趨勢項。為了提高模型的預測能力和泛化能力,本文提出采用LSTM神經網絡和Adaboost算法相結合的方法對分解后的商品價格序列進行建模和預測,然后通過集成得到商品價格的預測值。以滬金為例進行了實證研究,結果表明:與已有的方法相比,本文所提出的EEMD-LSTM-Adaboost方法預測能力更好。