王源 李俊剛
摘要:近年來,隨著股票市場的不斷發展,包含大量股票價格信息的數據庫也越來越被重視,對于股票預測方法的探索也從未中斷。文章通過對上證指數的歷史數據進行收集,采用移動平均法、自回歸綜合移動平均、長短期記憶網絡三種算法對股票走勢進行預測,判斷哪種算法預測的精確度最高。實驗證明,LSTM算法的擬合程度更高,均方根誤差 RMSE 最小。該算法能夠通過學習股票歷史數據的變化,利用其內部的選擇記憶性,更準確地實現短期股票的預測。
關鍵詞:移動平均法;自回歸綜合移動平均; 長短期記憶網絡
一、引言
我國股票市場經過 30 多年的發展, 形成了一個龐大的股票信息數據庫,股票市場變化規律的掌握、股票市場走勢的預測,成為投資者們關注的焦點,投資者們若能對股價進行較為準確的預測,便能夠使得所作決策更為正確,這樣可以大大降低虧損的風險,進而使得收益最大化。因此,探索股票市場中的規律變得越來越重要。本文用三種不同的模型分別預測股票市場走勢,通過對比來探索不同模型的優缺點及準確度,得出預測最為精確的模型。
首先,根據1990年12月20日至2020年4月30日股票收盤價做出現階段上證指數走勢圖(見圖1),發現股票收盤價隨起伏波動,但其長期趨勢呈下降趨勢。根據上證指數7178條觀測值,按照4:1劃分,將1990年12月20日起之后的5742條觀測為訓練集,測試集為剩下的1436條觀測。分別用三種模型對其走勢進行預測,并進行評估。
二、移動平均法對股票價格走勢預測
(一)理論介紹
在日常生活中,雖然算術平均法能夠代表某類數據的平均水平,但該法對數據變化趨勢的反應卻不是那么的明顯。有時候,某些蘊含時間序列的數據往往會受到周期變動和隨機變動的影響,因此數據的起伏會比較大,其發展變化趨勢也不能夠清晰地展現出來,所以在基于算術平均的基礎上逐漸發展出移動平均法,通過移動平均來消除此類因素的影響,進而顯示時間序列長期的發展趨勢。在此次預測中,假設每一期的數據在計算過程中具備的作用相同,所以使用移動平均中的一次移動平均來進行計算。
一次移動平均即取時間序列的N個觀測值,并加以平均,然后依次滑動到將所有的數據計算完畢,這樣便會得到一個平均值序列。
設時間序列為y1,y2,…,yn;n為樣本容量
則其計算公式為:
M■■=■(t≥N)(1)
其中:M■■為第t期的一次移動平均值;
N是移動平均的項數(也稱步長)。
由以上計算可以得到一個時間序列的移動平均序列。并且可以看出移動平均的作用在于將其他因素的干擾消除掉進而將數據進行修勻使其平滑,所以移動平均相比于算術平均更能顯露時間序列的長期趨勢,進而可用于趨勢分析及預測。
通常來說,假如時間序列的周期性變化和趨勢性變化不是那么明顯,則可以用某期的一次移動平均值作為下一期的預測值,其預測模型為:
y^t+1=M■■(2)
式(2)中,y^t+1代表第t+1期的一次移動平均值。
利用一組先前觀測值的平均值作為每天的預期收盤價,對于后續每個新時間,在考慮預測值時,都從集合中刪除最早的觀測值,并加入上一個觀測值。步驟示意如圖2所示。
(二)預測結果圖并進行分析
利用移動平均法對上證指數進行擬合,擬合結果如圖3所示。
均方根誤差也成為標準誤差,定義為i=1,2,3,…n,在有限測量次數中,均方根誤差的表達式為Re=■,n為測量次數,di為測量值和真實值的偏差。
計算得出RMSE值近似793,且從圖3中可以看出,測試集的走勢為先緩慢下降,然后平穩。而實際的數據走勢是先平穩再上升,現階段有下降趨勢。擬合效果不是很理想。
三、自回歸綜合移動平均(ARIMA)對股票價格走勢預測
(一)理論介紹
自回歸綜合移動平均(ARIMA)是一種時間序列模型。ARIMA模型建模本質上是一種面向數據的探索性方法,ARIMA模型本身具有一定的靈活性,還有適應數據本身結構的適當性。通過偏自相關函數和自相關函數,可以近似地模擬出時間序列的隨機性質。并從中發現隨機變換、趨勢、周期模式和周期分量及序列相關等方面的信息,并在一定精度水平上對未來值進行預測。
ARIMA模型的表達式為:
Yt-φ0-φ1Yt-1- …-φpYt-p=at-θ1at-1-…-θqat-p(3)
其中,at,at-1,…at-p是均值為0,方差為ε2的平穩白噪聲。φ1,φ2,…φp是自回歸系數,θ1,θ2,…θp是移動平均系數。p和q分別是自回歸模型和移動平均模型的階數,模型被命名為具有模型自回歸階p和模型移動平均階q的自回歸移動平均序列,簡稱ARMA(p,q)。
當q=0時,為AR(p)序列;
當p=0時,為MA(q)序列;
ARIMA模型處理的時間序列都是平穩過程的,如果分析的序列不是平穩的,那要讓其平穩,一般來說較為常用的就是對不平穩的原始時間序列進行差分運算,這樣就會得到一個ARIMA(p,d,q)模型, 其中d表示差分的階數。
(二)預測結果及其分析
本文在進行股票價格指數ARIMA模型預測的時候,將所有觀測值同樣分為8:2,并進行劃分訓練集和測試集。訓練集共5742個觀測,測試集1436個觀測。選用SPSS軟件操作,具體步驟如下:
1. 導入日期和收盤價兩列訓練集數據。
2. 排除季節成分影響。對訓練集繪制序列圖,如圖4所示,所得結果可以看出該數據中不含有明顯的季節成分,所以沒必要做季節的分解。
3. 判斷是否平穩。在用ARIMA分析時,需要保證序列是平穩的,因此需要對數據進行平穩性分析。根據序列自相關圖(圖5)和偏自相關圖(圖6)進行分析序列的平穩性。從中可以看出,序列自相關和偏自相關圖都是拖尾的。說明序列是非平穩的。對于非平穩序列,通過差分進一步分析。
4. 一階差分d=1,判斷平穩性。從圖7中可以看出,差分序列基本上均勻地排列在0刻度線上下。
同時做一階差分后的自相關圖(圖8)和偏自相關圖(圖9),也可以判斷序列是平穩狀態的,可以進行后續分析。
5. 確定ARIMA模型中p、q值。經過反復試驗,以AIC準則數值最小的原則,當p=1,d=1,q=1時,AIC的值為10.131,確定模型為ARIMA(1,1,1)。
6. 建立ARIMA(1,1,1)模型,同時對訓練集進行擬合,圖10中,UCL指預測上限,LCL指預測下限。從中可以看出,擬合程度較好。同時,ARIMA模型的參數結果見表1。
根據參數值,可以確定模型的表達式為
ΔX■=X■-X■ΔX■=22.735-0.917(ΔX■-22.735)+ε-0.932ε■(4)
接下來,將表達式應用到剩余1436個測試集身上,求出擬合值。并將原始觀測值和擬合值對比,計算得出均方根誤差RMSE=1396.527。
四、長短期記憶網絡(LSTM)模型對股票價格走勢預測
(一)理論介紹
長短期記憶網絡(LSTM)模型是在循環神經網絡(RNN)的基礎上擴展出來的。RNN由于其記憶的短期性,不能解決長輸入序列的信息傳遞問題,內部構造比較簡單,所需的計算資源比LSTM少很多。圖11表示LSTM的一個cell,從圖中看出,核心為cell的狀態和控制門,可以保留有用的信息在cell中,移除無用的信息。
Sigmoid函數:sigmoid層的輸出約束在0~1之間。目的是幫助保留信息或者移除信息。假如為0,意味著不讓任何東西通過,即移除;反之,若為1則意味著通過,所以保留;中間數,根據數值大小能體現數據的重要性。
Tanh 函數:主要是用來調節流經網絡的值,將值約束在[-1,1]之間。
遺忘門:LSTM的第一步決定從單元中狀態中拋棄什么信息。由遺忘門完成。該門會讀取前一個隱藏狀態和當前輸入,輸出一組對應前一個單元狀態中數字 的[0,1]之間的權值,0是完全遺忘,1則代表完全保留。
輸入門:LSTM接下來是確定被存放在單元狀態中的是怎樣的新信息。由輸入門完成。先是隱藏狀態和當前輸入傳輸給Sigmoid函數,由該函數計算出哪些值更為重要。與此同時也把上面的值傳遞給tanh函數,把向量的值約束在-1~1之間,防止數值過大。然后與Sigmoid門輸出值相乘,從而輸出最終的值。
cell 狀態:第一步先將之前的隱藏狀態和遺忘門輸出的向量進行點乘。接著將前面的輸出和輸入門的輸出點乘,這樣一來,輸出的就是更新后的單元狀態。
輸出門:它決定了下一個隱藏狀態。上面是單元狀態,下面是隱藏狀態。有關先前輸入的信息都包含在隱藏狀態中,基于此,神經網絡才具備預測能力。
(二)預測結果及其分析
根據長短期記憶模型(LSTM)對上證指數進行擬合,擬合結果如圖12所示。從中可以看出,測試集擬合程度較高,對比移動平均和自回歸綜合移動平均兩種算法來說,當前LSTM算法是最優的。對于RMSE均方根誤差的計算值近似為67.142,也是偏離程度最小的。
五、結論及建議
本文從簡單模型開始,然后轉向高級模型,通過對比移動平局、自回歸綜合移動平均、長短期記憶網絡三種算法模型的結果,在三種預測模型中,長短期記憶模型(LSTM)相比較其他兩種模型能更準確地實現短期股票的預測,當然,預測股票價格走勢僅依靠收盤價是遠遠不夠的,針對本文的模型預測總結出以下幾點不足。
第一,移動平均法未考慮權重的影響。一次移動平均是假設每一期的數據在移動平均值中的作用是相等的,因此對每期數據賦予的權重是相等的,但實際上每一期的數據都包含著不同的數據信息量,近期的數據包含的信息可能比遠期數據要多,但是在實際計算中并沒有將這方面因素考慮進去的,沒有對不同期的數據按照其包含信息量的不同對其賦予不同的權重。
第二,移動平均法未對步長的選取進行試算。通常來說,在使用移動平均法進行預測時,既希望模型的平滑能力要盡可能強,進而可以更好地抵消各種因素的干擾,顯示出規律性,同時又希望預測值能夠靈敏地反映出數據變化,以便于預測值不要滯后太多,但這兩者不能同時兼顧到,因為要使預測值能很快跟上數據的變化,就必然要帶進更多的隨機誤差。
通常情況下,N在時間序列的變化趨勢比較穩定時,取值適合大一些,反之,在有明顯變化及其波動時,N的選取宜小一些,有時常常會使用試算法,來確定合適的N,在本次預測中選取了測試集的容量為步長進行移動平均,對步長的選取并沒有進行試算。
第三,ARIMA模型對長期預測效果不好。ARIMA模型在對許多時間序列都適用,其優點在于模型簡單無需借助其他外生變量,缺點是對短期預測效果較好,但隨著時間的延長其預測誤差就比較大了。本次測試集含有1436個數據集,年限跨度從2014年6月13日至2020年4月30日,時間跨度比較長。
第四,影響價格走勢因素考慮比較單一。影響股票價格走勢的因素有很多,宏觀、公司、行業和區域均是影響股票價格走勢的因素,雖然目前來看LSTM算法是相對來說最優的,但是這一預測并不能足以確定股票是上漲還是下跌的。因為股價受到公司新聞和其他因素的影響,如公司的非貨幣化、合并或者拆分,還有一些無形的因素往往是無法實現預測的。
參考文獻:
[1]張桂喜,馬立平.預測與決策概論(第三版)[M].北京:首都經濟貿易大學出版社,2013:42-45.
[2]CUI Yujie;XI Qipu;HAO Junzhang.Analysis of Shanghai Composite Index Variation Based on Regression Analysis[J].Higher Education of Social Science,2014(12):118-122.
[3]許舒雅,梁曉瑩.基于ARIMA-GARCH模型的股票價格預測研究[J].河南教育學院學報(自然科學版),2019,28(04):20-24.
[4]白營閃.基于ARIMA模型對上證指數的預測[J].科學技術與工程,2009,9(16):4885-4887.
[5]黃子建,劉媛華.長短期記憶模型在股票價格趨勢預測應用研究[J].財政與金融,2020(01):36-38.
*本文受北京市屬高?;究蒲袠I務費(No.110052971921/103)和北京市教委基本科研業務費(No.KM202010009013)資助。
(作者單位:北方工業大學理學院)