摘要:長短期記憶網(wǎng)絡(luò)(LSTM)因其強(qiáng)大的序列建模能力,成為時間序列預(yù)測任務(wù)中的主流深度學(xué)習(xí)模型。然而,股票數(shù)據(jù)作為典型的時間序列數(shù)據(jù),常常面臨數(shù)據(jù)格式多樣、內(nèi)容錯誤、非線性和非平穩(wěn)性、模型數(shù)據(jù)要求格式高等問題。該文詳細(xì)闡述了針對LSTM的時間序列數(shù)據(jù)處理方法,并基于Python語言進(jìn)行了實證檢驗。實驗證明,經(jīng)過優(yōu)化的數(shù)據(jù)處理流程不僅減少了模型訓(xùn)練過程中的錯誤,還顯著提升了預(yù)測精度。
關(guān)鍵詞:量化投資;深度學(xué)習(xí);長短期記憶網(wǎng)絡(luò)(LSTM);時間序列數(shù)據(jù)預(yù)處理
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2024)34-0060-03開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
0引言
隨著金融市場的復(fù)雜性和動態(tài)性日益增加,量化投資作為一種基于數(shù)學(xué)模型的投資策略,越來越受到投資者的青睞。與此同時,得益于計算機(jī)芯片的發(fā)展,人工智能(AI)重新煥發(fā)出活力。機(jī)器學(xué)習(xí)技術(shù)被引入量化投資領(lǐng)域,形成了監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等機(jī)器學(xué)習(xí)方法與股票選擇、股票擇時等投資學(xué)內(nèi)容的交叉研究。長短期記憶網(wǎng)絡(luò)(LSTM)作為一種深度學(xué)習(xí)模型,具有廣泛的假設(shè)空間和強(qiáng)大的序列建模能力,足以應(yīng)對市場的復(fù)雜性,在預(yù)測精度上展現(xiàn)出巨大潛力。
股票數(shù)據(jù)作為量化投資的主要數(shù)據(jù)來源,是一種典型的時間序列數(shù)據(jù)。然而,當(dāng)將股票數(shù)據(jù)輸入LSTM等時間序列模型進(jìn)行分析時,常常遇到數(shù)據(jù)格式多樣、內(nèi)容錯誤等問題。因此,本文旨在優(yōu)化時間序列數(shù)據(jù)處理流程,針對非線性、非平穩(wěn)的時間序列數(shù)據(jù)以及數(shù)據(jù)噪聲和過擬合等問題,提出解決方案。
1文獻(xiàn)綜述
受我國資本市場發(fā)展時間短、不全面的影響,我國的量化交易起步相較歐美國家略晚一些。李斌等人[1]利用各類機(jī)器學(xué)習(xí)算法,以中國公司特征預(yù)測A股市場價格變動情況,實證證明機(jī)器學(xué)習(xí)模型對于我國的A股價格預(yù)測有著同國外一樣的效果。彭燕等人[2]為研究LSTM最適宜網(wǎng)格層數(shù)和隱藏層的隱藏神經(jīng)元個數(shù),利用Keras框架進(jìn)行模型構(gòu)建,并利用小波分析等方式對數(shù)據(jù)進(jìn)行預(yù)處理,發(fā)現(xiàn)對蘋果公司的股票價格預(yù)測準(zhǔn)確率提升了30%。賀毅岳等人[3]基于CEEMDAN-LSTM進(jìn)行股票市場指數(shù)預(yù)測建模研究。利用LSTM進(jìn)行股票價格預(yù)測的研究已經(jīng)不在少數(shù),但是對于整個模型最重要的數(shù)據(jù)處理部分卻少有人研究,因此本文對用于LSTM的時序數(shù)據(jù)處理的方法進(jìn)行研究。
2時間序列數(shù)據(jù)常見問題及解決方案
股票投資中的時間序列數(shù)據(jù)常見問題包括數(shù)據(jù)缺失、數(shù)據(jù)噪聲、非平穩(wěn)性、數(shù)據(jù)高維性、趨勢和季節(jié)性、多重共線性、自相關(guān)性、過擬合問題、數(shù)據(jù)延遲和對齊等問題。這些問題會對模型的預(yù)測能力造成不同程度的干擾,增加分析和決策的難度。因此,本文提出“七步數(shù)據(jù)清洗法”對數(shù)據(jù)進(jìn)行處理以解決上述問題。
2.1數(shù)據(jù)對齊
在股票數(shù)據(jù)分析的初步階段,數(shù)據(jù)對齊是一個至關(guān)重要的關(guān)鍵步驟。鑒于數(shù)據(jù)來源的多樣性,不同數(shù)據(jù)提供方在數(shù)據(jù)標(biāo)準(zhǔn)把控上往往存在差異,這無疑給數(shù)據(jù)質(zhì)量帶來了嚴(yán)峻挑戰(zhàn)。在獲取數(shù)據(jù)時,我們應(yīng)全面關(guān)注其全面性、完整性、連續(xù)性、一致性和時效性,以確保最終分析結(jié)果的準(zhǔn)確無誤。然而,即便數(shù)據(jù)來源可靠,股票數(shù)據(jù)也常常存在固有的頻率不一致問題。例如,市場交易數(shù)據(jù)通常是按日提供的,而宏觀經(jīng)濟(jì)數(shù)據(jù)和財務(wù)報表數(shù)據(jù)則可能是按月、按季或按年發(fā)布的。這種頻率上的差異,在數(shù)據(jù)合并過程中,往往會導(dǎo)致大量缺失值的產(chǎn)生。
為解決這一難題,本文建議以最細(xì)的時間顆粒度,即日頻數(shù)據(jù)為基準(zhǔn),來調(diào)整其他頻率的數(shù)據(jù)。這樣做可以最大限度地保留數(shù)據(jù)樣本量,減少信息的損失。在數(shù)據(jù)頻率調(diào)整一致后,我們便可利用數(shù)據(jù)的時間戳進(jìn)行精確匹配,確保所有數(shù)據(jù)源在時間軸上能夠完全對齊。這樣的數(shù)據(jù)對齊方法,不僅能夠顯著提升數(shù)據(jù)集的整體質(zhì)量,而且為后續(xù)的分析工作奠定了堅實基礎(chǔ),使得基于多源數(shù)據(jù)的股票投資分析更加精準(zhǔn)可靠。
2.2重復(fù)值、缺失值和異常值處理
在數(shù)據(jù)處理過程中,重復(fù)值、缺失值和異常值是三種常見且不容忽視的問題,它們對數(shù)據(jù)分析結(jié)果的影響不容小覷。對于重復(fù)值,處理方法相對直接,我們通??梢酝ㄟ^刪除那些重復(fù)次數(shù)超過設(shè)定閾值的行,來有效消除重復(fù)數(shù)據(jù),從而確保數(shù)據(jù)的唯一性和分析的準(zhǔn)確性。
對于缺失值,其產(chǎn)生原因可能多種多樣,如數(shù)據(jù)傳輸故障、交易所停盤等。處理缺失值的方法主要有兩種:刪除和填充。刪除方法可以根據(jù)缺失值的比例設(shè)定不同的閾值,一旦數(shù)據(jù)行的缺失值比例超過該閾值,便將其剔除。填充方法則包括使用相鄰數(shù)據(jù)、均值、中位數(shù)、眾數(shù)等統(tǒng)計量進(jìn)行填充,或者通過訓(xùn)練專門的機(jī)器學(xué)習(xí)模型來預(yù)測并填充缺失值。
異常值的處理則需更加謹(jǐn)慎。數(shù)據(jù)錄入錯誤和市場極端事件都可能導(dǎo)致異常值的出現(xiàn)。在識別和剔除異常值時,可以借助統(tǒng)計學(xué)中的3σ原則或箱線圖等工具進(jìn)行初步篩選。這些方法基于數(shù)據(jù)分布的特征,能夠有效識別出那些顯著偏離正常范圍的值。然而,僅憑統(tǒng)計學(xué)方法可能并不足以全面評估異常值。因此,我們需要結(jié)合金融市場的專業(yè)知識,進(jìn)一步判斷這些異常值是否合理。例如,某些看似異常的數(shù)據(jù)點,可能正是市場某次真實波動的反映。在這種情況下,這些數(shù)據(jù)點雖然異常,但卻具有實際意義,應(yīng)當(dāng)予以保留。
通過將統(tǒng)計方法與領(lǐng)域知識相結(jié)合,能夠更加精確地識別和合理處理異常值,從而提升數(shù)據(jù)分析的可靠性和準(zhǔn)確性。這種綜合處理策略不僅有助于消除數(shù)據(jù)中的噪聲,還能確保分析結(jié)果能夠真實、準(zhǔn)確地反映市場的動態(tài)變化。
2.3特征縮放
在股票數(shù)據(jù)、財務(wù)數(shù)據(jù)和宏觀經(jīng)濟(jì)數(shù)據(jù)中,不同特征的數(shù)值范圍可能存在較大差異。例如,股價可能在幾十到幾百之間波動,而財務(wù)數(shù)據(jù)中的市盈率(PE)或每股收益(EPS)可能在幾到幾十之間,宏觀經(jīng)濟(jì)數(shù)據(jù)如利率、M2則可能是百分比或上萬億的規(guī)模。這種差異在模型訓(xùn)練時會引發(fā)一些問題:
首先,數(shù)值范圍較大的特征會主導(dǎo)梯度更新過程,導(dǎo)致數(shù)值較小的特征對模型的影響微乎其微,無法有效捕捉到它們的變化趨勢。其次,不進(jìn)行特征縮放的情況下,模型的訓(xùn)練可能會出現(xiàn)梯度消失或梯度爆炸現(xiàn)象,影響訓(xùn)練過程中的參數(shù)更新,導(dǎo)致模型收斂速度變慢,甚至無法有效收斂。
為了解決這些問題,可以對數(shù)據(jù)進(jìn)行特征縮放,常用的方法有歸一化和標(biāo)準(zhǔn)化。歸一化通常將特征縮放到[0,1]或[-1,1]之間,這樣所有特征都在相同的尺度上,消除了不同特征之間的量綱差異,從而加快了模型的訓(xùn)練速度。標(biāo)準(zhǔn)化則是將特征按標(biāo)準(zhǔn)正態(tài)分布進(jìn)行縮放,使特征均值為0,標(biāo)準(zhǔn)差為1,這在某些模型中(如線性回歸、神經(jīng)網(wǎng)絡(luò)等)尤其重要。特征縮放不僅可以提高模型的收斂效率,還能防止某些特征在訓(xùn)練過程中主導(dǎo)模型的權(quán)重更新,確保所有特征都能為模型的學(xué)習(xí)提供有效信息。
通過對數(shù)據(jù)進(jìn)行合適的特征縮放,模型能夠更快地捕捉數(shù)據(jù)中的模式和關(guān)系,從而提升預(yù)測效果。
2.4特征選擇
基于概率近似正確理論(ProbablyApproximatelyCorrect,PAC),我們知道在機(jī)器學(xué)習(xí)中,模型的復(fù)雜度、訓(xùn)練數(shù)據(jù)的數(shù)量和質(zhì)量都會影響模型的泛化能力。過多的特征和過少的樣本數(shù)可能導(dǎo)致模型過擬合,即模型在訓(xùn)練數(shù)據(jù)上表現(xiàn)很好,但在未見過的數(shù)據(jù)上表現(xiàn)較差。為了防止過擬合,我們需要進(jìn)行特征選擇和降維處理。
我們可以通過計算特征與目標(biāo)變量之間的皮爾遜相關(guān)系數(shù)、斯皮爾曼等級相關(guān)系數(shù)或肯德爾等級相關(guān)系數(shù),來評估特征與目標(biāo)變量之間的線性或非線性的關(guān)系,篩選出高相關(guān)性的特征。使用主成分分析(PCA)等方法減少特征維度,保留主要信息,降低模型復(fù)雜度。而在進(jìn)行特征選擇時,除了使用相關(guān)性分析的統(tǒng)計學(xué)方法外,我們還可以結(jié)合金融市場知識,選擇對股票價格有顯著影響的特征,使用隨機(jī)森林、Lasso回歸等模型進(jìn)行特征重要性排序。
2.5時間序列處理
LSTM模型要求輸入數(shù)據(jù)是一個三維張量,形狀為(樣本數(shù)、時間步長、特征數(shù))。其中,樣本數(shù)是一次訓(xùn)練或預(yù)測的樣本個數(shù)。時間步長是每個樣本中時間序列的長度。特征數(shù)是每個時間步的特征維度。對于單變量時間序列預(yù)測,特征數(shù)通常為1;對于多變量時間序列預(yù)測,特征數(shù)則等于變量的數(shù)量。
為此,我們可以采用滑動窗口方法構(gòu)建輸入序列,將時間序列數(shù)據(jù)轉(zhuǎn)換為監(jiān)督學(xué)習(xí)樣本?;瑒哟翱谟兄谀P蛯W(xué)習(xí)時間序列的連續(xù)性和趨勢性,時間步長則適用于需要捕捉長期依賴關(guān)系的情況。通過調(diào)整窗口大小,可以捕捉不同時間尺度的信息。同時,基于網(wǎng)格搜索、隨機(jī)搜索、貝葉斯優(yōu)化等方法嘗試滑動窗口等不同超參數(shù),以期提高模型的預(yù)測準(zhǔn)確性,同時降低計算復(fù)雜度。
此步是處理LSTM序列數(shù)據(jù)最重要的一步,只有符合LSTM的三維張量的要求,才能把數(shù)據(jù)放到Keras提供的模型里進(jìn)行訓(xùn)練。以Python為例,我們常使用的機(jī)器學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)是DataFrame,但是LSTM要求輸入張量時,對應(yīng)的數(shù)據(jù)格式應(yīng)為Ndarray格式。在進(jìn)行DataFrame到Ndarray的格式轉(zhuǎn)換前,應(yīng)當(dāng)把數(shù)據(jù)整合為以時間戳為行索引,所有股票的所有特征為列索引的格式,然后再進(jìn)行滑動窗口函數(shù)的編寫。
2.6平穩(wěn)性檢驗
為了確保目標(biāo)時間序列滿足LSTM模型對數(shù)據(jù)平穩(wěn)性的要求,并進(jìn)而提升模型的預(yù)測性能,我們首先采用ADF檢驗和KPSS檢驗對時間序列進(jìn)行平穩(wěn)性檢驗。根據(jù)檢驗結(jié)果,若序列已呈現(xiàn)平穩(wěn)狀態(tài),則無須額外處理;反之,若序列不平穩(wěn),則需進(jìn)行進(jìn)一步的平穩(wěn)化處理。處理措施包括:通過一階或多階差分來消除趨勢和季節(jié)性因素,利用對數(shù)變換減緩增長趨勢以使序列更趨平穩(wěn),以及采用移動平均等平滑處理方法來減少序列的波動性。在時間序列處理階段引入這樣的平穩(wěn)性檢驗,能夠使我們更加有針對性地進(jìn)行平穩(wěn)化處理,從而確保數(shù)據(jù)質(zhì)量。
2.7數(shù)據(jù)分段與序列構(gòu)建
時序數(shù)據(jù)的劃分需要特別注意時間順序,不能采取隨機(jī)抽樣的方式構(gòu)成訓(xùn)練集和測試集,以避免未來數(shù)據(jù)泄漏到訓(xùn)練集中。因此,我們要根據(jù)數(shù)據(jù)的特性和預(yù)測任務(wù)的需求,選擇固定長度分段或動態(tài)分段策略。按時間先后順序劃分?jǐn)?shù)據(jù),確保訓(xùn)練集、驗證集和測試集在時間上不重疊。例如,可以采用前8年的數(shù)據(jù)作為訓(xùn)練集,接下來1年的數(shù)據(jù)作為驗證集,最后1年的數(shù)據(jù)作為測試集。
3基于LSTM模型進(jìn)行訓(xùn)練與優(yōu)化
本文通過對比兩組數(shù)據(jù)處理方法下的LSTM模型訓(xùn)練效果,開展實證研究。第一組數(shù)據(jù)(記為A組)僅進(jìn)行基本的數(shù)據(jù)對齊和缺失值處理,而第二組數(shù)據(jù)(記為B組)則按照“七步數(shù)據(jù)清洗處理法”進(jìn)行更為全面的處理。研究的主要參考指標(biāo)為損失曲線形態(tài),模型性能通過多項關(guān)鍵指標(biāo)進(jìn)行衡量,包括均方誤差(MSE)、平均絕對誤差(MAE)、均方根誤差(RMSE)以及決定系數(shù)(R2)[4-5]。
模型的編寫基于Python語言,訓(xùn)練過程在Ana?conda平臺下完成,主要調(diào)用的庫包括pandas、NumPy、scikit-learn、statsmodels和TensorFlow。為了確保實驗的公正性,模型架構(gòu)在實驗組和對照組中保持一致,均為相同的LSTM模型。在實驗過程中,我們分別在兩組數(shù)據(jù)上訓(xùn)練模型,記錄和比較兩組的性能表現(xiàn)。
在數(shù)據(jù)特征選擇方面,本文采用了以下三類特征:
宏觀經(jīng)濟(jì)數(shù)據(jù):如貨幣供應(yīng)量M2同比增長率(M2_yoy)、國內(nèi)生產(chǎn)總值GDP同比增長率(GDP_yoy)。
公司基本面數(shù)據(jù):包括自由現(xiàn)金流(fcff)、經(jīng)營活動現(xiàn)金流量凈額同比增長率(ocf_yoy)、流動比率(cur?rent_ratio)、總資產(chǎn)凈利率(roa_dp)、凈資產(chǎn)收益率(roe)、資產(chǎn)周轉(zhuǎn)率(assets_turn)、利息費(fèi)用(interest_in?come)、凈利潤(n_income)、營業(yè)收入(revenue)、非流動負(fù)債(total_ncl)。
市場指標(biāo):包括標(biāo)準(zhǔn)化的換手率(turnover_rate_d)、成交量(vol_d)、昨日收盤價(pre_close_d)及日漲跌幅(pct_chg_d)。
LSTM模型架構(gòu)包括兩層堆疊的LSTM單元,每層包含50個單元,并在每一層后加入Dropout層(丟失率為0.2)以防止模型過擬合,提高泛化能力。最后,通過全連接層將LSTM提取的特征映射至最終的預(yù)測結(jié)果。模型訓(xùn)練使用Adam(AdaptiveMomentEstimation)優(yōu)化器,其結(jié)合了動量(Momentum)和RMSProp優(yōu)化算法的優(yōu)點。通過計算梯度的一階矩和二階矩,動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率,實現(xiàn)高效的梯度下降。
在模型訓(xùn)練的結(jié)果分析中,我們觀察到A組數(shù)據(jù)在輸入模型時頻繁出現(xiàn)報錯,且盡管其MSE和MAE值相對較低,R2值較高,但模型的穩(wěn)定性和泛化性較差。而B組數(shù)據(jù)通過“七步數(shù)據(jù)清洗處理法”后,模型訓(xùn)練過程順利,且其擬合效果更優(yōu),模型在測試數(shù)據(jù)上的表現(xiàn)顯著提升。
4結(jié)束語
本文通過優(yōu)化時間序列數(shù)據(jù)處理流程,將平穩(wěn)性檢驗有效地整合到“七步數(shù)據(jù)清洗法”中,解決了股票數(shù)據(jù)在輸入LSTM模型前存在的多種問題。研究表明,經(jīng)過優(yōu)化的數(shù)據(jù)處理不僅減少了模型訓(xùn)練中的錯誤,提高了數(shù)據(jù)質(zhì)量,還顯著提升了LSTM模型的預(yù)測性能。在實驗中,采用優(yōu)化后的數(shù)據(jù)清洗方法的實驗組模型表現(xiàn)優(yōu)于僅進(jìn)行基本數(shù)據(jù)清洗的對照組,驗證了優(yōu)化數(shù)據(jù)處理流程在提高LSTM模型預(yù)測準(zhǔn)確性方面的有效性。未來的研究可以進(jìn)一步探索更多數(shù)據(jù)處理和模型訓(xùn)練的優(yōu)化策略,如引入更先進(jìn)的特征選擇方法、增強(qiáng)模型的泛化能力以及結(jié)合其他深度學(xué)習(xí)模型,以進(jìn)一步提升量化投資中的預(yù)測效果。此外,考慮將多源數(shù)據(jù)融合和實時數(shù)據(jù)處理技術(shù)應(yīng)用于量化投資,將為投資策略的制定提供更為堅實的數(shù)據(jù)支持。
參考文獻(xiàn):
[1]李斌,邵新月,李玥陽.機(jī)器學(xué)習(xí)驅(qū)動的基本面量化投資研究[J].中國工業(yè)經(jīng)濟(jì),2019(8):61-79.
[2]彭燕,劉宇紅,張榮芬.基于LSTM的股票價格預(yù)測建模與分析[J].計算機(jī)工程與應(yīng)用,2019,55(11):209-212.
[3]賀毅岳,李萍,韓進(jìn)博.基于CEEMDAN-LSTM的股票市場指數(shù)預(yù)測建模研究[J].統(tǒng)計與信息論壇,2020,35(6):34-45.
[4]歐陽紅兵,黃亢,閆洪舉.基于LSTM神經(jīng)網(wǎng)絡(luò)的金融時間序列預(yù)測[J].中國管理科學(xué),2020,28(4):27-35.
[5]武博.基于LSTM模型的股票價格預(yù)測[D].大連:大連理工大學(xué),2021.
【通聯(lián)編輯:代影】