文寶石,顏七笙
(東華理工大學理學院,330013,南昌)
股票市場一直受到投資者的青睞,股票價格的變化對投資者的收益有十分重大的影響,因此通過預(yù)測未來時刻股票價格進行規(guī)避風險是股票研究的一項重要內(nèi)容[1],隨著人工智能的不斷進步,深度學習在經(jīng)濟學領(lǐng)域的優(yōu)異表現(xiàn)使其得到更為廣泛的研究與應(yīng)用。支持向量機(Support Vector Machine,SVM)[2]、邏輯回歸(Logistic Regression,LR)[3]、遺傳算法(Genetic Algorithm,GA)[4]、貝葉斯學習(Bayesian Learning,BL)[5]和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[6]等機器學習模型都應(yīng)用于股價預(yù)測中,文獻[7]通過采用貝葉斯正則化算法改進傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)預(yù)測精度的提高和模型泛化能力的增強,文獻[8]通過主成分分析法和改進果蠅算法對BP神經(jīng)網(wǎng)絡(luò)優(yōu)化,實現(xiàn)模型收斂速度和預(yù)測精度的提升。
隨著循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[9]的發(fā)展,RNN被廣泛應(yīng)用于數(shù)據(jù)序列的預(yù)測,對時序數(shù)據(jù)分析表現(xiàn)出良好的適應(yīng)性,但研究表明,隨著工作時間的推移RNN在處理較長時間序列的數(shù)據(jù)時會忘記之前的狀態(tài)信息,導致網(wǎng)絡(luò)在優(yōu)化的過程中會發(fā)生梯度消失現(xiàn)象,也被稱作長期依賴問題。通過對RNN網(wǎng)絡(luò)單元結(jié)構(gòu)改進提出的長短期記憶網(wǎng)絡(luò)(Long Short Term Memory Network,LSTM)[10]彌補了RNN長期記憶能力不足的問題。目前,LSTM網(wǎng)絡(luò)已經(jīng)成功應(yīng)用于語音識別、文本處理等領(lǐng)域,文獻[11]通過雙向長短期記憶網(wǎng)絡(luò)(BiLSTM),對民航陸空通話進行語音識別,有效降低通話語音識別的錯詞率。文獻[12]通過提出的C-LSTM模型,分別結(jié)合卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)的優(yōu)點,在文本分類問題中取得良好的預(yù)測效果。在金融時序數(shù)據(jù)問題的研究中,文獻[13]搭建不同層數(shù)和相同層數(shù)下不同隱藏神經(jīng)元個數(shù)的LSTM模型對蘋果股票價格進行有效的預(yù)測。文獻[14]通過LSTM模型對標準普爾500指數(shù)金融數(shù)據(jù)進行預(yù)測,相比隨機森林(RAF)、DNN和邏輯回歸分類(LOG)取得更好的預(yù)測結(jié)果。
針對股票的價格的非線性、隨機性等特征,充分考慮股價數(shù)據(jù)之間的時間相關(guān)性和數(shù)據(jù)之間的變化趨勢,結(jié)合信號處理技術(shù),提出數(shù)據(jù)多維處理LSTM股價預(yù)測模型。選取2010年3月16日至2020年3月16日浦發(fā)銀行股價數(shù)據(jù)作為實驗數(shù)據(jù)對股票價格進行回歸預(yù)測。首先通過數(shù)據(jù)多維處理,對股價數(shù)據(jù)進行濾波[15]、差分和積分處理,得到反映股票價格數(shù)據(jù)自身變化趨勢的新數(shù)據(jù),再通過數(shù)據(jù)組合形成多維處理的股價預(yù)測數(shù)據(jù),然后建立數(shù)據(jù)多維處理LSTM股價預(yù)測模型。實驗結(jié)果表明,該模型具有較高的預(yù)測精度和較強的學習能力,在股價預(yù)測問題上表現(xiàn)出重要的應(yīng)用價值。
LSTM(Long Short Term Memory Network,LSTM)是在傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)基礎(chǔ)上改進的深度學習網(wǎng)絡(luò),由德國學者Hochreiter和Schmidhuber于1997年提出。LSTM網(wǎng)絡(luò)在RNN結(jié)構(gòu)上引入一個新的狀態(tài)單元Ct,解決RNN梯度爆炸或梯度消失導致的長期依賴問題,在處理較長時間序列數(shù)據(jù)時表現(xiàn)良好。
LSTM與普通神經(jīng)網(wǎng)絡(luò)一樣,結(jié)構(gòu)上由輸入層、隱藏層和輸出層組成,同時LSTM又是一種特殊的RNN,隱藏層由一個或多個記憶單元組成,每個記憶單元通過遺忘門、輸入門和輸出門進行控制。LSTM單元結(jié)構(gòu)如圖1所示。
圖1 LSTM單元結(jié)構(gòu)
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 數(shù)據(jù)采集 選取滬深交易所上市A股中浦發(fā)銀行(股票編號為600000)的股價數(shù)據(jù)作為實驗數(shù)據(jù),該數(shù)據(jù)來自于CSMAR數(shù)據(jù)庫,其中采集了2010年3月16日至2020年3月16日的相關(guān)股價信息數(shù)據(jù),原始股價數(shù)據(jù)的部分數(shù)據(jù)見表1。
表1 原始股價數(shù)據(jù)
據(jù)表1可知,浦發(fā)銀行股價數(shù)據(jù)更新頻率為1 d/次,股價數(shù)據(jù)主要特征見表2。
表2 股價數(shù)據(jù)主要特征
2.1.2 數(shù)據(jù)預(yù)處理 首先,清洗數(shù)據(jù),清洗股票數(shù)據(jù)中對預(yù)測過程無用的重復(fù)值,把數(shù)據(jù)中的重復(fù)值證券代碼“600000”特征刪去;通過插值等方法對原始數(shù)據(jù)中存在的缺測值進行填充,調(diào)整數(shù)據(jù)中亂序排列的數(shù)據(jù)順序;將交易日期作為時間特征便于數(shù)據(jù)查詢索引。
然后,歸一化輸入變量,選取表2中最后5個股票數(shù)據(jù)特征作為輸入變量,觀察表1可知,不同的股價數(shù)據(jù)特征具有不同的量綱和量綱單位,未歸一化的變量數(shù)據(jù)將對模型預(yù)測產(chǎn)生不利影響,通過樣本數(shù)據(jù)歸一化的措施,解決股價要素之間可比性問題,加快LSTM訓練速度,減少誤差輸出,本文選定樣本數(shù)據(jù)歸一化取值范圍在[0,1]之間,歸一化數(shù)學表達式為:
(7)
式中:max為清洗后樣本數(shù)據(jù)中各股價特征的最大值,min為清洗后樣本數(shù)據(jù)中各股價特征的最小值。
最后,通過數(shù)據(jù)拼接將時間序列數(shù)據(jù)轉(zhuǎn)化為有監(jiān)督數(shù)據(jù),本文選定輸入是t時刻各股價特征相關(guān)數(shù)據(jù),輸出t+1是時刻的股票價格。
本文以股價預(yù)測為例,提出數(shù)據(jù)多維處理LSTM股價預(yù)測模型的構(gòu)建方法。首先對收集的原始股價數(shù)據(jù)預(yù)處理,然后通過數(shù)據(jù)的多維處理得到組合數(shù)據(jù),再結(jié)合LSTM模型對訓練樣本進行訓練,最后通過訓練好的LSTM模型對樣本數(shù)據(jù)進行測試。
2.2.1 數(shù)據(jù)多維處理 股價的非線性和不穩(wěn)定性使股價預(yù)測變得復(fù)雜和困難,數(shù)據(jù)的多維處理是對實驗樣本數(shù)據(jù)通過濾波、差分及積分處理后組合形成新的組合實驗數(shù)據(jù),充分利用數(shù)據(jù)時間相關(guān)性和自身變化趨勢,降低實驗樣本數(shù)據(jù)中的噪聲干擾,提升不同特征數(shù)據(jù)之間相互關(guān)聯(lián)的有效信息,保證后續(xù)LSTM網(wǎng)絡(luò)的訓練和預(yù)測,使模型得到更精準的預(yù)測結(jié)果。
由于復(fù)雜的市場動態(tài),部分數(shù)據(jù)中含有不經(jīng)常的噪聲,股票價格的微小幅度波動十分頻繁,從股票定量分析的角度出發(fā),股票價格短期小范圍的微小波動并不能作為股票長期價格走勢的依據(jù),因此本文選用巴特沃斯濾波器對數(shù)據(jù)進行濾波處理[16],這種濾波器最先由英國工程師斯蒂芬·巴特沃斯(Stephen·Butterworth)在1930年發(fā)表在英國《無線電工程》期刊的一篇論文中提出。一方面,巴特沃斯濾波器的特點是通頻帶的頻率響應(yīng)曲線最平滑;另一方面,可以減少經(jīng)濟學外圍信息產(chǎn)生的誤差影響。巴特沃斯濾波器在線性相位、衰減斜率和加載特性3個方面具有特性均衡的優(yōu)點,因此在實際使用中已被列為首選,得到了廣泛應(yīng)用。股價數(shù)據(jù)濾波圖像和頻譜圖像如圖2、圖3。
圖2 股價數(shù)據(jù)濾波處理圖像
圖3 股價數(shù)據(jù)頻譜圖像
股票價格變化趨勢的預(yù)測對模型預(yù)測結(jié)果精度有重要的影響,經(jīng)過差分法處理的數(shù)據(jù)可以保留高頻,減少低頻,相位置前,而經(jīng)過積分處理的數(shù)據(jù)可以保留低頻,減少高頻,相位置后。股價數(shù)據(jù)的差分、積分和原始圖像如圖4~圖6所示,由于實驗樣本數(shù)據(jù)量過大,選取前100個樣本數(shù)據(jù)作為展示數(shù)據(jù),數(shù)據(jù)圖像展示均值為0,方差為1的數(shù)據(jù)處理圖像。
圖4 股價數(shù)據(jù)差分處理圖
圖5 股價數(shù)據(jù)積分處理圖
圖6 股價數(shù)據(jù)原始數(shù)據(jù)圖
(8)
式中:w2是連接LSTM網(wǎng)絡(luò)與輸出層的權(quán)重,ht可通過式(6)得出,b是輸出層的偏置。
圖7 LSTM預(yù)測模型結(jié)構(gòu)圖
浦發(fā)銀行的股價數(shù)據(jù)每個交易日更新一次,因此預(yù)測模型根據(jù)過去1個交易日的輸入股價特征情況,預(yù)測未來1個交易日的股票價格。
數(shù)據(jù)多維處理LSTM股價預(yù)測模型結(jié)構(gòu)如圖8所示。
圖8 數(shù)據(jù)多維處理LSTM股價預(yù)測模型
本文選取滬深交易所上市A股中的浦發(fā)銀行股價數(shù)據(jù)作為實驗樣本數(shù)據(jù)對模型進行訓練和測試,對浦發(fā)銀行未來8個月每天的下一個交易日的股票價格進行預(yù)測。
為評估模型的性能和預(yù)測精度,本文根據(jù)股票預(yù)測價格和股票實際價格,選取均方根誤差RMSE、平均絕對誤差MAE和平均絕對百分比誤差MAPE作為模型的評估指標,計算公式分別如下:
(9)
(10)
(11)
本文將數(shù)據(jù)多維處理算法和長短期記憶網(wǎng)絡(luò)(LSTM)相結(jié)合組成股價預(yù)測模型,該模型訓練和測試對比結(jié)果如圖9、圖10所示。由于實驗樣本數(shù)據(jù)量過大,為更好地展示模型訓練輸出結(jié)果,選取與測試數(shù)據(jù)相連接的8個月連續(xù)股票價格數(shù)據(jù)作為訓練輸出結(jié)果展示數(shù)據(jù)。為驗證數(shù)據(jù)多維處理后的LSTM模型性能更優(yōu),實驗過程中分別使用數(shù)據(jù)多維處理LSTM股價預(yù)測模型和LSTM股價預(yù)測模型對實驗樣本數(shù)據(jù)進行訓練及測試,LSTM股價預(yù)測模型訓練和測試對比結(jié)果如圖11、圖12所示,2組模型預(yù)測效果對比結(jié)果如圖13所示。由于測試數(shù)據(jù)量較多,為更清晰地展示模型預(yù)測對比效果,選取其中50個連續(xù)的股價數(shù)據(jù)作為展示數(shù)據(jù)。
圖9 數(shù)據(jù)多維處理LSTM模型訓練輸出對比結(jié)果
圖10 數(shù)據(jù)多維處理LSTM模型測試輸出對比結(jié)果
圖11 LSTM模型訓練輸出對比結(jié)果
圖12 LSTM模型測試輸出對比結(jié)果
圖13 數(shù)據(jù)多維處理LSTM模型和LSTM模型測試輸出對比結(jié)果
由圖9和圖11可以看出,數(shù)據(jù)多維處理LSTM股價預(yù)測模型相比LSTM股價預(yù)測模型的訓練輸出結(jié)果與實際股價數(shù)據(jù)更接近,與真實數(shù)據(jù)曲線更貼合,由圖10和圖12可以看出,數(shù)據(jù)多維處理LSTM股價預(yù)測模型相比LSTM股價預(yù)測模型的測試輸出結(jié)果與實際股價數(shù)據(jù)更接近,與真實數(shù)據(jù)曲線更貼合,圖13更清晰地展現(xiàn)2組模型的測試輸出對比結(jié)果,本文提出的數(shù)據(jù)多維處理LSTM股價預(yù)測模型在股價預(yù)測上的精度高于LSTM股價預(yù)測模型。
LSTM股價預(yù)測模型在預(yù)測股價變化趨勢上能夠與實際股價變化趨勢基本一致,表明LSTM模型適用于股價預(yù)測,相比之下,本文提出的數(shù)據(jù)多維處理LSTM股價預(yù)測模型得到的預(yù)測結(jié)果與實際值擬合得更好,預(yù)測精度更高,曲線更貼合,尤其是在股票價格波動較大的數(shù)據(jù)處理時,得到的預(yù)測結(jié)果與真實股價數(shù)據(jù)變化趨勢更加一致。
表3列出實驗得到的數(shù)據(jù)多維處理LSTM股價預(yù)測模型和LSTM股價預(yù)測模型的RMSE、MAE和MAPE的值。
表3 數(shù)據(jù)多維處理LSTM模型與LSTM模型股價預(yù)測的測試誤差對比
由表3可知,數(shù)據(jù)多維處理LSTM股價預(yù)測模型的RMSE、MAE和MAPE的值均小于LSTM股價預(yù)測模型,說明經(jīng)過數(shù)據(jù)多維處理的LSTM模型預(yù)測精度有較大幅度的提升,與LSTM股價預(yù)測模型相比,均方根誤差RMSE降低90.81%,平均絕對誤差MAE降低91.65%和平均絕對百分比誤差MAPE降低87.81%,可以發(fā)現(xiàn)組合后的模型預(yù)測性能高于單一模型預(yù)測性能。說明數(shù)據(jù)多維處理LSTM股價預(yù)測模型的預(yù)測精度更高,預(yù)測的股票價格與實際股票價格之間的誤差更小。
綜上表明,數(shù)據(jù)多維處理LSTM股價預(yù)測模型,擬合精度更高,預(yù)測效果更好,誤差更低。
為進一步檢驗數(shù)據(jù)多維處理LSTM股價預(yù)測模型的優(yōu)越性,選取數(shù)據(jù)多維處理LSTM股價預(yù)測模型、ARMA股價預(yù)測模型和在螢火蟲算法優(yōu)化下的最小二乘支持向量機(FA-LSSVM)股價預(yù)測模型的股價預(yù)測結(jié)果做對比,同樣使用浦發(fā)銀行的股價數(shù)據(jù)作為實驗樣本數(shù)據(jù)對模型進行訓練和測試,對浦發(fā)銀行未來8個月每天的下一個交易日的股票價格進行預(yù)測,ARMA股價預(yù)測模型的訓練和測試輸出對比結(jié)果如圖14、圖15所示,F(xiàn)A-LSSVM股價預(yù)測模型的訓練和測試輸出對比結(jié)果如圖16、圖17所示。為更好地展示模型訓練輸出對比結(jié)果,選取與測試數(shù)據(jù)相連接的8個月連續(xù)股票價格數(shù)據(jù)作為ARMA模型和FA-LSSVM模型訓練輸出結(jié)果展示數(shù)據(jù)。數(shù)據(jù)多維數(shù)據(jù)處理LSTM模型與其他模型股價預(yù)測效果對比結(jié)果如圖18所示。由于測試數(shù)據(jù)量較多,為更清晰地展示模型預(yù)測對比效果,選取其中50個連續(xù)的股價數(shù)據(jù)作為展示數(shù)據(jù)。
由圖14~圖17對比圖9和圖10可以看出,數(shù)據(jù)多維處理LSTM股價預(yù)測模型比ARMA股價預(yù)測模型和FA-LSSVM股價預(yù)測模型的訓練輸出對比結(jié)果和測試輸出對比結(jié)果更接近于實際股價數(shù)據(jù),與真實數(shù)據(jù)曲線更加貼合。圖18更清晰地展現(xiàn)數(shù)據(jù)多維處理LSTM股價預(yù)測模型和其他2種股價預(yù)測模型的測試輸出對比結(jié)果。本文提出的數(shù)據(jù)多維處理LSTM模型在股票價格預(yù)測結(jié)果與實際股票價格數(shù)據(jù)曲線擬合效果上明顯更優(yōu)于ARMA模型和FA-LSSVM模型。在股價波動較大的數(shù)值預(yù)測時,ARMA模型和FA-LSSVM模型沒有得到很好的預(yù)測結(jié)果,數(shù)據(jù)多維處理LSTM模型的股價預(yù)測值與實際股價非常接近,對股價變化趨勢和股價波動較大數(shù)據(jù)的預(yù)測時,預(yù)測結(jié)果與真實數(shù)據(jù)擬合效果表現(xiàn)得更好。
圖14 ARMA模型訓練輸出對比結(jié)果
圖15 ARMA模型測試輸出對比結(jié)果
圖16 FA-LSSVM模型訓練輸出對比結(jié)果
圖17 FA-LSSVM模型測試輸出對比結(jié)果
圖18 數(shù)據(jù)多維處理LSTM模型、ARMA模型和FA-LSSVM模型測試輸出對比結(jié)果
表4列出實驗得到的數(shù)據(jù)多維處理LSTM股價預(yù)測模型、ARMA股價預(yù)測模型和FA-LSSVM股價預(yù)測模型的RMSE、MAE和MAPE的值。
表4 數(shù)據(jù)多維處理LSTM模型、ARMA模型和FA-LSSVM模型股價預(yù)測的測試誤差對比
由表4可知,數(shù)據(jù)多維處理LSTM股價預(yù)測模型的誤差最小,模型性能最優(yōu)越,與ARMA股價預(yù)測模型和FA-LSSVM股價預(yù)測模型相比,均方根誤差RMSE分別減小92.74%和94.72%,平均絕對誤差MAE分別減小93.13%和95.28%,平均絕對百分比誤差MAPE分別減小93.23%和95.34%。因此本文構(gòu)建的數(shù)據(jù)多維處理LSTM股價預(yù)測模型能夠更好地描述股價動態(tài)和非線性變化,在股價預(yù)測上表現(xiàn)出一定的應(yīng)用價值。
本文以浦發(fā)銀行股票價格預(yù)測為實例,構(gòu)建數(shù)據(jù)多維處理LSTM股票價格預(yù)測模型并進行預(yù)測和結(jié)果分析,實驗結(jié)果表明與LSTM、ARMA和FA-LSSVM模型相比,數(shù)據(jù)多維處理LSTM股價預(yù)測模型預(yù)測精度更高,預(yù)測結(jié)果與實際股價數(shù)據(jù)的誤差值更小,學習能力更佳,有效地解決了非線性和局部極小的問題。因此,表明數(shù)據(jù)多維處理LSTM股票價格預(yù)測模型具有實用性和優(yōu)越性,但是模型還有進一步的改進空間,影響股票價格的因子有很多,在市場大規(guī)模周期性變化、重大經(jīng)濟政策新聞發(fā)布和重大疫情突然出現(xiàn)等外圍經(jīng)濟學因素的影響下,可以適當調(diào)整模型因子數(shù)量和類型,提升模型的預(yù)測性能,為投資者帶來更有價值的參考數(shù)據(jù)。