劉昌榮,黃 珍,袁貝貝,李 嵐
(1. 蘭州文理學院 數字媒體學院, 甘肅 蘭州 730010; 2. 蘭州文理學院 教育學院, 甘肅 蘭州 730010)
我國許多民眾選擇投資股票市場以求獲得財產增值,但股票市場風險大,股民都很關注股票的漲跌規律,由于對上市公司信息了解不足、難以理解眾多專業金融術語等問題,因而蒙受風險的可能性較大.許多上市公司也很關注自家公司的股票漲跌情況,因為股票漲跌在一定程度上反映出了公司的發展情況和國家經濟的發展狀況.所以,預測股票價格走勢、制定合理的投資策略,在金融領域具有重要的戰略意義.
目前,股票預測的方式主要有兩類,即傳統的統計學方法和神經網絡方法.統計學領域主要有邏輯回歸模型、ARCH模型、GARCH模型、支持向量機(SVM)和隱馬爾可夫模型等預測方法;人工神經網絡方面主要有小波神經網絡、遺傳LMBP神經網絡、BP神經網絡等預測模型.文獻[1-6]使用傳統模型和方法,通過分析關鍵特征和交易信號等重要信息來進行股票數據分析,從而做出是否為股票拐點和是否適合交易的判斷;文獻[7-9]在傳統模型的基礎上融入了神經網絡方法或股票干擾因素來進行某一特征預測或模型改進;文獻[10]以LSTM模型為主,融合ARIMA(Autoregressive Integrated Moving Average)模型,預測了游客數據;文獻[11]通過優化傳統模型改進而來的XGBoost來預測短期股價走勢,但仍可進一步改進;文獻[12]提出加入新聞數據對股票價格走勢進行預測,但其模型中未進行新聞數據特征篩選,存在難以界定正負干擾的問題.以上這些文獻中提出的方法針對股票預測的某個方面都有一定效果,但在實際中產生效用的較少,抗金融風險的能力依然有限.
本文著重比較單一模型與組合模型在股價趨勢預測上的優劣,在模型組合方法上,參考了文獻[10]中預測入境游客人次時所使用的組合策略.本文主要應用大眾所關注的幾個重點數據特征,在預測的準確度上有明顯提升.
股價走勢預測問題是指根據股票的歷史價格數據和股票市場相關信息,對于股票在將來的連續時間段內的價格或漲跌進行預測.
給定長度為T+1的時間序列Q={q0,q1,q2,...,qt},qt∈R,0≤t≤T,它可被K次多項式FA(t)近似表示,并且該多項式由一組正交多項式線性組合而成,可表示為:
(1)
其中,fk(t)是一個正交多項式的基向量,F(t)={f0(t),f1(t),…,fK(t)}形成了時間序列的特征空間,A={a1,a2,…,aK}為空間特征下的坐標序列.
股票時間序列數據中存在幾個數據特征,如開盤價、最高價、最低價、收盤價和交易量等,還有一個類似于收盤價的數據特征是根據法人行為調整之后的閉市價格.
根據以上描述,即可表示t+1時刻股價走勢的特征F(t+1),進而求得該時刻的幾個特征量的數值.
由于股票數據眾多,決定選用目前發展勢頭良好的股票數據進行分析研究.本文使用從網上獲取的平安銀行從2010年1月到2021年4月的數據進行研究分析.
在股票數據中,Open表示當天某一只股票開市后第一筆交易的成交價格(并非前一天閉市的價格);High表示某一只股票成交價中的最高價;Low表示某一只股票成交價中的的最低價;Close表示當天某一只股票開市后最后一筆交易的成交價格;Volume表示股票成交量;Amount表示股票成交金額.平安銀行的股票數據集頭部數據如表1所列.
針對該數據,做其交易曲線走勢如圖1所示.

表1 平安銀行股票數據集頭部數據

