文寶石,顏七笙
(東華理工大學理學院,330013,南昌)
股票市場一直受到投資者的青睞,股票價格的變化對投資者的收益有十分重大的影響,因此通過預測未來時刻股票價格進行規避風險是股票研究的一項重要內容[1],隨著人工智能的不斷進步,深度學習在經濟學領域的優異表現使其得到更為廣泛的研究與應用。支持向量機(Support Vector Machine,SVM)[2]、邏輯回歸(Logistic Regression,LR)[3]、遺傳算法(Genetic Algorithm,GA)[4]、貝葉斯學習(Bayesian Learning,BL)[5]和卷積神經網絡(Convolutional Neural Network,CNN)[6]等機器學習模型都應用于股價預測中,文獻[7]通過采用貝葉斯正則化算法改進傳統BP神經網絡模型,實現預測精度的提高和模型泛化能力的增強,文獻[8]通過主成分分析法和改進果蠅算法對BP神經網絡優化,實現模型收斂速度和預測精度的提升。
隨著循環神經網絡(Recurrent Neural Network,RNN)[9]的發展,RNN被廣泛應用于數據序列的預測,對時序數據分析表現出良好的適應性,但研究表明,隨著工作時間的推移RNN在處理較長時間序列的數據時會忘記之前的狀態信息,導致網絡在優化的過程中會發生梯度消失現象,也被稱作長期依賴問題。通過對RNN網絡單元結構改進提出的長短期記憶網絡(Long Short Term Memory Network,LSTM)[10]彌補了RNN長期記憶能力不足的問題。目前,LSTM網絡已經成功應用于語音識別、文本處理等領域,文獻[11]通過雙向長短期記憶網絡(BiLSTM),對民航陸空通話進行語音識別,有效降低通話語音識別的錯詞率。文獻[12]通過提出的C-LSTM模型,分別結合卷積神經網絡(CNN)和循環神經網絡的優點,在文本分類問題中取得良好的預測效果。在金融時序數據問題的研究中,文獻[13]搭建不同層數和相同層數下不同隱藏神經元個數的LSTM模型對蘋果股票價格進行有效的預測。文獻[14]通過LSTM模型對標準普爾500指數金融數據進行預測,相比隨機森林(RAF)、DNN和邏輯回歸分類(LOG)取得更好的預測結果。
針對股票的價格的非線性、隨機性等特征,充分考慮股價數據之間的時間相關性和數據之間的變化趨勢,結合信號處理技術,提出數據多維處理LSTM股價預測模型。選取2010年3月16日至2020年3月16日浦發銀行股價數據作為實驗數據對股票價格進行回歸預測。首先通過數據多維處理,對股價數據進行濾波[15]、差分和積分處理,得到反映股票價格數據自身變化趨勢的新數據,再通過數據組合形成多維處理的股價預測數據,然后建立數據多維處理LSTM股價預測模型。實驗結果表明,該模型具有較高的預測精度和較強的學習能力,在股價預測問題上表現出重要的應用價值。
LSTM(Long Short Term Memory Network,LSTM)是在傳統循環神經網絡(RNN)基礎上改進的深度學習網絡,由德國學者Hochreiter和Schmidhuber于1997年提出。LSTM網絡在RNN結構上引入一個新的狀態單元Ct,解決RNN梯度爆炸或梯度消失導致的長期依賴問題,在處理較長時間序列數據時表現良好。
LSTM與普通神經網絡一樣,結構上由輸入層、隱藏層和輸出層組成,同時LSTM又是一種特殊的RNN,隱藏層由一個或多個記憶單元組成,每個記憶單元通過遺忘門、輸入門和輸出門進行控制。LSTM單元結構如圖1所示。

圖1 LSTM單元結構

ft=σ(Wf·[ht-1,xt]+bf)
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=ot。tanh(Ct)
(6)

2.1.1 數據采集 選取滬深交易所上市A股中浦發銀行(股票編號為600000)的股價數據作為實驗數據,該數據來自于CSMAR數據庫,其中采集了2010年3月16日至2020年3月16日的相關股價信息數據,原始股價數據的部分數據見表1。

表1 原始股價數據
據表1可知,浦發銀行股價數據更新頻率為1 d/次,股價數據主要特征見表2。

