劉新月,程希明
(北京信息科技大學(xué) 理學(xué)院,北京 100192)
股票市場是一個(gè)具有投機(jī)性的領(lǐng)域,投資的高回報(bào)往往伴隨著高風(fēng)險(xiǎn),這種特性促使人們開始尋找在獲得高回報(bào)的同時(shí)能夠最大程度降低風(fēng)險(xiǎn)的方法。于是國內(nèi)外許多研究者開始運(yùn)用各種分析方法,試圖能夠準(zhǔn)確預(yù)測出股票價(jià)格趨勢。對股票價(jià)格趨勢的研究可以分為兩類:基本面分析和技術(shù)面分析。其中技術(shù)面分析單純著眼于金融市場最簡單的供求關(guān)系變化規(guī)律,通過交易數(shù)據(jù)構(gòu)建指標(biāo),預(yù)測股價(jià)走勢;而基本面分析則是對股票的內(nèi)在價(jià)值進(jìn)行挖掘和評估。
在對股票的基本面研究中,財(cái)務(wù)指標(biāo)至關(guān)重要,它是企業(yè)總結(jié)和評價(jià)財(cái)務(wù)狀況以及經(jīng)營成果的相對指標(biāo)。陸正飛等[1]以中國A股上市公司為研究對象,研究財(cái)務(wù)指標(biāo)對股票超額回報(bào)的解釋能力,發(fā)現(xiàn)反映公司發(fā)展能力的財(cái)務(wù)指標(biāo)對股票投資者具有較強(qiáng)的指導(dǎo)意義,但存在財(cái)務(wù)指標(biāo)的選取范圍小、投資時(shí)間界定存在偏差等問題。蔣艷霞等[2]總結(jié)國內(nèi)外學(xué)者通過財(cái)務(wù)數(shù)據(jù)預(yù)測股票的研究現(xiàn)狀,得出了財(cái)務(wù)數(shù)據(jù)和數(shù)據(jù)挖掘方法適用于股票收益預(yù)測的結(jié)論,也指出了國內(nèi)的預(yù)測方法較為單一的現(xiàn)狀。隨著國內(nèi)證券市場逐漸完善,越來越多的國內(nèi)研究者開始嘗試使用不同的算法對股價(jià)進(jìn)行預(yù)測分析。多因子模型[3]、神經(jīng)網(wǎng)絡(luò)模型[4]、隨機(jī)森林(random forests,RF)模型[5]、結(jié)合參數(shù)尋優(yōu)算法的機(jī)器學(xué)習(xí)模型[6]等都被應(yīng)用于股價(jià)趨勢預(yù)測。但因?yàn)槊糠N模型都有其局限性,對數(shù)據(jù)的要求都有一定的特點(diǎn),得到的預(yù)測效果并不理想。隨著數(shù)據(jù)挖掘技術(shù)日趨成熟,許多學(xué)者開始嘗試用組合模型的方法來提高股票數(shù)據(jù)與模型的適配性,以得到更加精確的預(yù)測結(jié)果。例如Huang[7]開發(fā)的支持向量回歸(support vector regression,SVR)和遺傳算法(genetic algorithm,GA)組合模型,賈秀娟[8]采用的基于隨機(jī)森林的支持向量機(jī)(support vector machine,SVM)模型,以及傅航聰?shù)萚9]結(jié)合K近鄰算法、支持向量機(jī)算法和時(shí)間序列算法的優(yōu)點(diǎn),整合其結(jié)果提出的綜合預(yù)測算法等,都取得了優(yōu)于基準(zhǔn)的預(yù)測效果。需要注意的是,以往的大多數(shù)研究都沒有處理財(cái)務(wù)指標(biāo)數(shù)據(jù)存在的多重共線性問題。針對這一問題,胡照躍等[10]利用主成分分析法(principal component analysis,PCA)對輸入變量進(jìn)行降維處理;劉玉敏等[11]在模型建立之前選擇隨機(jī)森林和基于分類精度的序列前向選擇方法對指標(biāo)進(jìn)行特征提取,這兩種方法都在不同程度上提升了模型的精確度。
本文綜合考慮6大類財(cái)務(wù)指標(biāo)作為特征變量,以股票財(cái)報(bào)發(fā)布的實(shí)際日期為投資開始日,向后截取一個(gè)月作為研究區(qū)間,以求更大程度地提升數(shù)據(jù)時(shí)效性和預(yù)測準(zhǔn)確性。重視數(shù)據(jù)間共線性問題,在建模時(shí),提出遞歸特征消除法+隨機(jī)森林、主成分分析+支持向量機(jī)、嶺回歸3種具體模型,進(jìn)行對比分析。另外,本文提出對建模時(shí)輸入的訓(xùn)練集和測試集的分配方式進(jìn)行改進(jìn)。在以往的研究中,大多數(shù)是從訓(xùn)練集數(shù)據(jù)中分割一部分作為測試集,本文提出使用與訓(xùn)練集有同種季節(jié)特征的現(xiàn)實(shí)數(shù)據(jù)作為測試集,為模型賦予了充分的現(xiàn)實(shí)應(yīng)用價(jià)值。
股市是一個(gè)復(fù)雜的非線性系統(tǒng),影響因素眾多,所以選取的研究算法應(yīng)該擅長處理非線性高維數(shù)據(jù)。在之前的研究中可以看出,機(jī)器學(xué)習(xí)算法在這方面的表現(xiàn)普遍優(yōu)于傳統(tǒng)的統(tǒng)計(jì)分析方法,所以本文首先選取在股價(jià)預(yù)測方面表現(xiàn)較好的隨機(jī)森林和支持向量機(jī)算法。針對特征變量之間存在的多重共線性,本文采用共線性處理方法和機(jī)器學(xué)習(xí)算法結(jié)合的方法,提出遞歸特征消除+隨機(jī)森林、主成分分析+支持向量機(jī)兩種具體模型,并與專門處理共線性問題的嶺回歸算法進(jìn)行對比。
隨機(jī)森林是一種包含多個(gè)決策樹的分類器,是利用多棵樹對樣本進(jìn)行訓(xùn)練并預(yù)測的一種集成算法。決策函數(shù)為
(1)
式中:MO為取眾數(shù)的函數(shù);hi(xt)為第i棵決策樹對測試集樣本xt的決策結(jié)果;Ntree為決策樹個(gè)數(shù)。
針對特征提取問題,隨機(jī)森林可以在決定類別時(shí),利用袋外誤差原理評估特征變量的重要性,再結(jié)合遞歸特征消除法對不同的特征組合進(jìn)行交叉驗(yàn)證,通過計(jì)算其決策系數(shù)之和,得到不同特征組合的重要程度,選取出最佳的特征組合,從而克服變量間存在的共線性問題。特征X的重要性為
(2)
式中:Ei1為第i棵決策樹使用相應(yīng)子數(shù)據(jù)集袋外數(shù)據(jù)計(jì)算的袋外誤差;Ei2為隨機(jī)對袋外的所有樣本的特征X加入噪音干擾后的袋外誤差。
因?yàn)殡S機(jī)森林可以看作是將決策樹模型嵌入到裝袋算法框架中,所以參數(shù)尋優(yōu)的方式可以從框架和決策樹兩方面考慮。首先對RF框架進(jìn)行參數(shù)尋優(yōu),主要是對決策樹個(gè)數(shù)(n_estimators)進(jìn)行調(diào)節(jié),將其他參數(shù)設(shè)為默認(rèn)值,設(shè)置n_estimators的參數(shù)范圍為(1,100),步長為1,對訓(xùn)練集進(jìn)行10折交叉驗(yàn)證,得到使準(zhǔn)確率最高的決策樹個(gè)數(shù)。在對決策樹參數(shù)進(jìn)行調(diào)節(jié)時(shí),主要考慮最大特征數(shù)(max_features),將n_estimators設(shè)為前面求解出的最優(yōu)值,其他參數(shù)設(shè)為默認(rèn)常數(shù),訓(xùn)練集中有19個(gè)股票因子,所以max_features的范圍是(1,18),步長為1,同樣采取10折交叉驗(yàn)證,得出最優(yōu)的最大特征數(shù)。最后利用尋得的最優(yōu)參數(shù)組合對模型進(jìn)行訓(xùn)練。
支持向量機(jī)是一類按監(jiān)督學(xué)習(xí)方式對數(shù)據(jù)進(jìn)行二元分類的廣義分類器,是處理非線性分類問題的常用方法。但支持向量機(jī)對于處理多重共線性問題的能力較弱,所以在建模之前需運(yùn)用主成分分析法進(jìn)行數(shù)據(jù)降維,消除多重共線性。
在處理具有非線性且高數(shù)據(jù)維度特點(diǎn)的股市問題時(shí),SVM需要用到核函數(shù)來計(jì)算映射函數(shù)的內(nèi)積。在4種核函數(shù)中,徑向基核函數(shù)(radial basis function,RBF)核是處理非線性問題的首選,因?yàn)橹粠в袘土P參數(shù)C的線性核與帶有核參數(shù)(C,σ)的RBF核具有相同的性能。對于某些參數(shù),Sigmoid核的行為也類似于RBF核。另外,超參數(shù)的數(shù)量影響了模型選擇的復(fù)雜性,多項(xiàng)式核比RBF核具有更多的超參數(shù)。所以本文選取RBF核函數(shù),構(gòu)造最優(yōu)化問題:
(3)
決策函數(shù)為
(4)
在非線性支持向量機(jī)的具體應(yīng)用中,參數(shù)的調(diào)節(jié)非常重要。對于RBF的參數(shù)尋優(yōu),本文使用10折交叉驗(yàn)證對核參數(shù)(C,σ)進(jìn)行網(wǎng)格搜索。兩個(gè)參數(shù)的初始搜索范圍為(C>0,σ>0),最優(yōu)參數(shù)組合需要不斷進(jìn)行調(diào)試來尋找,首先進(jìn)行粗網(wǎng)絡(luò)的尋找,在網(wǎng)格上確定一個(gè)“較好的”區(qū)域之后,就可以對該區(qū)域進(jìn)行更精細(xì)的網(wǎng)格搜索。因?yàn)榻徊骝?yàn)證的準(zhǔn)確性是正確分類的數(shù)據(jù)的百分比,所以交叉驗(yàn)證搜索出的最優(yōu)參數(shù)組合是使訓(xùn)練集分類正確率最高的參數(shù)組合。本文中SVM建模最終尋找出的精細(xì)網(wǎng)格搜索范圍為
(C:[0.1,1,10,20],σ:[0.01,0.1,1,10])
嶺回歸是針對自變量之間存在多重共線性問題提出的一種改進(jìn)最小二乘回歸的方法。
嶺回歸算法也可以處理分類數(shù)據(jù)。嶺回歸算法中有分類器變體RidgeClassifier,可以在回歸的基礎(chǔ)上,將二進(jìn)制目標(biāo)轉(zhuǎn)換為{-1,1},然后將該問題視為回歸任務(wù),優(yōu)化與回歸模式相同的目標(biāo)函數(shù),預(yù)測類對應(yīng)回歸預(yù)測的符號函數(shù)。分類型優(yōu)化問題為
(5)
決策函數(shù)為
f(x)=sign(X·β*)
(6)
式(5)、(6)中:λ為嶺參數(shù);β*為系數(shù)最優(yōu)解。
嶺回歸算法中需要估計(jì)的參數(shù)為嶺參數(shù)λ>0,在尋找最優(yōu)參數(shù)時(shí),使用10折交叉驗(yàn)證的網(wǎng)格搜索,首先確定粗網(wǎng)格搜索范圍,一般不宜過大,本文設(shè)置為[0.001,0.01,0.1,1,10,100],第一次搜索得出粗略的參數(shù)值,再圍繞此值展開精細(xì)搜索,直到參數(shù)值不再變化,即為最優(yōu)嶺參數(shù)。
本文使用通過Choice金融終端獲取的創(chuàng)業(yè)板股票的年度報(bào)告數(shù)據(jù),選取報(bào)告中的19個(gè)財(cái)務(wù)指標(biāo)作為特征變量,具體如表1所示,選取年報(bào)公布日期后一個(gè)月的股票收盤價(jià)的漲跌類別作為因變量。具體為:
表1 財(cái)務(wù)指標(biāo)類別及其符號
1)訓(xùn)練集:提取2019年創(chuàng)業(yè)板股票的年報(bào)數(shù)據(jù)和年報(bào)公布后一個(gè)月內(nèi)的收盤價(jià)漲跌趨勢,去除ST股票和具有缺失值的股票后,剩余638只股票。
2)測試集:提取2020年創(chuàng)業(yè)板股票的年報(bào)數(shù)據(jù)和年報(bào)公布后一個(gè)月內(nèi)的收盤價(jià)漲跌趨勢,去除ST股票和具有缺失值的股票后,剩余149只股票。
需要注意的是,許多股票在季度報(bào)告或者年度報(bào)告中都會(huì)有分紅配股的操作出現(xiàn)。對公司來說分紅配股可以壯大經(jīng)營,擴(kuò)大公司資金實(shí)力,但是分紅配股的實(shí)施與后期除權(quán)除息操作會(huì)造成股價(jià)陡然下跌,所以需要對有分紅配股操作的股票收盤價(jià)進(jìn)行前復(fù)權(quán),即保持現(xiàn)有價(jià)位不變,將以前的價(jià)格縮減,將除權(quán)前的K線向下平移,使圖形吻合,保持股價(jià)走勢的連續(xù)性。前復(fù)權(quán)可以消除由于除權(quán)除息造成的價(jià)格、指標(biāo)的走勢畸變,避免因除權(quán)除息導(dǎo)致的股價(jià)下跌對模型預(yù)測的影響。
本文進(jìn)行創(chuàng)業(yè)板股票價(jià)格漲跌預(yù)測的流程如圖1所示。
圖1 創(chuàng)業(yè)板股價(jià)預(yù)測流程
在數(shù)據(jù)預(yù)處理階段需要對原始的訓(xùn)練集和測試集數(shù)據(jù)進(jìn)行簡單的處理。對所有數(shù)據(jù)進(jìn)行缺失值、異常值檢測和剔除,然后對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化來消除量綱影響。將因變量由連續(xù)型變量轉(zhuǎn)化為{0,1}型分類變量。
對數(shù)據(jù)預(yù)處理后的特征變量進(jìn)行相關(guān)性分析,得到相關(guān)性熱力圖,如圖2所示。熱力圖顯示有多處顏色呈現(xiàn)深藍(lán)色,表明特征之間的正相關(guān)性較強(qiáng),顏色趨向白色表明特征之間的負(fù)相關(guān)性較強(qiáng)。由此可以得出結(jié)論,特征變量之間存在多重共線性。因此采取共線性處理是很有必要的。
圖2 特征變量相關(guān)性熱力圖
分別使用遞歸特征消除+隨機(jī)森林、主成分分析+支持向量機(jī)、嶺回歸3種模型,在訓(xùn)練集上訓(xùn)練模型并且在測試集上進(jìn)行測試,對比3種模型的數(shù)據(jù)適配性及預(yù)測準(zhǔn)確性。本文對于模型分類性能評估選用的指標(biāo)是預(yù)測精度、KS統(tǒng)計(jì)值以及AUC統(tǒng)計(jì)值。預(yù)測精度為
(7)
KS統(tǒng)計(jì)值為
(8)
AUC統(tǒng)計(jì)值為
(9)
使用3種不同的模型訓(xùn)練數(shù)據(jù)集,得到的模型性能指標(biāo)整理后如表2所示??梢钥闯觯\(yùn)用遞歸特征消除+隨機(jī)森林算法擬合的模型,在訓(xùn)練集和測試集上的3種評價(jià)指標(biāo)差值都較大,模型在訓(xùn)練集和測試集上的表現(xiàn)相差較大,表明存在過擬合現(xiàn)象,模型不適用于此類股票數(shù)據(jù),故舍棄該模型。主成分分析+支持向量機(jī)組合模型在預(yù)測精度、KS統(tǒng)計(jì)值以及AUC三種評價(jià)指標(biāo)上均表現(xiàn)良好。本文的訓(xùn)練集和測試集是取自不同年份、相同月份的股票數(shù)據(jù),而模型在訓(xùn)練集和測試集上的效果相差很小,說明模型對于此類股票數(shù)據(jù)的適配性良好。嶺回歸分類器算法適用于處理多重共線性的問題,所以在此類股票數(shù)據(jù)上的表現(xiàn)很好,達(dá)到了和主成分分析+支持向量機(jī)組合模型同樣高的預(yù)測精度,而另外兩類指標(biāo)AUC和KS具有相似的判別標(biāo)準(zhǔn),即在訓(xùn)練集和測試集上的分?jǐn)?shù)相同的情況下,差異越小,說明模型的適配性越高,所以在數(shù)據(jù)適配性的方面,嶺回歸表現(xiàn)不如主成分分析+支持向量機(jī)組合模型。
表2 三種模型效果評估
本文應(yīng)用機(jī)器學(xué)習(xí)理論,基于股票財(cái)務(wù)指標(biāo)數(shù)據(jù)的多重共線性,提出遞歸特征消除法+隨機(jī)森林、主成分分析+支持向量機(jī)、嶺回歸3種模型,對創(chuàng)業(yè)板股票短期價(jià)格進(jìn)行預(yù)測并對比模型效果。此外,本文在訓(xùn)練集及測試集的選擇方面進(jìn)行了創(chuàng)新,應(yīng)用同季度不同年份的股票數(shù)據(jù)作為訓(xùn)練集和測試集,最大程度消除季節(jié)性特征,使模型的實(shí)際應(yīng)用價(jià)值有所提升。從模型的仿真結(jié)果來看,主成分分析與支持向量機(jī)的組合模型有著高達(dá)77.18%的預(yù)測精確率,且模型在訓(xùn)練集數(shù)據(jù)和測試集數(shù)據(jù)上均有良好的表現(xiàn),有極高的數(shù)據(jù)適配性,將此模型用于創(chuàng)業(yè)板股票的短期預(yù)測有著較強(qiáng)的準(zhǔn)確性和可行性。