圖1 平安銀行股票走勢圖
從圖1可以看出股票價格波動過大,需要對數據做歸一化處理.本文在ARIMA模型中使用非線性歸一化方法中的對數歸一化方法,具體公式為:
(2)
使用該方法處理數據,結果如圖2所示.
在LSTM模型中使用MinMaxScaler函數將數據歸一化到0到1之間,具體如公式(3):
(3)
其中xt是指t時刻股票的價格.其結果與圖2無較大差別,僅在縱坐標上做一個函數變換.

圖2 log歸一化股票走勢圖
本文提出一種結合ARIMA和GRU(Gated Recurrent Unit)的模型來預測股票價格.股票時間序列數據既存在線性特征,又有非線性特征,使用單一方法預測難度大,因此采用ARIMA與GRU對股票數據進行組合預測,將兩種模型的預測結果相結合得到最終預測結果.

(4)
含參數的ARIMA的模型預測函數為
yi=θ0+φ1yt-1+φ2yt-2+…+φpyt-p+φp-p+εt-θ1εt-1-…-θqεt-q.
(5)
其中:yi是原始數據,yt-1為yt前一期的值,yt-2為yt-1前一期的值,依次類推.φp和θq是模型的參數,εt是白噪聲數據序列;p,q分別是模型的自回歸(AR)模型參數、移動平均(MA)模型參數,這兩個參數需要人為設定;參數d則表示模型需要進行d階差分處理以保證數據的穩定性.
循環神經網絡是一種針對帶有時間屬性的序列數據提出的網絡,而LSTM模型是一種特殊的循環神經網絡,LSTM模型的門控單元如圖3所示:

圖3 LSTM模型的門控單元示意圖
LSTM最重要的組成部分是狀態單元,分別是遺忘門、輸入門、輸出門.其中,遺忘門由sigmoid單元將權重設置為0和1之間的值,公式如下所示:
ft=σ(Wf·[ht-1,xt]+bf).
(6)
輸入門單元以類似于遺忘門(使用sigmoid獲得一個0和1之間的值)的方式更新,公式如下所示:
it=σ(Wi·[ht-1,xt]+bi).
(7)
(8)
(9)
LSTM輸出由輸出門關閉,具體操作公式如下:
ot=σ(Wo[ht-1,xt]+bo),
(10)
ht=ot*tanh(Ct).
(11)
GRU模型是在LSTM模型結構的基礎上進行優化之后所得到的模型,相比于LSTM模型,GRU模型將LSTM模型中的輸入門、遺忘門及輸出門變為了重置門與更新門兩種門結構,使得網絡實現過程更為簡易,GRU在理論上較LSTM模型參數少,參數復雜的LSTM應該效果更佳,然而具體問題具體分析,在本文中我們通過實驗來說明兩個模型的在股價走勢預測問題上的優劣.具體的GRU模型的門控循環單元示意圖如圖4所示.

