曹超凡,李 路
(上海工程技術大學數(shù)理與統(tǒng)計學院,上海 201620)
時間序列問題一直以來都是一個熱門研究話題。傳統(tǒng)研究模型如自回歸模型(AR)、移動平均模型(MA)和移動自回歸模型(ARMA)對小樣本平穩(wěn)時間序列數(shù)據(jù)預測起到了非常好的效果[1]。對于小樣本非平穩(wěn)時間序列也有相應的方法,例如差分引入形成ARIMA 模型[2],但引入差分的方法可以充分提取確定信息,卻很難對模型進行直觀解釋。由此開始對殘差進行自回歸,建立殘差自回歸模型(Residual Auto-Regressive)[3],而為了能夠準確模擬時間序列的波動性,Beran[4]提出ARCH 模型和GARCH,用于處理具有異方差性和異方差自相關的時間序列數(shù)據(jù)。而對于處理多維時間序列,向量自回歸模型(VAR)模型作為AR 模型的高維擴展起到了很好的預測效果[5]。
近些年,隨著大數(shù)據(jù)與人工智能的快速發(fā)展,人們研究的數(shù)據(jù)量和數(shù)據(jù)維度急劇增長,多維時間序列數(shù)據(jù)開始頻繁走進研究人員的視野。在股票市場中,股價數(shù)據(jù)本身具有非線性、非平穩(wěn)等復雜特點,精準預測股票時間序列是投資者十分關注的話題[6]。
在時間序列分析中,傳統(tǒng)的時間序列模型在處理小樣本、線性且平穩(wěn)性數(shù)據(jù)時具有無可比擬的優(yōu)勢。但在處理大樣本、非線性、非平穩(wěn)數(shù)據(jù)時效果較差,并且存在計算成本大、最優(yōu)化難以實現(xiàn)等問題[7]。隨著信息技術的發(fā)展及大數(shù)據(jù)時代的到來,深度學習技術的引用使時間序列分析模式變得更加成熟[8]。Yu 等[9]將廣義線性自回歸(GLAR)與人工神經網絡(ANN)相結合對時間序列進行預測,實證結果顯示其預測精度更高。Elman[10]以序列的演進方向進行遞歸,提出第一個具有記憶性的循環(huán)神經網絡(RNN),但隨著時間長度的增加,神經網絡參數(shù)呈指數(shù)增長,簡單的RNN 無法解決由時間長度帶來的梯度爆炸和梯度消失問題[11-12]。Hochreiter 等[13]為解決循環(huán)神經網絡長期以來存在的問題,提出長短期記憶網絡(Long Short-Term Memory networks,LSTM),解決了RNN 具有的長期依賴性問題。
而在股票時間序列預測中,股票數(shù)據(jù)自身具有較強的復雜性,同時具有線性和非線性部分。傳統(tǒng)的時間序列模型可以很好地處理時序數(shù)據(jù)的線性部分,當前火熱的深度學習技術可以更加靈活地處理時序數(shù)據(jù)的非線性部分,但單一的模型只能側重研究時序數(shù)據(jù)的某一方面特征,對時間序列數(shù)據(jù)進行預測會不可避免地丟失部分信息,無法同時兼顧線性與非線性部分[14]。由此,學者開始研究組合預測模型,融合線性預測模型與非線性預測模型的特點,將深度學習與傳統(tǒng)的時間序列模型結合起來,發(fā)揮各自優(yōu)勢,構建各類組合預測模型,增強了時間序列預測的適用性,并達到更高的準確率。吳曉峰等[15]提出基于BP 神經網絡誤差修正的ARIMA 模型,優(yōu)化了時間序列非線性擬合部分。劉胤池[16]在用ARIMA 模型處理線性特征的基礎上,利用SVM 對非線性數(shù)據(jù)處理優(yōu)勢擬合殘差。王越敬[17]提出LSTM-ARIMA 混合模型以預測股價相關系數(shù),使模型具有較好的穩(wěn)定性和泛化能力。
綜上所述,學者在組合預測模型上有了較為深入的探究,但多數(shù)研究是將傳統(tǒng)的ARIMA 模型與機器學習模型融合,只能處理一維時間序列,對多維時間序列鮮有涉及。而像股票數(shù)據(jù),常常需要涉及到多個股票因子數(shù)據(jù),針對此問題,本文在基于組合預測的思想,引入可以處理多維時間序列的時序矩陣分解技術(Temporal Regularized Matrix Factorization,TRMF),該理論融合了可處理多維時間序列的VAR 模型與矩陣分解技術,可以很好地處理線性數(shù)據(jù)。將其與LSTM 模型相結合,提出了TRMF-LSTM 組合預測模型,用TRMF 預測股價數(shù)據(jù)的線性部分,再用LSTM預測股價數(shù)據(jù)的非線性部分,為股票多維時間序列預測提供一個新的思路與方法。
在處理多變量時間序列數(shù)據(jù)時,通常需要同時接觸到時間長度、變量數(shù),可用矩陣表示多維時間序列數(shù)據(jù)結構。本文根據(jù)多元時間序列結構構建多元時序矩陣Y∈RN×M,假設矩陣Y表示一支包含N 個屬性M 個時間步長的時序矩陣,如式(1)所示。
Y的每一行向量表示某一屬性的時間序列,即該屬性值隨時間演進方向的變化趨勢。Y的每一列向量表示在相同時間維度上,各屬性值所構成的當前狀態(tài)。為實現(xiàn)對多維時間序列的預測,本文引用低秩矩陣分解技術。
低秩矩陣分解在人工智能領域得到了廣泛應用,對時間序列的缺失值起到很好的補全作用,并可以直接從部分觀測的時間序列數(shù)據(jù)中進行觀測和學習。Chen 等[18]首次使用矩陣低秩分解技術處理時空數(shù)據(jù)。Yu[19]考慮到時間相關性,提出時間正則化矩陣分解模型(Temporal Regularized Matrix Factorization,TRMF)實現(xiàn)對高維時間序列的預測。Chen 等[20]將在自回歸模型作為典型的時序模型與低秩矩陣分解結合,并應用到交通時空數(shù)據(jù),更好地解決時間序列高相關性的特點。
根據(jù)該時序矩陣具有的時間與屬性兩個維度,將多元時序矩陣進行低秩分解,得到兩個矩陣,如式(2)所示。
其中,矩陣W為R×N維的屬性矩陣,矩陣X為R×M維分解后的時序矩陣,估計出矩陣W和X,便可得到Y的估計矩陣元素表示為矩陣第i個屬性,第j個時間點的數(shù)據(jù),其估計值計算公式如式(3)所示。
其中,wi為樣本矩陣的第i列向量,xj為時序矩陣X的第j列向量,即為第j個時間點的R維向量。
現(xiàn)假設被分解后得到的時序矩陣X第t列向量xt為多元時間序列第t個時間點的向量,其有N個分量,即xt=(x1t,,x2t,…xRt)T。其中,xit表示多元時間序列第t個時間點第i個分量的值,而向量(x1,x2,…,xM)構成了時序矩陣X,如式(4)所示。
矩陣X每一行向量表示一條單變量時間序列,矩陣X每一列向量表示多元時間序列的某一時間點對應的序列向量,而由于時間序列具有自相關性,假設時序列向量xt與前幾列向量存在著強相關性,代入VAR 模型,可用如式(5)所示方程描述。
其中,θk表示時序回歸系數(shù)向量,d表示回歸階數(shù),xt-k表示為時序矩陣X第t-k列向量,*表示向量對應元素相乘。將時序回歸系數(shù)向量拼成矩陣形式θ,最終可表示為如式(6)所示。
構建的時序矩陣分解的優(yōu)化問題可以表示為如式(7)所示。
優(yōu)化問題即式(7)的第三項考慮時序矩陣X列向量存在著時序關系,在矩陣分解的基礎上引入時序正則項,以自回歸的方式對自適應該系統(tǒng)的時序系數(shù)矩陣θ、屬性矩陣W以及時序矩陣X進行學習,而不用實現(xiàn)人為設定時序系數(shù)θ。時序正則項如式(9)所示。
通過求解式(8)的優(yōu)化問題,采用最小二乘求解方式,可以得到時序矩陣X、屬性矩陣W和時序系數(shù)矩陣θ 每一項的迭代公式,如式(10)、式(11)、式(12)所示。
對3 個參數(shù)順著時間的演進方向不斷進行更新、迭代,得到完整的屬性矩陣與時序矩陣,進而點乘得到預測矩陣,實現(xiàn)時間序列預測。具體算法步驟如下:
Step1:給定初始矩陣W0、θ0、X0及含待預測股票數(shù)據(jù)的矩陣Y。
Step2:根據(jù)式(10)、式(11)、式(12)分別對時序矩陣X、屬性矩陣W和時序系數(shù)矩陣θ 的每一列向量xt、wi、θh進行交替迭代更新,從而完成新一輪矩陣W、θ、X的更新。
Step3:利用式(5)更新xM+1、xM+2…,得到擴展矩陣Xnew。
總體而言,TRMF 結合了矩陣分解技術與VAR 模型,利用矩陣分解技術實現(xiàn)對時序矩陣的降維,增強了預測魯棒性,再利用時間的自相關性不斷對降維后的時序矩陣進行更新,實現(xiàn)了多維時間序列預測。
長短期記憶網絡(LSTM)是循環(huán)神經網絡(RNN)的改進模型。為解決RNN 的梯度消失問題,LSTM 添加了細胞狀態(tài)ci用來存儲時間序列的歷史信息。LSTM 有3 個門控單元:遺忘門、輸入門與輸出門,用以處理歷史信息與輸入信息,進行遺忘與更新。如圖1所示。
遺忘門確定從歷史信息中篩去哪些對當前狀態(tài)無影響的信息,遺忘計算過程如下:
Fig.1 LSTM neural network structure圖1 LSTM 神經網絡結構
其中,fi是遺忘門的輸出;wfh、wfy是權重矩陣,hi-1是上一個存儲單元的輸出;vi是當前輸入;bf是遺忘門的偏置項。σ是Sigmoid 函數(shù),可以將所有激活值映射至0-1 之間,0代表“丟棄”,1代表“保留”。
輸入門決定應將哪些當前輸入信息添加到細胞狀態(tài)。更新過程分為兩步,第一步計算ji確定需要更新哪些輸入信息添加至細胞狀態(tài),如式(16)所示。
輸出門定義確定當前狀態(tài)需要輸出的信息,計算過程如式(19)、式(20)所示。
其中,oi是輸出門的輸出;woh、woy是權重矩陣;bo是偏差矢量;hi是當前記憶單元的隱藏層輸出。
LSTM 因其具有激活函數(shù)和門控單元,在處理復雜時間序列,尤其是擬合非線性部分數(shù)據(jù)時有著較大優(yōu)勢。
大量實驗表明,單一模型的預測效果并不能很好地兼顧數(shù)據(jù)的線性部分與非線性部分。鑒于此,引入組合預測模型,將線性模型和非線性模型的預測優(yōu)勢結合起來,進而提升預測精度。
假設時間序列yt可分為兩部分,即線性主體部分Lt和非線性殘差部分et,如式(21)所示。
其中,用線性模型預測線性主體部分將最大程度發(fā)揮出線性模型的優(yōu)勢,預測結果為,再將真實值與預測值作差,得到殘差序列et,再用非線性模型(如深度學習技術)對得到的殘差時間序列進行擬合,得到的預測結果為,最后將線性主體的預測部分與非線性殘差的預測部分相加,得到組合模型的預測結果,如式(22)所示。
基于時序正則化矩陣分解的組合預測模型結合了矩陣分解技術與向量自回歸模型,利用時間序列的自相關性特點作出預測,通過低秩假設學習全局序列信息,同時引入正則化項,更好地處理過擬合問題,在多元時間序列的線性預測中體現(xiàn)出了自己獨特的優(yōu)勢。
但同時,TRMF 處理非線性數(shù)據(jù)效果較差,而股票數(shù)據(jù)波動性大,具有非線性、高噪聲等特點,同時受政策變動、市場情緒、經濟因素等影響,股票時間序列具有高度不穩(wěn)定性。而深度學習在處理非線性數(shù)據(jù)有著天然優(yōu)勢,本文將二者優(yōu)勢結合起來,形成矩陣分解與深度學習組合預測的方法。
Step1:首先對多元時間序列數(shù)據(jù)進行預處理,將多個時間序列進行歸一化,處于同一量綱中。
Step2:將多元時間序列按時間節(jié)點劃分訓練集與測試集。
Step3:在訓練集中,用TRMF 模型訓練數(shù)據(jù)的線性主體部分,并將序列值yt與其作差,得到殘差序列et。
Step4:用et訓練LSTM 模型,得到擬合后的殘差序列。
Step5:將測試集數(shù)據(jù)代入訓練好的TRMF-LSTM 模型,得到預測線性主體部分與預測殘差序列,并將其相加,得到組合模型的預測值,并對其進行反歸一化得到最終預測數(shù)據(jù)。
預測步驟如圖2所示。
為了評估TRMF-LSTM 模型在股價預測的準確性,本文選取均方根誤差(RMSE)與平均絕對百分比誤差(MAPE)兩類指標。
這兩類指標均衡量預測值與真實值的偏差,越小則表明預測值越接近真實值,即預測精度越高。
Fig.2 TRMF-LSTM algorithm flow圖2 TRMF-LSTM 算法流程
本文數(shù)據(jù)選取滬深300、上證指數(shù)兩支股指以及三一重工、中國人壽、農業(yè)銀行、牧原股份、美的集團、隆基股份6 支個股共8 支股票。通過查閱文獻,選取這8 支股票的開盤價、收盤價、最高價、最低價、成交量、成交金額6 個技術類因子,日換手率、流通市值、漲跌幅、市盈率、賬面杠桿、現(xiàn)金比率、流動比率、產權比率、銷售毛利率9 個質量類因子,凈利潤增長率、未預期盈余2 個成長類因子,分析師盈收預測變化、10 日乖離率、10 日順勢指標3 個動量類因子,共計20 個股票因子作為模型輸入,數(shù)據(jù)來源于優(yōu)礦平臺,數(shù)據(jù)時間區(qū)間取自2011 年1 月1 日-2021 年3 月7 日,共2 472 條數(shù)據(jù),由此構建出股票時序矩陣YN×M,其中N=20,M=2 472。
由于因子間量綱存在較大差異,先對各因子作歸一化處理,統(tǒng)一量綱。歸一化處理由式(25)所示。
對于獲取的股票數(shù)據(jù)存在缺失值情況,利用矩陣分解技術對歷史股價缺失數(shù)據(jù)進行數(shù)據(jù)補全,以便于后續(xù)模型輸入。同時,矩陣分解技術能從帶有噪聲的時間序列中自動過濾噪聲和異常值,在數(shù)據(jù)處理方面體現(xiàn)了天然的優(yōu)勢。
設訓練集與測試集比例為4∶1,由于股票交易日在星期一至星期五,將初始矩陣W0、X0、θ0設置為服從標準正態(tài)分布的矩陣,進行單步預測。利用時序矩陣分解技術,構建時序矩陣XR×M與屬性矩陣WN×R并不斷更新,最終通過點乘求得待預測矩陣,其中將股票時序矩陣YN×M進行降維,構造了時序矩陣XR×M,從而去掉數(shù)據(jù)集中夾雜的噪聲,并增強魯棒性。TRMF 預測算法基于低秩假設,對于秩R的選取要根據(jù)不同股票的時間特性確定最佳選擇,通過網格搜索,確定R=8 時,預測效果最佳。對于正則化項λw、λX、λθ均設定為500。選取時間滯后項取前15 項數(shù)據(jù),即d=15。
TRMF 算法預測后將預測值與真實值作差得到殘差矩陣et,將其轉化為含有樣本、時間步長、因子屬性的三階張量并輸入至LSTM 模型,以收盤價殘差序列為標簽,設隱藏層節(jié)點數(shù)設置為50,批量輸入batch_size 設置為32,迭代次數(shù)epoches=500。擬合出收盤價殘差序列后,將其與TRMF對收盤價的預測值相加,即得到股票收盤價的最終預測值。
3.3.1 TRMF-LSTM訓練結果
將TRMF 擬合原時間序列后,將真實值與其作差,得到殘差時間序列。代入LSTM 模型,以滬深300 為例,訓練效果如圖3所示。
Fig.3 Model training error graph圖3 模型訓練誤差
橫軸為迭代次數(shù),縱軸為擬合的損失函數(shù),即:
根據(jù)模型訓練經驗,將學習率調為0.01,迭代次數(shù)設為500,迭代500 次后即停止訓練??梢钥闯觯谟柧氝^程中,迭代15 次時快速收斂,驗證了殘差訓練的有效性。同時,誤差波動穩(wěn)定在0.01左右,體現(xiàn)了模型的穩(wěn)定性。
3.3.2 TRMF-LSTM組合預測模型與對比模型預測效果
本文采用TRMF-LSTM 組合預測模型,將預測結果與深度學習LSTM 模型、Transformer 模型、傳統(tǒng)機器學習支持向量回歸SVR 預測的結果作比較,取最后100 天的預測結果。圖4—圖11 為TRMF-LSTM 預測結果與真實值的對比,橫軸為時間,以天為單位,縱軸為反歸一化后的股票收盤價格。
Fig.4 Forecast of CSI 300圖4 滬深300預測
Fig.5 Forecast of Shanghai Composite Index圖5 上證指數(shù)預測
Fig.6 Forecast of Longi's圖6 隆基股份預測
Fig.7 Forecast of Midea Group's圖7 美的集團預測
Fig.8 Forecast of Muyuan Stock圖8 牧原股份預測
Fig.9 Forecast of Agricultural Bank of China圖9 農業(yè)銀行預測
Fig.10 Forecast of Sany Heavy Industry圖10 三一重工預測
Fig.11 Forecast of China Life Insurance圖11 中國人壽預測
通過8 只股票預測結果對比可以發(fā)現(xiàn),LSTM、TRMFLSTM 和Transformer 相較于傳統(tǒng)機器學習SVR 均與真實值較為接近,預測趨勢基本保持一致,說明深度學習相較于傳統(tǒng)機器學習在股價預測上具有較大優(yōu)勢。而相較于上證指數(shù)、隆基股份、牧原股份、農業(yè)銀行與中國人壽五支股票,TRMF-LSTM 的預測結果明顯最接近真實值,其余股票中,本文構建的模型相較于對比模型,對股價趨勢預測有更高的水準,說明了本文組合預測模型的有效性,體現(xiàn)了線性與非線性預測方法相結合的優(yōu)勢。
為更好地觀察對比效果并進行分析,計算每支股票每個模型預測的兩類誤差指標RMSE 和MAPE,并在8 支股票中取平均,如表1所示。
Table 1 Average evaluation index of stock price forecast表1 股價預測平均評價指標
可以看出,MAPE 和RMSE 的最小值均落在TRMFLSTM 組合預測模型中,Transformer 排在第二,LSTM 次之,SVR 排在最后。由此說明,本文構建的模型預測相較于對比模型更精準,也更好地驗證了該模型能兼顧線性與非線性趨勢。
本文通過結合時序矩陣分解(TRMF)技術與LSTM 模型結合,構建TRMF-LSTM 組合預測模型,從而兼顧時間序列預測的線性與非線性部分。使用TRMF技術對股票數(shù)據(jù)集進行降維處理,并對線性部分進行擬合;然后將真實值與線性擬合值作差計算出殘差,再利用LSTM 模型對殘差進行訓練,對數(shù)據(jù)的非線性部分進行擬合;最后將預測結果相加,得到新的組合預測值。該模型在選取的8 支股票預測中均取得了不錯效果,相較于對比模型有著更低的誤差,驗證了模型的有效性。
本文將構建的模型應用于股票數(shù)據(jù)集,以第二日收盤價作為預測標簽。考慮將該模型應用于其他數(shù)據(jù)集(如交通數(shù)據(jù)集),并利用多維時間序列的時間自相關性與因子相關性高精度預測多個標簽,作為進一步研究的重點。