表2 股價數據主要特征
2.1.2 數據預處理 首先,清洗數據,清洗股票數據中對預測過程無用的重復值,把數據中的重復值證券代碼“600000”特征刪去;通過插值等方法對原始數據中存在的缺測值進行填充,調整數據中亂序排列的數據順序;將交易日期作為時間特征便于數據查詢索引。
然后,歸一化輸入變量,選取表2中最后5個股票數據特征作為輸入變量,觀察表1可知,不同的股價數據特征具有不同的量綱和量綱單位,未歸一化的變量數據將對模型預測產生不利影響,通過樣本數據歸一化的措施,解決股價要素之間可比性問題,加快LSTM訓練速度,減少誤差輸出,本文選定樣本數據歸一化取值范圍在[0,1]之間,歸一化數學表達式為:
(7)
式中:max為清洗后樣本數據中各股價特征的最大值,min為清洗后樣本數據中各股價特征的最小值。
最后,通過數據拼接將時間序列數據轉化為有監督數據,本文選定輸入是t時刻各股價特征相關數據,輸出t+1是時刻的股票價格。
本文以股價預測為例,提出數據多維處理LSTM股價預測模型的構建方法。首先對收集的原始股價數據預處理,然后通過數據的多維處理得到組合數據,再結合LSTM模型對訓練樣本進行訓練,最后通過訓練好的LSTM模型對樣本數據進行測試。
2.2.1 數據多維處理 股價的非線性和不穩定性使股價預測變得復雜和困難,數據的多維處理是對實驗樣本數據通過濾波、差分及積分處理后組合形成新的組合實驗數據,充分利用數據時間相關性和自身變化趨勢,降低實驗樣本數據中的噪聲干擾,提升不同特征數據之間相互關聯的有效信息,保證后續LSTM網絡的訓練和預測,使模型得到更精準的預測結果。
由于復雜的市場動態,部分數據中含有不經常的噪聲,股票價格的微小幅度波動十分頻繁,從股票定量分析的角度出發,股票價格短期小范圍的微小波動并不能作為股票長期價格走勢的依據,因此本文選用巴特沃斯濾波器對數據進行濾波處理[16],這種濾波器最先由英國工程師斯蒂芬·巴特沃斯(Stephen·Butterworth)在1930年發表在英國《無線電工程》期刊的一篇論文中提出。一方面,巴特沃斯濾波器的特點是通頻帶的頻率響應曲線最平滑;另一方面,可以減少經濟學外圍信息產生的誤差影響。巴特沃斯濾波器在線性相位、衰減斜率和加載特性3個方面具有特性均衡的優點,因此在實際使用中已被列為首選,得到了廣泛應用。股價數據濾波圖像和頻譜圖像如圖2、圖3。

圖2 股價數據濾波處理圖像

圖3 股價數據頻譜圖像
股票價格變化趨勢的預測對模型預測結果精度有重要的影響,經過差分法處理的數據可以保留高頻,減少低頻,相位置前,而經過積分處理的數據可以保留低頻,減少高頻,相位置后。股價數據的差分、積分和原始圖像如圖4~圖6所示,由于實驗樣本數據量過大,選取前100個樣本數據作為展示數據,數據圖像展示均值為0,方差為1的數據處理圖像。

圖4 股價數據差分處理圖

圖5 股價數據積分處理圖

圖6 股價數據原始數據圖

(8)
式中:w2是連接LSTM網絡與輸出層的權重,ht可通過式(6)得出,b是輸出層的偏置。

圖7 LSTM預測模型結構圖
浦發銀行的股價數據每個交易日更新一次,因此預測模型根據過去1個交易日的輸入股價特征情況,預測未來1個交易日的股票價格。
數據多維處理LSTM股價預測模型結構如圖8所示。

圖8 數據多維處理LSTM股價預測模型
本文選取滬深交易所上市A股中的浦發銀行股價數據作為實驗樣本數據對模型進行訓練和測試,對浦發銀行未來8個月每天的下一個交易日的股票價格進行預測。
為評估模型的性能和預測精度,本文根據股票預測價格和股票實際價格,選取均方根誤差RMSE、平均絕對誤差MAE和平均絕對百分比誤差MAPE作為模型的評估指標,計算公式分別如下:
(9)
(10)
(11)

本文將數據多維處理算法和長短期記憶網絡(LSTM)相結合組成股價預測模型,該模型訓練和測試對比結果如圖9、圖10所示。由于實驗樣本數據量過大,為更好地展示模型訓練輸出結果,選取與測試數據相連接的8個月連續股票價格數據作為訓練輸出結果展示數據。為驗證數據多維處理后的LSTM模型性能更優,實驗過程中分別使用數據多維處理LSTM股價預測模型和LSTM股價預測模型對實驗樣本數據進行訓練及測試,LSTM股價預測模型訓練和測試對比結果如圖11、圖12所示,2組模型預測效果對比結果如圖13所示。由于測試數據量較多,為更清晰地展示模型預測對比效果,選取其中50個連續的股價數據作為展示數據。

圖9 數據多維處理LSTM模型訓練輸出對比結果

圖10 數據多維處理LSTM模型測試輸出對比結果

圖11 LSTM模型訓練輸出對比結果

圖12 LSTM模型測試輸出對比結果

圖13 數據多維處理LSTM模型和LSTM模型測試輸出對比結果
由圖9和圖11可以看出,數據多維處理LSTM股價預測模型相比LSTM股價預測模型的訓練輸出結果與實際股價數據更接近,與真實數據曲線更貼合,由圖10和圖12可以看出,數據多維處理LSTM股價預測模型相比LSTM股價預測模型的測試輸出結果與實際股價數據更接近,與真實數據曲線更貼合,圖13更清晰地展現2組模型的測試輸出對比結果,本文提出的數據多維處理LSTM股價預測模型在股價預測上的精度高于LSTM股價預測模型。
LSTM股價預測模型在預測股價變化趨勢上能夠與實際股價變化趨勢基本一致,表明LSTM模型適用于股價預測,相比之下,本文提出的數據多維處理LSTM股價預測模型得到的預測結果與實際值擬合得更好,預測精度更高,曲線更貼合,尤其是在股票價格波動較大的數據處理時,得到的預測結果與真實股價數據變化趨勢更加一致。
表3列出實驗得到的數據多維處理LSTM股價預測模型和LSTM股價預測模型的RMSE、MAE和MAPE的值。

