姚洪剛,沐年國(guó)
上海理工大學(xué) 管理學(xué)院,上海200093
金融市場(chǎng)的預(yù)測(cè)一直是受到廣泛關(guān)注的問(wèn)題,無(wú)論是決策者還是投資者,都期望能夠把握金融市場(chǎng)的動(dòng)向?qū)で罄孀畲蠡?。然而,金融時(shí)間序列由于市場(chǎng)行為機(jī)制的復(fù)雜性而具有高噪聲以及非平穩(wěn)非線性的特點(diǎn),這些都為金融時(shí)間序列的預(yù)測(cè)增加了難度。
傳統(tǒng)的時(shí)間序列分析模型受限于固定的模型框架以及較為嚴(yán)格的假設(shè)條件,往往不能對(duì)復(fù)雜的金融時(shí)間序列數(shù)據(jù)做出準(zhǔn)確的預(yù)測(cè)。而基于深度學(xué)習(xí)的時(shí)間序列分析方法更注重對(duì)于數(shù)據(jù)本身的驅(qū)動(dòng),通過(guò)使用激活函數(shù)能夠處理非線性的問(wèn)題,因此可以更好地應(yīng)對(duì)“非理想化”的時(shí)間序列數(shù)據(jù),得到更為準(zhǔn)確的預(yù)測(cè)結(jié)果。近年來(lái),一些機(jī)器學(xué)習(xí)方法諸如支持向量機(jī)[1-2]以及人工神經(jīng)網(wǎng)絡(luò)[3-4]被應(yīng)用于分析時(shí)間序列,并取得了不錯(cuò)的效果。隨著深度學(xué)習(xí)的發(fā)展,一類(lèi)專(zhuān)門(mén)用來(lái)處理序列的循環(huán)神經(jīng)網(wǎng)絡(luò)及其變種LSTM模型被提出[5],LSTM在多個(gè)領(lǐng)域中取得巨大成功[6-8],并開(kāi)始成為從深度學(xué)習(xí)角度處理金融時(shí)間序列的主要方法[9-10]。
基于深度學(xué)習(xí)衍生出多種預(yù)測(cè)金融時(shí)間序列的改進(jìn)方案,從金融序列高噪聲這一角度而產(chǎn)生的一類(lèi)做法是通過(guò)對(duì)序列去噪[11-12]或平滑處理[13]以降低金融時(shí)間序列的噪聲或波動(dòng)性,從而提升深度學(xué)習(xí)方法的預(yù)測(cè)性能。但是這類(lèi)做法均是一次性將所有序列進(jìn)行平滑或小波去噪,然后再將其劃分訓(xùn)練集和測(cè)試集輸入模型,這就造成了訓(xùn)練過(guò)程中使用到測(cè)試集的信息,因此使用滑動(dòng)窗口的多步處理代替一次處理更符合實(shí)際情況。
雖然小波變換在去噪方面使用十分普遍,但小波函數(shù)以及分解層數(shù)的選擇卻是一個(gè)問(wèn)題,尤其是在按滑動(dòng)窗口分解時(shí),不同時(shí)間段可能需要不同的設(shè)定。Huang等[14]提出經(jīng)驗(yàn)?zāi)B(tài)分解方法,通過(guò)一定規(guī)則對(duì)序列進(jìn)行分解,相較于小波分解,EMD具有自適應(yīng)性,能夠避免小波分解的設(shè)定問(wèn)題。目前關(guān)于LSTM結(jié)合EMD的應(yīng)用多是通過(guò)EMD分解得到的不同頻率分布的多個(gè)序列分別輸入LSTM,再利用集成的思想建立模型[15-16]。這里同樣是一次分解處理的原因,由于訓(xùn)練過(guò)程中使用到測(cè)試集的信息,無(wú)法有效說(shuō)明模型的效果。
針對(duì)以上問(wèn)題,提出基于EMD滑動(dòng)窗口去噪結(jié)合LSTM網(wǎng)絡(luò)的金融時(shí)間序列預(yù)測(cè)模型。通過(guò)對(duì)原始序列按一定大小的時(shí)間窗口進(jìn)行EMD分解,使用閾值法對(duì)分解后的高頻序列去噪,再對(duì)所有序列重構(gòu)輸入LSTM,從而提升模型的預(yù)測(cè)性能。
經(jīng)驗(yàn)?zāi)B(tài)分解(EMD)作為一種處理非平穩(wěn)非線性序列十分有效的方法,克服了小波分解的基函數(shù)需要設(shè)定的問(wèn)題,具有自適應(yīng)性。本質(zhì)上,EMD是一個(gè)平穩(wěn)化過(guò)程,通過(guò)一種固定模式將序列分離出不同尺度的平穩(wěn)波動(dòng)項(xiàng)以及一個(gè)殘差趨勢(shì)項(xiàng),其中每一個(gè)波動(dòng)項(xiàng)被稱(chēng)之為本征模態(tài)函數(shù)(IMF)。IMF分量的確定需要滿(mǎn)足兩個(gè)條件:
(1)該分量的極值點(diǎn)和過(guò)零點(diǎn)的數(shù)目必須相等或最多相差一個(gè)。
(2)對(duì)于每一個(gè)時(shí)間點(diǎn),由該分量局部極大值點(diǎn)通過(guò)三次樣條插值形成的上包絡(luò)線和局部極小值點(diǎn)形成的下包絡(luò)線的平均值為零,即兩條包絡(luò)線關(guān)于時(shí)間軸局部對(duì)稱(chēng)。
EMD的具體分解方法[14,17]如下:
(1)確定待分解序列X(t)所有局部極大值和極小值點(diǎn),使用三次樣條插值連接所有局部極大值點(diǎn)形成上包絡(luò)線u0(t),同樣將所有局部極小值點(diǎn)形成下包絡(luò)線l0(t)。
(3)判斷h1(t)是否滿(mǎn)足IMF的條件,如果滿(mǎn)足,則h1(t)為第一個(gè)IMF,否則對(duì)h1(t)依照X(t)做同樣的處理。對(duì)得到新的分量h2(t)=h1(t)-m1(t),做同樣的判斷和處理,直到hk(t)滿(mǎn)足IMF條件或者達(dá)到停止標(biāo)準(zhǔn),停止標(biāo)準(zhǔn)如下:
當(dāng)SD小于某一特定值即達(dá)到停止標(biāo)準(zhǔn),其中特定值一般在之間選取。至此得到第一個(gè)IMF分量imf1。
(4)將剩余分量r1=X(t)-imf1作為新的待分解序列并重復(fù)以上步驟,直到分量imfn或剩余分量rn小于預(yù)定值或者剩余分量rn變成單調(diào)函數(shù)時(shí)結(jié)束。此時(shí):
至此,對(duì)于原始序列X(t)的分解完成。IMF分量imfk隨著k的增加而頻率降低,即先分解出的IMF分量是原始序列的高頻部分,也是含噪較高的部分;剩余分量rn即為反映原始序列趨勢(shì)的趨勢(shì)項(xiàng)。
EMD的去噪思路是對(duì)IMF中含噪較高的高頻分量進(jìn)行去噪處理。確定高頻分量和低頻分量需要計(jì)算IMF能量[17]:
其中,imfkt表示IMF分量imfk在t時(shí)刻的值,T為序列長(zhǎng)度。高頻IMF分量能量較低,低頻IMF分量能量較高,IMF能量在高頻分量和低頻分量之間存在一個(gè)突變過(guò)程,確定突變點(diǎn)即可確定高頻分量的范圍。突變點(diǎn)可由以下方式估計(jì)[18]:
即遍歷每一IMF能量作為突變點(diǎn)K,其中使R(K)達(dá)到最大的點(diǎn)即為突變點(diǎn)K0。
確定突變點(diǎn)K0后,對(duì)imf1~imfK0分別進(jìn)行去噪處理,得到去噪后的分量imf′1~imf′K0。將去噪后的高頻分量與低頻分量以及趨勢(shì)項(xiàng)重構(gòu),得到原始序列X(t)去噪后的序列X′(t):
本文采用閾值法[17-18]去噪,公式如下:
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的網(wǎng)絡(luò)層接受當(dāng)前時(shí)刻的輸入xt以及上一個(gè)時(shí)刻的網(wǎng)絡(luò)狀態(tài)ht-1,得到當(dāng)前時(shí)刻的網(wǎng)絡(luò)狀態(tài)ht并作為下一時(shí)刻的輸入。循環(huán)神經(jīng)網(wǎng)絡(luò)關(guān)注歷史因素的影響使其適合處理時(shí)間序列問(wèn)題,其工作原理如下:
式(9)表示狀態(tài)更新過(guò)程,式(10)表示預(yù)測(cè)輸出過(guò)程。其中xt為t時(shí)刻的輸入特征,ht為t時(shí)刻的狀態(tài)向量,ot為t時(shí)刻的輸出。循環(huán)神經(jīng)網(wǎng)絡(luò)更新?tīng)顟B(tài)向量常常使用:
激活函數(shù)σ多為tanh函數(shù)。
由于標(biāo)準(zhǔn)RNN的結(jié)構(gòu)過(guò)于簡(jiǎn)單,常常無(wú)法長(zhǎng)期保存有效信息,即短時(shí)記憶問(wèn)題。為了有效延長(zhǎng)這種短時(shí)記憶,提出了LSTM網(wǎng)絡(luò)[5]。相較于標(biāo)準(zhǔn)的RNN,LSTM在保留了狀態(tài)向量ht的基礎(chǔ)上,增加了一個(gè)記憶狀態(tài)向量ct,同時(shí)引入門(mén)控機(jī)制,通過(guò)門(mén)控(遺忘門(mén)、輸入門(mén)、輸出門(mén))來(lái)控制序列信息的遺忘與更新。
LSTM網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,狀態(tài)的更新規(guī)則如式(12)~(17)所示。式(12)表示遺忘門(mén)過(guò)程,用于控制t-1時(shí)刻的記憶狀態(tài)向量ct-1進(jìn)入t時(shí)刻LSTM單元的量gf?ct-1。因此激活函數(shù)σ一般使用Sigmoid函數(shù),保證gf的取值范圍在0~1之間,當(dāng)gf=1時(shí),LSTM單元接受ct-1的所有信息;當(dāng)gf=0時(shí),LSTM單元完全忽略ct-1的所有信息。式(13)、(14)表示輸入門(mén)過(guò)程,式(13)用于控制t-1時(shí)刻的狀態(tài)ht-1和t時(shí)刻的輸入xt通過(guò)非線性變換得到新的輸入向量式(14)用于控制進(jìn)入t時(shí)刻LSTM單元的量同樣使用Sigmoid激活函數(shù),當(dāng)gi=1時(shí),LSTM單元完全接受新輸入c?t,當(dāng)gi=0時(shí),LSTM不接受新輸入c?t。式(15)表示t時(shí)刻LSTM單元記憶狀態(tài)向量ct的更新方式。式(16)、(17)表示輸出門(mén)過(guò)程,這里對(duì)ct通過(guò)tanh激活函數(shù)進(jìn)行轉(zhuǎn)換,門(mén)控g0用于控制記憶狀態(tài)向量ct生成輸出向量ht的量由于所以輸出向量
基于以上討論,提出一種利用EMD滑動(dòng)窗口去噪結(jié)合LSTM網(wǎng)絡(luò)的金融時(shí)間序列預(yù)測(cè)模型:EMD-LSTM模型,如圖2。
考慮到對(duì)整體序列一次性直接去噪,利用了大量的未來(lái)數(shù)據(jù),這在實(shí)際情況下是無(wú)法實(shí)現(xiàn)的,選擇使用固定大小的滑動(dòng)窗口對(duì)序列按單位時(shí)間步提取去噪。設(shè)定時(shí)間窗口大小為n,窗口移動(dòng)的步長(zhǎng)為1,提取的第一組序列為對(duì)該序列使用自適應(yīng)的EMD去噪方法,得到第一組去噪序列移動(dòng)一個(gè)時(shí)間步,繼續(xù)提取第二組序列,去噪得到繼續(xù)移動(dòng)時(shí)間步并做去噪處理,直到整個(gè)序列取完為止。
假設(shè)利用過(guò)去m個(gè)時(shí)間步的值預(yù)測(cè)當(dāng)前值,其中m≤n。使用去噪后的序列作為L(zhǎng)STM的輸入,則輸入為每組去噪序列的最后m個(gè)去噪數(shù)據(jù)構(gòu)成的序列:
實(shí)證數(shù)據(jù)取自上證指數(shù),上證指數(shù)反映了上海證券交易所上市的所有股票價(jià)格的變動(dòng)情況,其變動(dòng)趨勢(shì)在一定程度上能夠反映中國(guó)宏觀經(jīng)濟(jì)的走勢(shì)。實(shí)證的預(yù)測(cè)目標(biāo)是上證指數(shù)的收盤(pán)價(jià),收盤(pán)價(jià)作為交易所每一個(gè)交易日的最后一筆交易價(jià)格,既是當(dāng)日行情的標(biāo)準(zhǔn),又是下一個(gè)交易日的開(kāi)盤(pán)價(jià)的依據(jù),具有重要的意義。實(shí)證選擇的輸入特征為上證指數(shù)的收盤(pán)價(jià)、最高價(jià)、最低價(jià)、開(kāi)盤(pán)價(jià)、漲跌幅、成交量以及成交金額。對(duì)于一些短期技術(shù)指標(biāo),因其均由收盤(pán)價(jià)的線性或非線性變換而得到,而LSTM模型本身就具有不錯(cuò)的特征提取能力,所以不予考慮,只以交易數(shù)據(jù)的7個(gè)指標(biāo)作為輸入。以2010年到2017年共8年的日度交易數(shù)據(jù)作為訓(xùn)練集訓(xùn)練模型,以2018年到2019年共2年的日度交易數(shù)據(jù)作為測(cè)試集評(píng)估模型。
為了克服特征序列之間不同量綱的影響,提升模型精度,并提高迭代求解的收斂速度,在訓(xùn)練模型之前選擇以訓(xùn)練集的序列數(shù)據(jù)的最大值和最小值對(duì)所有的特征序列以及目標(biāo)序列做歸一化處理:
其中,x為所有原始數(shù)據(jù),xtrain為訓(xùn)練集數(shù)據(jù),x′為所有歸一化后的數(shù)據(jù)。
將歸一化后的數(shù)據(jù)輸入模型,模型變成對(duì)歸一化后的收盤(pán)價(jià)的預(yù)測(cè),因此需再將最終輸出的結(jié)果進(jìn)行反歸一化處理即得到最終的預(yù)測(cè)結(jié)果。
為了對(duì)比EMD-LSTM模型與標(biāo)準(zhǔn)LSTM的預(yù)測(cè)效果,從三個(gè)角度選取衡量指標(biāo)。平均絕對(duì)百分誤差(MAPE)用于衡量模型預(yù)測(cè)結(jié)果與真實(shí)值之間的相對(duì)偏差;可決系數(shù)(R2)用于衡量模型的擬合優(yōu)度;同時(shí)考慮金融時(shí)間序列在方向上的預(yù)測(cè)具有重要意義,使用方向正確率(DA)衡量模型在序列方向上的預(yù)測(cè)效果。三個(gè)衡量指標(biāo)計(jì)算公式如下:
其中,n為測(cè)試集序列長(zhǎng)度,yi為收盤(pán)價(jià)的真實(shí)值,y′i為收盤(pán)價(jià)的預(yù)測(cè)值,yˉ為測(cè)試集收盤(pán)價(jià)均值。
設(shè)定LSTM輸入序列時(shí)間步為10,即以過(guò)去10個(gè)交易日數(shù)據(jù)預(yù)測(cè)下一個(gè)交易日收盤(pán)價(jià)。設(shè)定去噪窗口大小∈[15,30,60,120,240],通過(guò)網(wǎng)格搜索,去噪窗口大小為120個(gè)時(shí)間步時(shí),模型效果最好。選擇兩種方式對(duì)序列滑動(dòng)窗口去噪:一種是前文介紹的EMD閾值去噪,另一種是直接將EMD得到的趨勢(shì)項(xiàng)簡(jiǎn)單作為去噪結(jié)果。將兩種處理方式得到的結(jié)果分別輸入LSTM模型,比較兩種去噪處理方式的差異。
對(duì)于LSTM網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)定如下:由于特征維度為7,兩層LSTM相對(duì)于一層LSTM,預(yù)測(cè)性能并沒(méi)有提升,反而增加了模型復(fù)雜度,因此只使用一層LSTM。隱藏層神經(jīng)元個(gè)數(shù)為4,在LSTM輸出層后加入一層線性網(wǎng)絡(luò)得到最終輸出。批處理大小為128(每訓(xùn)練128組樣本迭代更新一次參數(shù));訓(xùn)練次數(shù)為200次(將所有訓(xùn)練集樣本完整訓(xùn)練200次);以歸一化后的收盤(pán)價(jià)的預(yù)測(cè)值和真實(shí)值的均方誤差MSE作為損失函數(shù),并加入L2正則化;使用Adam優(yōu)化算法更新參數(shù)。
對(duì)于標(biāo)準(zhǔn)LSTM和文獻(xiàn)[15-16]所使用的EMDLSTM模型以及本文提出的兩種不同去噪處理的EMDLSTM模型在測(cè)試集的預(yù)測(cè)效果如表1。
表1 模型效果比較
表1 給出了四種模型的衡量指標(biāo),其中EMDLSTM_1代表文獻(xiàn)[15-16]所使用的EMD-LSTM模型,其針對(duì)一次分解的每一個(gè)本征模態(tài)函數(shù)分別做預(yù)測(cè),再將所有結(jié)果相加得到最終預(yù)測(cè);EMD-LSTM_2代表直接使用EMD得到的趨勢(shì)項(xiàng)作為去噪結(jié)果的EMDLSTM模型;EMD-LSTM_3代表使用EMD閾值去噪法的EMD-LSTM模型。結(jié)果顯示,兩種去噪處理的EMDLSTM模型相對(duì)于標(biāo)準(zhǔn)LSTM模型,預(yù)測(cè)效果均有提升,特別是使用閾值去噪的EMD-LSTM模型無(wú)論是預(yù)測(cè)精度還是預(yù)測(cè)方向上均是性能最優(yōu)的。直接使用趨勢(shì)項(xiàng)的EMD-LSTM雖然相較于其他兩個(gè)模型預(yù)測(cè)效果稍好,但不如閾值去噪的EMD-LSTM,可能是因?yàn)橼厔?shì)項(xiàng)雖然包含了序列的大部分信息且噪聲極少,但卻缺失了存在于本征模態(tài)函數(shù)分量中的一些有用信息。而文獻(xiàn)[15-16]所使用的EMD-LSTM模型在方向上的預(yù)測(cè)較好,但在預(yù)測(cè)精度上表現(xiàn)不理想,在其訓(xùn)練過(guò)程中,發(fā)現(xiàn)LSTM在噪聲較高的前幾個(gè)本征模態(tài)函數(shù)上的表現(xiàn)不佳,顯然高噪聲的因素影響了LSTM的預(yù)測(cè)效果。
圖3 2018年上半年預(yù)測(cè)結(jié)果
圖4 2018年下半年預(yù)測(cè)結(jié)果
圖5 2019年上半年預(yù)測(cè)結(jié)果
為了更直觀地表現(xiàn)四種模型的預(yù)測(cè)差異,將測(cè)試集共兩年的收盤(pán)價(jià)預(yù)測(cè)結(jié)果分為圖3~6展示,每張圖為半年的預(yù)測(cè)結(jié)果。其中黑色虛線代表真實(shí)收盤(pán)價(jià),綠色實(shí)線代表標(biāo)準(zhǔn)LSTM模型的收盤(pán)價(jià)預(yù)測(cè),橙色實(shí)線代表文獻(xiàn)[15-16]所使用的EMD-LSTM收盤(pán)價(jià)預(yù)測(cè),藍(lán)色實(shí)線代表直接使用趨勢(shì)項(xiàng)作為去噪結(jié)果的EMD-LSTM收盤(pán)價(jià)預(yù)測(cè),紅色實(shí)線代表使用閾值法去噪的EMD-LSTM收盤(pán)價(jià)預(yù)測(cè)。由圖可知,四種模型的預(yù)測(cè)結(jié)果與收盤(pán)價(jià)的真實(shí)趨勢(shì)基本相同,卻沒(méi)有哪一個(gè)模型能夠解決時(shí)間序列預(yù)測(cè)普遍存在的滯后性問(wèn)題。通過(guò)對(duì)比四種模型的預(yù)測(cè)結(jié)果與真實(shí)值處于相同趨勢(shì)的位置,可以發(fā)現(xiàn),閾值去噪的EMD-LSTM模型在同一個(gè)趨勢(shì)的極大多數(shù)情況下距離真實(shí)值最近,直接使用趨勢(shì)項(xiàng)作為去噪結(jié)果的EMD-LSTM次之??梢哉J(rèn)為EMD-LSTM模型相比于標(biāo)準(zhǔn)的LSTM減輕了一定的滯后性,保留更多有用信息的閾值去噪EMD-LSTM表現(xiàn)最好。
圖6 2019年下半年預(yù)測(cè)結(jié)果
本文利用EMD去噪方法設(shè)計(jì)了滑動(dòng)窗口去噪結(jié)合LSTM網(wǎng)絡(luò)的金融時(shí)間序列的預(yù)測(cè)模型:EMD-LSTM。實(shí)證結(jié)果表明滑動(dòng)窗口EMD去噪的引入,提升了LSTM的預(yù)測(cè)性能,無(wú)論是預(yù)測(cè)精度還是預(yù)測(cè)方向上均有一定的提升。EMD-LSTM通過(guò)滑動(dòng)窗口以及EMD的自適應(yīng)性,克服了一次性分解和去噪的不合理性以及小波基的選擇問(wèn)題,具有一定的優(yōu)勢(shì)。雖然仍然沒(méi)有解決時(shí)間序列預(yù)測(cè)的滯后性問(wèn)題,但對(duì)預(yù)測(cè)結(jié)果的分析可以看出,EMD-LSTM相對(duì)于標(biāo)準(zhǔn)LSTM緩解了一定的滯后性問(wèn)題,尤其是使用保留更多有效信息的閾值去噪,效果最好。因此如果可以找到基于EMD更好的去噪方法,也許EMD-LSTM的預(yù)測(cè)性能以及滯后性都將得到更好的解決。