邸 浩,趙學(xué)軍,張自力
(1.北京大學(xué) 光華管理學(xué)院,北京 100871;2.嘉實(shí)基金管理有限公司,北京 100005)
隨著金融市場(chǎng)的日益發(fā)展,商品期貨由于其具有分散投資風(fēng)險(xiǎn)、可多空并舉、充分使用杠桿等特性,使得大宗商品在資產(chǎn)配置中的作用越來(lái)越重要。在對(duì)大宗商品的研究當(dāng)中,商品價(jià)格內(nèi)在運(yùn)行規(guī)律的研究是學(xué)者以及商品投資者最為關(guān)注的焦點(diǎn)。
學(xué)者們最初廣泛使用時(shí)間序列和計(jì)量經(jīng)濟(jì)模型來(lái)預(yù)測(cè)商品的價(jià)格[1,2]。然而,商品的價(jià)格序列為非線(xiàn)性、非平穩(wěn)的,上述模型不能很好地抓住商品價(jià)格非線(xiàn)性的特點(diǎn),從而導(dǎo)致預(yù)測(cè)的效果并不理想。面對(duì)傳統(tǒng)計(jì)量經(jīng)濟(jì)模型的缺陷,有學(xué)者開(kāi)始采用BP神經(jīng)網(wǎng)絡(luò)的方法來(lái)對(duì)商品價(jià)格的序列進(jìn)行預(yù)測(cè)研究[3]。結(jié)果顯示BP神經(jīng)網(wǎng)絡(luò)可以很好地抓取商品價(jià)格非線(xiàn)性的特點(diǎn),從而使得預(yù)測(cè)效果得到大大提升。然而,BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練的過(guò)程中卻沒(méi)有體現(xiàn)商品價(jià)格先后的時(shí)序關(guān)系,這在商品價(jià)格預(yù)測(cè)理論上具有很大的缺陷。針對(duì)此,學(xué)者們提出了循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。然而,RNN在處理實(shí)際問(wèn)題時(shí)經(jīng)常會(huì)面臨梯度消失的情況。1997年Hochreiter和Schmidhuber[4]提出了長(zhǎng)短期記憶(LSTM)模型,用來(lái)克服RNN梯度消失的問(wèn)題。2017年Nelson[5]采用LSTM神經(jīng)網(wǎng)絡(luò)根據(jù)歷史價(jià)格以及技術(shù)分析指標(biāo)來(lái)預(yù)測(cè)股票的價(jià)格。相較于以前的人工智能算法,LSTM的預(yù)測(cè)能力得到了顯著的提升。
上述所有的研究都是采用單一的人工智能方法對(duì)商品的價(jià)格進(jìn)行預(yù)測(cè),然而單一的人工智能方法泛化能力較弱,在樣本外不能很好地預(yù)測(cè)商品的價(jià)格。針對(duì)該問(wèn)題,本文擬通過(guò)Adaboost算法對(duì)LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行增強(qiáng)。此外,金融市場(chǎng)是由不同投資水平的投資者組成的,不同的投資者依據(jù)不同的時(shí)間尺度看待和影響金融市場(chǎng)[6]。經(jīng)驗(yàn)?zāi)B(tài)分解(EEMD)方法可以將原始數(shù)據(jù)進(jìn)行分解,產(chǎn)生一系列具有不同特征尺度的數(shù)據(jù)序列。這些不同特征尺度的數(shù)據(jù)序列,分別代表了不同投資時(shí)間水平的投資者所引起的商品價(jià)格波動(dòng)。將分解后的序列輸入到神經(jīng)網(wǎng)絡(luò)模型當(dāng)中,可以使得神經(jīng)網(wǎng)絡(luò)模型更好地識(shí)別商品價(jià)格的波動(dòng)規(guī)律,進(jìn)而提高商品價(jià)格預(yù)測(cè)的準(zhǔn)確性[7]。因此,本文擬將EEMD方法、LSTM神經(jīng)網(wǎng)絡(luò)模型和Adaboost算法相結(jié)合,構(gòu)建一個(gè)多尺度的組合預(yù)測(cè)模型(EEMD-LSTM-Adaboost)。
RNN是包含循環(huán)的神經(jīng)網(wǎng)絡(luò),它允許信息的持久化,被用來(lái)解決非線(xiàn)性時(shí)間可變問(wèn)題,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 RNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在圖1中,RNN神經(jīng)網(wǎng)絡(luò)的模塊A讀取輸入xt,得到輸出值ht。循環(huán)可以使得信息從當(dāng)前步傳遞到下一步。實(shí)際上,RNN可以認(rèn)為是同一神經(jīng)網(wǎng)絡(luò)的多次復(fù)制,每個(gè)神經(jīng)網(wǎng)絡(luò)模塊會(huì)把消息傳遞給下一個(gè)模塊。所以,如果將這個(gè)循環(huán)展開(kāi),便得到了如圖2所示的結(jié)構(gòu)。
圖2 RNN神經(jīng)網(wǎng)絡(luò)展開(kāi)結(jié)構(gòu)圖
上述鏈?zhǔn)降木W(wǎng)絡(luò)結(jié)構(gòu)揭示了RNN本質(zhì)上是與序列相關(guān)的。RNN是對(duì)于這類(lèi)數(shù)據(jù)的最自然的神經(jīng)網(wǎng)絡(luò)架構(gòu)。目前RNN已經(jīng)在語(yǔ)音識(shí)別、圖像處理等問(wèn)題上取得了顯著的效果。然而,RNN在實(shí)際應(yīng)用過(guò)程中經(jīng)常面臨梯度消失的問(wèn)題,也就是后面時(shí)間節(jié)點(diǎn)對(duì)前面時(shí)間節(jié)點(diǎn)的感知力下降。為了解決RNN所面臨的上述問(wèn)題,Hochreiter和Schmidhuber[4]提出了LSTM神經(jīng)網(wǎng)絡(luò)模型。這個(gè)模型類(lèi)似一個(gè)具有隱藏層的標(biāo)準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),但每個(gè)普通隱藏層中的節(jié)點(diǎn)被存儲(chǔ)單元所替換。LSTM模型在RNN的神經(jīng)元部分增加了輸入門(mén)、輸出門(mén)和忘記門(mén)。該設(shè)計(jì)結(jié)構(gòu)可以有效地解決梯度消失的問(wèn)題[8]。這使得LSTM非常適合處理長(zhǎng)期依賴(lài)問(wèn)題。模型的具體結(jié)構(gòu)如圖3所示。
圖3帶有忘記門(mén)的一個(gè)LSTM的記憶細(xì)胞
LSTM首先采用“忘記門(mén)”來(lái)確定細(xì)胞狀態(tài)中哪些信息需要丟失以及哪些需要保留。忘記門(mén)會(huì)讀取ht-1和xt,通過(guò)sigmoid函數(shù)來(lái)計(jì)算忘記門(mén)ft。
其次,是確定哪些信息被存放在細(xì)胞狀態(tài)中。這里包含兩個(gè)部分。第一,sigmoid層稱(chēng)為“輸入門(mén)層”,它決定將要更新什么值。第二,通過(guò)tanh層來(lái)創(chuàng)建一個(gè)新的向量會(huì)被加入到狀態(tài)之中。下一步,本文會(huì)使用這兩個(gè)信息對(duì)狀態(tài)進(jìn)行更新。
再次,將確定如何更新信息。本文將舊細(xì)胞狀態(tài)Ct-1更新為Ct。把舊狀態(tài)Ct-1與ft相乘,丟棄掉本文確定需要丟棄的信息。接著加上。這就是新的候選值,根據(jù)決定更新每個(gè)狀態(tài)的程度進(jìn)行變化。
最后,通過(guò)“輸出門(mén)”來(lái)確定輸出什么信息。這個(gè)輸出將會(huì)基于細(xì)胞狀態(tài)。首先,通過(guò)sigmoid層來(lái)確定將要輸出的細(xì)胞狀態(tài)。然后,把細(xì)胞狀態(tài)通過(guò)tanh層進(jìn)行處理(得到一個(gè)在-1到1之間的數(shù)值)并將它和sigmoid門(mén)的輸出進(jìn)行相乘,最終僅僅會(huì)輸出確定輸出的部分。
在式(1)至式(6)中,Wi、Wf、WC、Wo為權(quán)值向量,bi、bf、bC、bo為相應(yīng)的偏差向量。
此為較常見(jiàn)的LSTM模型,此外LSTM還有很多其他的形式。例如:流形的LSTM、GRU等。研究發(fā)現(xiàn)這些不同形式的LSTM模型預(yù)測(cè)效果相差不大。
通過(guò)上述LSTM神經(jīng)網(wǎng)絡(luò)模型建模之后,模型的預(yù)測(cè)能力并不能滿(mǎn)足要求。所以,本文將進(jìn)一步考慮采用Adaboost算法對(duì)LSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行增強(qiáng)。
Adaboost算法的基本思想:針對(duì)一個(gè)復(fù)雜的任務(wù),將多個(gè)專(zhuān)家的判斷進(jìn)行適當(dāng)?shù)木C合所得出的判斷,通常要比其中任何一個(gè)專(zhuān)家單獨(dú)的判斷效果好。Adaboost算法重點(diǎn)關(guān)注被錯(cuò)分的樣本,器重性能好的弱預(yù)測(cè)器。
最初Adaboost算法主要應(yīng)用于二分類(lèi)問(wèn)題,而直接去預(yù)測(cè)商品的價(jià)格則需要對(duì)算法進(jìn)行改進(jìn)。下面給出改進(jìn)過(guò)的Adaboost算法對(duì)LSTM神經(jīng)網(wǎng)絡(luò)模型進(jìn)行增強(qiáng)。
輸出:強(qiáng)預(yù)測(cè)器。
(2)對(duì)k=1,2,…,K
①當(dāng)權(quán)值分布為Dk時(shí),通過(guò)LSTM神經(jīng)網(wǎng)絡(luò)對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,得到基于LSTM模型的預(yù)測(cè)器:hk:S→Y。
②計(jì)算hk在訓(xùn)練數(shù)據(jù)集上的預(yù)測(cè)誤差:,函數(shù)的輸出區(qū)間為[0 , 1]。
④計(jì)算當(dāng)前預(yù)測(cè)器hk的系數(shù),其中
(2)對(duì)k=1,2,…,K
①當(dāng)權(quán)值分布為Dk時(shí),通過(guò)LSTM神經(jīng)網(wǎng)絡(luò)對(duì)訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,得到基于LSTM模型的預(yù)測(cè)器:hk:S→Y。中
(4)構(gòu)建最終預(yù)測(cè)器。將上述訓(xùn)練好的預(yù)測(cè)器按照連接權(quán)值進(jìn)行集成得到最終的強(qiáng)預(yù)測(cè)器。
通過(guò)Adaboost算法便把許多個(gè)弱預(yù)測(cè)器集成為一個(gè)強(qiáng)預(yù)測(cè)器,然后通過(guò)強(qiáng)預(yù)測(cè)器分別對(duì)IMFi及rn進(jìn)行預(yù)測(cè),最后再將預(yù)測(cè)結(jié)果進(jìn)行集成得到下一時(shí)期商品的預(yù)測(cè)價(jià)格。圖4給出了EEMD-LSTM-Adaboost模型預(yù)測(cè)商品價(jià)格的整體框架。
圖4 EEMD-LSTM-Adaboost模型框架
(1)首先采用EEMD方法對(duì)商品價(jià)格序列St進(jìn)行分解,得到n個(gè)IMF分量和一個(gè)趨勢(shì)項(xiàng)rn。
(2)針對(duì)每一個(gè)IMFi,i=1,2,…,n以及趨勢(shì)項(xiàng)rn,采用LSTM-Adaboost方法獲得第t+1天每個(gè)IMF的預(yù)測(cè)值和rn的預(yù)測(cè)值
(3)將上述預(yù)測(cè)結(jié)果進(jìn)行集成得到第t+1天商品價(jià)格的預(yù)測(cè)值,其中:
本文將以滬金為例,來(lái)檢驗(yàn)所提出EEMD-LSTM-Adaboost模型的預(yù)測(cè)能力。
本文選取2008年1月9日至2017年9月22日的滬金收盤(pán)價(jià)格日數(shù)據(jù)進(jìn)行研究,共計(jì)2364個(gè)數(shù)據(jù)。其中,選取2008年1月9日至2016年12月30日的數(shù)據(jù)作為訓(xùn)練集,選取2017年1月3日至2017年09月22日的數(shù)據(jù)作為測(cè)試集。滬金價(jià)格序列的走勢(shì)如圖5所示。
對(duì)滬金價(jià)格序列進(jìn)行統(tǒng)計(jì)分析,結(jié)果如表1所示。由表1可以看出,滬金價(jià)格序列的偏度為0.2257,峰度為2.5508,這表明滬金的價(jià)格序列不服從正態(tài)分布。通過(guò)ADF檢驗(yàn)結(jié)果(-1.6973>-2.8628),可以看到滬金價(jià)格序列是一個(gè)非平穩(wěn)序列。因此,不可以采用諸如多元線(xiàn)性回歸、VAR模型等傳統(tǒng)的方法來(lái)預(yù)測(cè)滬金的價(jià)格。本文所采用的EEMD方法可以將非平穩(wěn)的價(jià)格序列轉(zhuǎn)化為許多個(gè)平穩(wěn)的子序列,進(jìn)而采用LSTM-Adaboost模型來(lái)對(duì)分解后的子序列進(jìn)行預(yù)測(cè),然后對(duì)預(yù)測(cè)結(jié)果進(jìn)行集成得到滬金價(jià)格的預(yù)測(cè)值。
圖5 滬金價(jià)格走勢(shì)
表1 滬金收盤(pán)價(jià)統(tǒng)計(jì)分析
3.2.1 IMF分量和殘差項(xiàng)的統(tǒng)計(jì)性質(zhì)
采用EEMD方法對(duì)滬金價(jià)格序列進(jìn)行分解,分解后的子序列如圖6所示。通過(guò)圖6可以看到滬金價(jià)格序列經(jīng)EEMD分解之后得到9個(gè)IMF子序列和一個(gè)趨勢(shì)項(xiàng)序列(Residual)。很明顯,每個(gè)子序列的頻率不同。進(jìn)一步,本文對(duì)分解后的各IMF進(jìn)行統(tǒng)計(jì)分析,分析結(jié)果如表2所示。
圖6 EEMD分解結(jié)果
表2 IMF分量數(shù)據(jù)分析
由表2的結(jié)果可知IMF分量有如下兩個(gè)性質(zhì):
(1)周期性。每個(gè)IMF分量的持續(xù)周期為該分量樣本點(diǎn)的數(shù)目除以極大值(極小值)點(diǎn)的數(shù)目。本文把持續(xù)周期1個(gè)月以?xún)?nèi)的價(jià)格波動(dòng)看作短期,1個(gè)月以上的價(jià)格波動(dòng)看作中期。通過(guò)表2可以看出,分量IMF1~I(xiàn)MF4為分解出的高頻序列部分,代表短期投資者的投資行為所引起的商品價(jià)格波動(dòng);分量IMF5~I(xiàn)MF9為分解出的中頻序列部分,代表中期投資者的投資行為所引起的商品價(jià)格波動(dòng);殘差項(xiàng)Residual為原始數(shù)據(jù)剔除中短期干擾因素之后的趨勢(shì)項(xiàng)。
(2)平穩(wěn)性。通過(guò)ADF平穩(wěn)性檢驗(yàn)的結(jié)果可知,各個(gè)IMF分量的ADF檢驗(yàn)的t值均遠(yuǎn)遠(yuǎn)小于置信度為5%時(shí)的臨界值-2.8628,這說(shuō)明各個(gè)IMF分量均為平穩(wěn)序列。這也驗(yàn)證了EEMD方法可以將非平穩(wěn)序列分解成若干個(gè)相互獨(dú)立且正交的平穩(wěn)序列的結(jié)論。
3.2.2 各IMF分量以及殘差項(xiàng)Residual所代表的經(jīng)濟(jì)意義
(1)趨勢(shì)項(xiàng)。通過(guò)圖5和圖6(右下圖)可以看到,殘差項(xiàng)Residual基本上描述了滬金價(jià)格在2008—2017年的長(zhǎng)期運(yùn)動(dòng)趨勢(shì)。在實(shí)踐中,通過(guò)對(duì)長(zhǎng)期趨勢(shì)的預(yù)測(cè),可以判斷當(dāng)前的滬金價(jià)格是處于高估還是低估狀態(tài),并由此采取相應(yīng)的投資策略,從而獲得長(zhǎng)期穩(wěn)定的收益。
(2)重大事件影響。分量IMF5~I(xiàn)MF9表示重大事件對(duì)滬金價(jià)格的影響,其持續(xù)周期長(zhǎng)度短至1月長(zhǎng)至幾年,這說(shuō)明了重大事件是滬金價(jià)格波動(dòng)的重要組成部分。在受到例如金融危機(jī)、戰(zhàn)爭(zhēng)等較大因素的影響下,滬金價(jià)格會(huì)發(fā)生較大幅度的變化,且其持續(xù)時(shí)間通常較長(zhǎng)。這表明由重大事件引起的利好或利空消息難以由市場(chǎng)自動(dòng)消化,對(duì)滬金價(jià)格的沖擊可能很大。盡管其影響的持續(xù)時(shí)間較長(zhǎng),但是由重大事件所引起的滬金價(jià)格變化一般會(huì)回歸到長(zhǎng)期趨勢(shì)線(xiàn)上。如果將每個(gè)重大事件都從原始信號(hào)中分解出來(lái),并計(jì)算出對(duì)滬金價(jià)格的影響,就可以為預(yù)測(cè)類(lèi)似事件對(duì)滬金價(jià)格造成的沖擊提供參考。
(3)短期市場(chǎng)波動(dòng)因素。分量IMF1~I(xiàn)MF4代表其他短期市場(chǎng)的波動(dòng)因素,其持續(xù)周期為2~24天,這說(shuō)明了短期市場(chǎng)因素對(duì)滬金價(jià)格波動(dòng)的影響有限。例如某短期市場(chǎng)供求變化導(dǎo)致的滬金價(jià)格的變化。由于長(zhǎng)期內(nèi)市場(chǎng)供求會(huì)再次達(dá)到均衡,公眾也會(huì)調(diào)整他們對(duì)滬金價(jià)值的評(píng)估值,因而此類(lèi)因素所引起的滬金價(jià)格的波動(dòng)既是不可持續(xù)的,又不會(huì)過(guò)于劇烈。短期投機(jī)者可以通過(guò)分析這些代表短期影響因素的分量IMF1~I(xiàn)MF4,對(duì)短期內(nèi)滬金價(jià)格的變動(dòng)趨勢(shì)做出研判,并由此獲取超額收益。
通過(guò)上述分析,可以知道每個(gè)IMF分量以及殘差項(xiàng)都有其經(jīng)濟(jì)含義,且每個(gè)IMF分量均為平穩(wěn)序列,采用本文所提出的EEMD-LSTM-Adaboost方法可以更好地預(yù)測(cè)滬金的價(jià)格。圖7是采用EEMD-LSTM-Adaboost方法對(duì)樣本外的滬金收盤(pán)價(jià)預(yù)測(cè)的結(jié)果。
為了進(jìn)一步檢驗(yàn)本文所提出EEMD-LSTM-Adaboost模型的有效性,本文分別采用平均絕對(duì)百分比誤差(MAPE)、均方根誤差(RMSE)和命中率(DS)指標(biāo)作為評(píng)價(jià)標(biāo)準(zhǔn),每個(gè)指標(biāo)的計(jì)算公式如表3所示。
圖7 滬金價(jià)格預(yù)測(cè)結(jié)果
表3 性能評(píng)價(jià)指標(biāo)公式
表3中的Ti和Pi分別表示滬金價(jià)格的預(yù)測(cè)值和真實(shí)值;n為樣本點(diǎn)的總個(gè)數(shù)。通過(guò)上述公式可以看出,MAPE和RMSE越小說(shuō)明模型的預(yù)測(cè)能力越好,DS越大說(shuō)明模型預(yù)測(cè)價(jià)格變化方向的準(zhǔn)確率越高,模型的預(yù)測(cè)能力越好。
本文選取最常見(jiàn)的BP神經(jīng)網(wǎng)絡(luò)作為比較基準(zhǔn)。表4展示了直接通過(guò)商品價(jià)格數(shù)據(jù)進(jìn)行預(yù)測(cè)和按照將價(jià)格數(shù)據(jù)通過(guò)分解-集成的思想進(jìn)行預(yù)測(cè)時(shí)各個(gè)模型的性能。
表4 模型預(yù)測(cè)性能比較
通過(guò)表4可以看到BP神經(jīng)網(wǎng)絡(luò)模型的MAPE、RMSE和DS的值分別為1.3396、1.211和54.75%,LSTM神經(jīng)網(wǎng)絡(luò)模型的MAPE、RMSE和DS的值分別為0.0952、0.217和58.66%。由此可知,LSTM神經(jīng)網(wǎng)絡(luò)相較于BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)能力有了較大的提升,這充分體現(xiàn)了LSTM在時(shí)間序列預(yù)測(cè)上的優(yōu)勢(shì)。同時(shí)可以發(fā)現(xiàn),經(jīng)過(guò)Adaboost增強(qiáng)的LSTM的預(yù)測(cè)能力進(jìn)一步得到了提升。此外,通過(guò)對(duì)比可以看出將數(shù)據(jù)進(jìn)行EEMD分解-集成的三個(gè)模型的預(yù)測(cè)能力都優(yōu)于直接使用原始數(shù)據(jù)來(lái)預(yù)測(cè)商品價(jià)格的結(jié)果,并且本文所提出的EEMD-LSTM-Adaboost模型的預(yù)測(cè)能力最高,MAPE和RMSE僅為0.0196和0.007,DS比率高達(dá)65%,這說(shuō)明EEMD-LSTM-Adaboost模型對(duì)商品價(jià)格的預(yù)測(cè)更為準(zhǔn)確。
本文將EEMD方法、LSTM神經(jīng)網(wǎng)絡(luò)和Adaboost算法相結(jié)合,構(gòu)建了一個(gè)多尺度組合預(yù)測(cè)模型(EEMD-LSTM-Adaboost)。首先應(yīng)用EEMD方法將商品價(jià)格序列分解為不同尺度的本征模態(tài)分量(IMF)和一個(gè)趨勢(shì)項(xiàng)。為了提高模型的預(yù)測(cè)能力和泛化能力,本文提出采用LSTM神經(jīng)網(wǎng)絡(luò)和Adaboost算法相結(jié)合的方法對(duì)分解后的商品價(jià)格序列進(jìn)行建模和預(yù)測(cè),然后通過(guò)集成得到商品價(jià)格的預(yù)測(cè)值。以滬金為例進(jìn)行了實(shí)證研究,結(jié)果表明:與已有的方法相比,本文所提出的EEMD-LSTM-Adaboost方法預(yù)測(cè)能力更好。