表3 數據多維處理LSTM模型與LSTM模型股價預測的測試誤差對比
由表3可知,數據多維處理LSTM股價預測模型的RMSE、MAE和MAPE的值均小于LSTM股價預測模型,說明經過數據多維處理的LSTM模型預測精度有較大幅度的提升,與LSTM股價預測模型相比,均方根誤差RMSE降低90.81%,平均絕對誤差MAE降低91.65%和平均絕對百分比誤差MAPE降低87.81%,可以發現組合后的模型預測性能高于單一模型預測性能。說明數據多維處理LSTM股價預測模型的預測精度更高,預測的股票價格與實際股票價格之間的誤差更小。
綜上表明,數據多維處理LSTM股價預測模型,擬合精度更高,預測效果更好,誤差更低。
為進一步檢驗數據多維處理LSTM股價預測模型的優越性,選取數據多維處理LSTM股價預測模型、ARMA股價預測模型和在螢火蟲算法優化下的最小二乘支持向量機(FA-LSSVM)股價預測模型的股價預測結果做對比,同樣使用浦發銀行的股價數據作為實驗樣本數據對模型進行訓練和測試,對浦發銀行未來8個月每天的下一個交易日的股票價格進行預測,ARMA股價預測模型的訓練和測試輸出對比結果如圖14、圖15所示,FA-LSSVM股價預測模型的訓練和測試輸出對比結果如圖16、圖17所示。為更好地展示模型訓練輸出對比結果,選取與測試數據相連接的8個月連續股票價格數據作為ARMA模型和FA-LSSVM模型訓練輸出結果展示數據。數據多維數據處理LSTM模型與其他模型股價預測效果對比結果如圖18所示。由于測試數據量較多,為更清晰地展示模型預測對比效果,選取其中50個連續的股價數據作為展示數據。
由圖14~圖17對比圖9和圖10可以看出,數據多維處理LSTM股價預測模型比ARMA股價預測模型和FA-LSSVM股價預測模型的訓練輸出對比結果和測試輸出對比結果更接近于實際股價數據,與真實數據曲線更加貼合。圖18更清晰地展現數據多維處理LSTM股價預測模型和其他2種股價預測模型的測試輸出對比結果。本文提出的數據多維處理LSTM模型在股票價格預測結果與實際股票價格數據曲線擬合效果上明顯更優于ARMA模型和FA-LSSVM模型。在股價波動較大的數值預測時,ARMA模型和FA-LSSVM模型沒有得到很好的預測結果,數據多維處理LSTM模型的股價預測值與實際股價非常接近,對股價變化趨勢和股價波動較大數據的預測時,預測結果與真實數據擬合效果表現得更好。

圖14 ARMA模型訓練輸出對比結果

圖15 ARMA模型測試輸出對比結果

圖16 FA-LSSVM模型訓練輸出對比結果

圖17 FA-LSSVM模型測試輸出對比結果

圖18 數據多維處理LSTM模型、ARMA模型和FA-LSSVM模型測試輸出對比結果
表4列出實驗得到的數據多維處理LSTM股價預測模型、ARMA股價預測模型和FA-LSSVM股價預測模型的RMSE、MAE和MAPE的值。

表4 數據多維處理LSTM模型、ARMA模型和FA-LSSVM模型股價預測的測試誤差對比
由表4可知,數據多維處理LSTM股價預測模型的誤差最小,模型性能最優越,與ARMA股價預測模型和FA-LSSVM股價預測模型相比,均方根誤差RMSE分別減小92.74%和94.72%,平均絕對誤差MAE分別減小93.13%和95.28%,平均絕對百分比誤差MAPE分別減小93.23%和95.34%。因此本文構建的數據多維處理LSTM股價預測模型能夠更好地描述股價動態和非線性變化,在股價預測上表現出一定的應用價值。
本文以浦發銀行股票價格預測為實例,構建數據多維處理LSTM股票價格預測模型并進行預測和結果分析,實驗結果表明與LSTM、ARMA和FA-LSSVM模型相比,數據多維處理LSTM股價預測模型預測精度更高,預測結果與實際股價數據的誤差值更小,學習能力更佳,有效地解決了非線性和局部極小的問題。因此,表明數據多維處理LSTM股票價格預測模型具有實用性和優越性,但是模型還有進一步的改進空間,影響股票價格的因子有很多,在市場大規模周期性變化、重大經濟政策新聞發布和重大疫情突然出現等外圍經濟學因素的影響下,可以適當調整模型因子數量和類型,提升模型的預測性能,為投資者帶來更有價值的參考數據。