圖4 GRU模型的門控循環單元示意圖
GRU單元門的計算公式如下:
rt=σ(Wr·[ht-1,xt]+br),
(11)
zt=σ(Wz·[rt·ht-1,xt]+bh),
(12)
(13)
(14)
LSTM與GRU的學習更依賴于長期學習,因此需要提供較長時間的數據來學習.這兩個網絡均具有人工神經網絡的弊端,當訓練精度提高到一定程度,再繼續提高時,測試精度會出現降低的情況,即過擬合現象.這種現象的出現表明模型的泛化程度降低,本模型中使用Dropout方法來解決過擬合問題.Dropout方法通過隨機刪除神經元來預測整個模型多個子網絡的結果,通過參數共享讓模型的結果更好.
本文針對股票數據預測問題,采用一種度量計算方法,即分別對ARIMA預測結果(主要針對線性部分預測)和LSTM或者GRU預測結果(主要針對非線性部分預測)的每一項結果與真實數據進行歐式距離計算,之后取得與真實數據距離最小的預測數據并組成預測序列,選取兩者中的最佳結果作為最終預測序列.
在深度學習中,需要對網絡的參數進行調整使得損失函數最優化,一般使用優化算法來調整和更新網絡參數,優化算法的選擇主要考慮實踐中使用的兩種優化器:RMSprop和Adam.
RMSprop是由Hinton在2012年修改AdaGrad算法的基礎上提出的,是目前使用較為廣泛的一種優化算法.
Adam是2014年K和B等人提出的一種學習率自適應優化算法,結合了AdaGrad和RMSprop的優點,對于解決稀疏梯度和噪聲問題更友好,同時,在參數調整上更簡捷,一般使用默認參數即可.
優化算法是網絡中決定網絡最終性能的重要部分,兩者都是目前應用廣泛的優化算法,在眾多的實踐中都取得了良好的效果,本文通過實驗選取所用方法.
針對RMSprop和Adam優化器,在i7-8700 K+ NVIDIA GTX 1080Ti環境下,使用TensorFlow-GPU版本,應用標準時間序列數據集分別測試這兩個優化器的性能.
首先,將兩個參數調整基本一致,使用相同的網絡,采用相同的激活函數,以此來保證實驗數據的準確性,結果如表2所列.
從表2中可以看出,在測試損失和測試準確率上,Adam優化器都要優于RMSprop優化器,因此在本文的實驗中傾向于使用Adam優化器.

表2 兩種優化器性能對比
使用ARIMA算法處理股票數據.首先根據每個特征對下載的股票數據進行穩定處理,這個過程需求設置參數進行嘗試性試驗,最后確定合適的參數并對股票數據進行預測,得到預測數據序列.
移動平均項數越大,對短時間內的波動越不敏感.移動平均可以從噪聲中識別趨勢,項數小的移動平均更接近股票的真實價格,而項數大的移動平均對波動不敏感,更加穩定.通過實驗確定了一個合理的移動平均項為12,同時選定參數p和d,且進行兩次一階差分.在ARIMA(1,1,1)模型下對平安銀行股票數據收盤價預測得到結果如圖5所示.

圖5 ARIMA預測收盤價結果圖

圖6 LSTM預測結果圖
用LSTM網絡對平安銀行股票數據收盤價預測,結果如圖6所示.使用GRU網絡對平安銀行股票數據收盤價進行預測,結果如圖7所示.使用文中的ARIMA與GRU網絡形成的組合模型對平安銀行股票數據收盤價進行預測,結果如圖8所示.
為了定量評價各模型的優越程度,充分展示組合模型的優越程度,本文設置了平均絕對誤差(Mean Absolute Error,MAE)和均方誤差(Mean Square Error,MSE)來評估模型的性能,具體公式如下.
平均絕對誤差(MAE)

圖7 GRU預測結果圖

圖8 組合模型預測結果圖

(15)
均方誤差(MSE)
(16)
其中,N表示待評價時間序列的數量,xi表示待評價序列第i個點的真實值;xi′表示待評價序列第i個點的預測值.
對上述4種股價趨勢預測結果進行誤差對比,結果如表3所列.
從表3中數據可以看出,深度學習方法較傳統數學模型更具優勢,從整體考慮GRU比LSTM更具優勢,最后結合ARIMA和GRU得到本文實驗的最佳結果.

表3 文中方法預測誤差對比
針對股票時間序列數據,提出了一種基于ARIMA與GRU結合的時間序列數據預測模型.通過對股票時間序列數據的分析,特征上關注時間序列數據中的價格特征;模型上嘗試不同的隱藏單元、優化器和損失函數對于模型結果的影響,且選擇目前最優的處理方式.實驗結果表明,在重點關注價格特征數據的情況下,本文方法預測誤差較小,有較好的實用性和擴展性,為股價走勢預測提供了一種思路和參考.由于存在其他影響因素,利用算法預測股價走勢仍與實際有一定的差距,在今后研究中可采用混合模型,加入多種經過處理和分析的干擾因素來提升模型效果.