林娜娜,秦江濤
(1. 上海大學(xué) 管理學(xué)院,上海 200444;2. 上海理工大學(xué) 管理學(xué)院,上海 200093)
股票市場研究中,股票漲跌的預(yù)測一直是關(guān)注的熱點(diǎn)。吳微等[1]通過BP神經(jīng)網(wǎng)絡(luò)算法對滬市綜合指數(shù)漲跌情況進(jìn)行預(yù)測,達(dá)到了良好的預(yù)測精度,但神經(jīng)網(wǎng)絡(luò)模型對個股的走勢預(yù)測效果欠佳。劉道文等[2]采用基于支持向量機(jī)的股票選擇模型,并以交叉驗證法確定了最佳回歸參數(shù),并以此建立了預(yù)測模型,對上海證券交易所股票價格指數(shù)預(yù)測效果比較理想,但對于核函數(shù)和最佳參數(shù)的選取還有提升的空間。戴鐘儀[3]運(yùn)用關(guān)聯(lián)規(guī)則,對滬深300指數(shù)成分股進(jìn)行漲跌預(yù)測,論證了股票漲跌過程中存在著一定的規(guī)律。
經(jīng)典機(jī)器學(xué)習(xí)算法之一的神經(jīng)網(wǎng)絡(luò)算法雖然預(yù)測較為精準(zhǔn),但是計算量繁瑣。而支持向量機(jī)對缺失數(shù)據(jù)敏感,會極大地影響輸出結(jié)果,不能適應(yīng)目前股票預(yù)測模型的實際需要。因此,諸多學(xué)者建議采用模型組合的方式來提升預(yù)測準(zhǔn)確度。隨機(jī)森林算法是一種模型組合,應(yīng)用到不同的領(lǐng)域上均獲得不俗的成果[4-7]。基于隨機(jī)森林算法的優(yōu)勢,將該算法運(yùn)用到股票漲跌預(yù)測中,能夠避免上述預(yù)測模型的不足。根據(jù)現(xiàn)有文獻(xiàn)可知[8-10],隨機(jī)森林法預(yù)測主要是先對建立的初始指標(biāo)體系進(jìn)行篩選,將篩選后的指標(biāo)數(shù)據(jù)作為影響變量代入到隨機(jī)森林中,漲跌情況作為響應(yīng)變量輸出。但現(xiàn)有方法對隨機(jī)森林本身的模型優(yōu)化有所欠缺,不能進(jìn)一步提升預(yù)測精確度。
本文在此基礎(chǔ)上對隨機(jī)森林算法進(jìn)行系統(tǒng)性優(yōu)化,通過對隨機(jī)森林中的各項重要參數(shù)進(jìn)行逐步測試,如樹節(jié)點(diǎn)的變量數(shù)(簡稱:mtry)、樹的個數(shù)(簡稱:ntree)、OOB(out of bag)誤分率以及變量重要性估計等來提升預(yù)測準(zhǔn)確度,從而得到預(yù)測模型,研究其對股票市場投資決策存在的實際應(yīng)用價值。
為了建立A股股票漲跌預(yù)測模型,首先要確定必要的影響指標(biāo)作為模型的輸入,必要的響應(yīng)變量作為模型的輸出,因為構(gòu)建股票指標(biāo)體系是進(jìn)行后續(xù)評價和綜合分析的基礎(chǔ)。
吳微等[1]選取成交額、成交量、漲跌幅等股票市場因子作為神經(jīng)網(wǎng)絡(luò)研究方法中的指標(biāo);國琳[11]等利用4個方面財務(wù)因子包括盈利能力、償債能力、資產(chǎn)營運(yùn)能力、成長能力運(yùn)用到股票價格預(yù)測中,用實證分析說明其研究的實際價值;謝國強(qiáng)[12]選取股票的開盤價、最高價、最低價、收盤價等市場因子作為支持向量回歸機(jī)的輸入向量,證明該預(yù)測模型具有較好的預(yù)測精度和泛化能力。但無論是運(yùn)用股票市場因子或者財務(wù)因子作為指標(biāo)都較不全面,仍有需要改進(jìn)的地方。
股票的漲跌問題是由復(fù)雜因素和環(huán)境共同影響導(dǎo)致的,所以本文的初始選股指標(biāo)體系結(jié)合股票市場因子和財務(wù)因子共同作為初始指標(biāo)體系?;跁增┑萚13]和許華豐等[14]對股票指標(biāo)體系的設(shè)計原則,參考其他學(xué)者的指標(biāo)選取,同時剔除了有缺失數(shù)據(jù)的指標(biāo)之后,建立以下基本指標(biāo)體系的初步框架,如表1所示。
表1 初始股票指標(biāo)體系Tab.1 Initial stock index system
以表1中26個指標(biāo)作為初始影響變量,根據(jù)預(yù)測模型的未來性,將每只股票下月的漲跌數(shù)NMF與0比較,建立響應(yīng)變量。當(dāng)NMFi≥0,歸為一類,當(dāng)NMFi<0歸為另一類。其中NMFi是第i只股票下月的漲跌數(shù),n為選取行業(yè)的股票數(shù)。
進(jìn)行相關(guān)性分析的100只樣本股票,它們的26個影響變量選取時間為2016年6月和2016年7月的月線數(shù)據(jù),響應(yīng)變量選取時間對應(yīng)為2016年7月和2016年8月月度漲跌情況,其中市場因子和財務(wù)因子的數(shù)據(jù)均來自于東方財富Choice金融客戶端和中國證監(jiān)會指定信息披露的網(wǎng)站:巨潮資訊網(wǎng)。這100只股票皆來自于軟件和信息技術(shù)服務(wù)業(yè),是信息傳輸、軟件和信息技術(shù)服務(wù)業(yè)中的子行業(yè)。
為了通過篩選指標(biāo)來建立合適的指標(biāo)體系,達(dá)到最終對股票漲跌預(yù)測。采用SPSS數(shù)理統(tǒng)計軟件進(jìn)行Spearman相關(guān)分析,分析每個影響變量與響應(yīng)變量之間的相關(guān)系數(shù),顯著性檢驗選擇的是雙尾檢驗。根據(jù)得出的相關(guān)系數(shù)數(shù)值大小,從大到小進(jìn)行排序,如表2所示。
表2 Spearman相關(guān)分析結(jié)果Tab.2 Spearman correlation analysis results
普遍情況下當(dāng)顯著度數(shù)值小于0.05,表明其相關(guān)系數(shù)數(shù)值是可信的,而不是因為樣本抽樣誤差所產(chǎn)生的。通過觀察可以發(fā)現(xiàn),顯著度小于0.05的前14個指標(biāo)的相關(guān)系數(shù)明顯比后12個指標(biāo)來得大。綜合考慮各個指標(biāo)的相關(guān)系數(shù)大小和對應(yīng)的顯著度,保留前14個影響指標(biāo)加入到一次篩選后的指標(biāo)體系中。
為了保證指標(biāo)與指標(biāo)間存在較高的相異性,去除指標(biāo)間存在顯著相關(guān)的冗余指標(biāo),得到精簡的指標(biāo)體系,從而更進(jìn)一步優(yōu)化模型。同樣通過SPSS進(jìn)行Pearson相關(guān)分析,分析一次篩選后的14個指標(biāo)之間的相關(guān)系數(shù)。顯著性檢驗選擇的是雙尾檢驗。去除標(biāo)準(zhǔn):當(dāng)兩個影響變量之間高度相關(guān)時,考量這兩個影響變量與響應(yīng)變量之間的相關(guān)系數(shù),舍去相關(guān)系數(shù)小的,保留相關(guān)系數(shù)大的。經(jīng)過二次篩選后的新指標(biāo)構(gòu)建了本文的二次篩選13指標(biāo)體系,如表3所示。
表3 二次篩選股票指標(biāo)體系Tab.3 Secondary screening of stock index system
隨機(jī)森林算法在樣本數(shù)據(jù)分布不平均、高緯度、存在部分特征缺失的情況下,仍能維持一定的準(zhǔn)確度,并且可以在運(yùn)算量沒有明顯增加的條件下提升準(zhǔn)確度。在處理樣本數(shù)據(jù)時同樣表現(xiàn)出較大優(yōu)勢,具備很好的抵抗噪音的能力以及不易陷入過擬合。隨機(jī)森林參數(shù)中的mtry和ntree,可用于協(xié)調(diào)分類精確性與多樣性之間的平衡,OOB誤分率可用于對隨機(jī)森林的泛化誤差進(jìn)行無偏估計,變量重要性估計能夠計算每個特征變量對分類結(jié)果的重要性。因此,本文在實證研究中對隨機(jī)森林中的各項重要參數(shù)進(jìn)行測試,以提升預(yù)測準(zhǔn)確度。
具體研究應(yīng)用ChiMerge算法對原始數(shù)據(jù)進(jìn)行預(yù)處理。ChiMerge依賴于卡方分析,如果兩個相鄰區(qū)間的卡方值很低,則表明兩者具有非常類似的類分布,那么這兩個區(qū)間便能夠合并;否則,它們應(yīng)當(dāng)保持獨(dú)立,從而達(dá)到精確離散化的目的。
二次篩選后的指標(biāo)體系共有13個指標(biāo),分別實驗得出當(dāng)mtry為1~13時每次實驗的誤分率值。為了保證實驗結(jié)果的有效性,重復(fù)以上實驗多次,取每個mtry值的誤分率均值作為判別mtry合適值的標(biāo)準(zhǔn)。實驗結(jié)果如圖1所示。
圖1 OOB誤分率均值變化Fig.1 Change of the mean error rate
觀察圖1可知,當(dāng)mtry=3時,誤■分率達(dá)到最低。符合目前的研究[15],mtry多取為,M為指標(biāo)總個數(shù)。
基于上述確定的mtry=3,對隨機(jī)森林另一個重要參數(shù)ntree進(jìn)行隨機(jī)建模,尋求一個適當(dāng)?shù)膎tree。通過實驗,圖形化展示誤分率與樹的數(shù)量之間的變化關(guān)系,如圖2所示。
圖2 誤分率與樹的數(shù)量之間變化關(guān)系Fig.2 Relationship between the error rate and number of trees
觀察圖2可知,當(dāng)ntree=200之后,誤分率趨于平穩(wěn)且可以使模型分類精度達(dá)到要求。符合目前學(xué)者關(guān)于隨機(jī)森林的研究[15],ntree值皆以大于100棵為合適。
區(qū)間數(shù)量對預(yù)測的準(zhǔn)確度會有顯著的影響。根據(jù)實驗經(jīng)驗可得,本文的樣本數(shù)量為200,合適的區(qū)間數(shù)量為20~29,運(yùn)用R語言對應(yīng)當(dāng)在這個范圍內(nèi)劃分多少區(qū)間數(shù)才能使OOB誤分率最低進(jìn)行研究。在基于mtry=3和ntree=200,再調(diào)用經(jīng)過ChiMerge離散化的2016年6月、7月、8月二次篩選后的13個指標(biāo)數(shù)據(jù),進(jìn)行隨機(jī)森林的OOB誤分率測試。詳細(xì)步驟如下:
a. 使用ChiMerge算法對連續(xù)性原始數(shù)據(jù)進(jìn)行20~29個區(qū)間的離散化處理,以下步驟以25區(qū)間為例,其他9個區(qū)間同理可得。
在R語言中,加載randomForest包,編寫語句訓(xùn)練一個隨機(jī)森林,輸出模型的OOB誤分率。由于隨機(jī)森林的隨機(jī)性,為了保證測試結(jié)果的穩(wěn)定與可靠,同一個實驗重復(fù)50次,記錄每一次的OOB值,如圖3所示。由結(jié)果可知,劃分25個區(qū)間時平均OOB誤分率的值是26.1%,訓(xùn)練模型的準(zhǔn)確率是73.9%。
圖3 每個實驗的誤分率數(shù)值Fig.3 Error rate of each experiment
b. 對上述過程做剩余9個區(qū)間實驗,得出結(jié)果如表4所示。
表4 OOB誤分率和精確度一覽表Tab.4 Model error rate and accuracy list
分析圖4可以發(fā)現(xiàn),隨著區(qū)間數(shù)量的變化,隨機(jī)森林模型的OOB誤分率和精確度都在不斷變化。隨著區(qū)間數(shù)量的增加,模型的性能有所上升,達(dá)到22區(qū)間數(shù)量時性能最優(yōu),精確度達(dá)到0.743 3,接著區(qū)間數(shù)量再增加之后,性能逐漸有所下降。所以,本文選定進(jìn)行22區(qū)間數(shù)量劃分時會使得隨機(jī)森林模型的精確度達(dá)到最高。
圖4 每個離散區(qū)間的誤分率均值Fig.4 Mean error rate in each discrete interval
在最佳22區(qū)間數(shù)量劃分的基礎(chǔ)上,對隨機(jī)森林進(jìn)行重要性估計測試。本文選用的重要性估計方法是基于Gini分類節(jié)點(diǎn)純度下降量的方法。使用R語言importance()命令對模型指標(biāo)進(jìn)行重要性測試,得到指標(biāo)重要性結(jié)果,如圖5所示。
圖5 指標(biāo)的重要性排序Fig.5 Rank importance of indexes
因為模型的特征變量中不乏噪音指標(biāo),這會影響隨機(jī)森林算法的準(zhǔn)確性,所以對每個特征的重要性值進(jìn)行排序后逐步從重要性最低的開始剔除。目前股票預(yù)測中,最低指標(biāo)數(shù)普遍為6個,過少的指標(biāo)數(shù)量會導(dǎo)致模型的可解釋性降低和預(yù)測結(jié)果偶然性的增加。
因此,本文在第一次實驗中,篩除重要性最低的ST指標(biāo),第二次實驗在前一次實驗的基礎(chǔ)上再篩除PB指標(biāo),第三次實驗在前兩次的基礎(chǔ)上再篩除SA指標(biāo),依此類推,直到剩下6個指標(biāo)為止,共實驗7次。每個模型為了保證結(jié)果的穩(wěn)定性重復(fù)50次,觀察實驗結(jié)果,如下頁表5所示。
表5 重要性排序篩選結(jié)果Tab.5 Sort results by importance
觀察表5可知,進(jìn)行重要性篩選能使訓(xùn)練模型精確度均值逐漸提高,但到達(dá)最大值后又開始減小。所以實驗再篩除PS指標(biāo)的訓(xùn)練模型精確度為0.778 4,是7次實驗中最優(yōu)值。篩選后的指標(biāo)體 系 包 含 MFR, MF, TAT, CLOSE, SVA,TR和EPS這7個指標(biāo),命名為重要性篩選7指標(biāo)模型。
未經(jīng)重要性排序篩選之前的最佳精確度均值只有0.743 3,而經(jīng)過重要排序篩選后的精確度均值提高了3.51%。并且在7次實驗中,每一次實驗的模型精確度均值皆不同程度高于未經(jīng)重要性排序篩選之前的精確度均值。由此可見,對隨機(jī)森林進(jìn)行重要性估計測試可提升模型精確度。
為了使對比結(jié)果便于觀察,基于研究得出的最佳劃分區(qū)間22個區(qū)間數(shù)為基礎(chǔ),對比4個指標(biāo)模型的50次實驗結(jié)果,可以得出結(jié)果,如圖6所示。
圖6 4個指標(biāo)模型的OOB誤分率對比Fig.6 Error rate comparison between four index models
使用SPSS統(tǒng)計軟件對4個模型的OOB誤分率數(shù)據(jù)進(jìn)行描述性統(tǒng)計,結(jié)果如表6所示.
表6 4個模型的描述性統(tǒng)計Tab.6 Descriptive statistics of four models
分析圖6和表6,可以得出:從模型的OOB誤分率來看,一次篩選得出的14個指標(biāo)整體比初始26個指標(biāo)的OOB誤分率低且更加穩(wěn)定,表明隨機(jī)森林在處理高緯度數(shù)據(jù)方面的優(yōu)勢,可以在一定程度上無需作特征選擇;二次篩選的13個指標(biāo)幾乎包含了一次篩選后的14個指標(biāo)帶有的信息量,結(jié)果既相近又穩(wěn)定;重要性篩選7指標(biāo)模型的OOB誤分率比上述3個模型的均低得多,且誤分率較穩(wěn)定。
由此可見,相關(guān)性研究大幅度地篩選出了冗余的指標(biāo),小幅度地提升了隨機(jī)森林模型的精確度,在此基礎(chǔ)上的重要性估計測試能夠在很大程度上提高隨機(jī)森林模型整體的精確度。
選定重要性篩選7指標(biāo)模型作為本文的股票漲跌預(yù)測模型,將2016年6月與7月的影響變量離散化數(shù)據(jù)和對應(yīng)7月和8月的漲跌情況代入到模型中,對隨機(jī)森林模型進(jìn)行訓(xùn)練。根據(jù)訓(xùn)練之后的模型,將8月所需預(yù)測的數(shù)據(jù)代入,使用randomForest包中的predict()命令預(yù)測出9月股票市場的漲跌情況。
由表7進(jìn)行統(tǒng)計分析可知,在樣本100只股票中,對下月漲跌情況預(yù)測的總體精確度達(dá)到83%,平均總體漲跌幅為–3.234 17。其中,預(yù)測將要上漲的30只股票,預(yù)測正確22只,預(yù)測精確度達(dá)到73.33%,其漲跌幅均值為1.578 04,比總體平均高了4.812 21。預(yù)測將會下跌的70只股票,預(yù)測正確61只,預(yù)測精確度達(dá)到87.14%,其漲跌幅均值為–5.296 55,比總體平均低了 2.062 38。從整體來看,該模型的性能優(yōu)越,對協(xié)助投資決策有著實際應(yīng)用價值。
表7 樣本股票的預(yù)測結(jié)果Tab.7 Forecast results for the sample stock
為了進(jìn)一步評價隨機(jī)森林算法建立的模型,本文運(yùn)用經(jīng)典機(jī)器學(xué)習(xí)算法之一的二元logistic回歸,通過相同的訓(xùn)練樣本建立了回歸模型,從而來比較不同建模方法所構(gòu)建模型的預(yù)測能力。
通過研究圖7可知,隨機(jī)森林和二元logistic回歸對訓(xùn)練模型的預(yù)測準(zhǔn)確率水平相差不多,隨機(jī)森林略高于二元logistic回歸。但對測試樣本進(jìn)行預(yù)測方面,二元logistic回歸預(yù)測準(zhǔn)確度和穩(wěn)定性明顯不如隨機(jī)森林。隨機(jī)森林在數(shù)據(jù)集上表現(xiàn)出很大優(yōu)勢,因為取樣隨機(jī)和特性選擇隨機(jī)的引入,使得隨機(jī)森林具備很好的抵抗噪音的能力,而且不易陷入過擬合。而二元logistic回歸陷入了過擬合,雖然訓(xùn)練數(shù)據(jù)上能夠較好擬合這些數(shù)據(jù),但不能對于訓(xùn)練數(shù)據(jù)以外的其他數(shù)據(jù)進(jìn)行很好的預(yù)測。
圖7 兩種建模方法的準(zhǔn)確率對比Fig.7 Accuracy comparison of two modeling methods
本文采用機(jī)器學(xué)習(xí)中的隨機(jī)森林算法以及R語言、SPSS研究工具,對軟件和信息技術(shù)服務(wù)業(yè)的100只股票2016年9月的漲跌情況進(jìn)行預(yù)測。
主要通過相關(guān)性研究中的Spearman和Pearson方法,對初始指標(biāo)體系進(jìn)行篩選,剔除了冗余指標(biāo),精簡了指標(biāo)體系。運(yùn)用ChiMerge算法對指標(biāo)數(shù)據(jù)進(jìn)行離散化,并基于隨機(jī)森林的重要性估計方法逐次剔除重要性低的指標(biāo)。最后,通過隨機(jī)森林和二元logistic回歸實證對比證明,隨機(jī)森林算法的性能穩(wěn)定且優(yōu)越。本文建立的隨機(jī)森林模型在軟件和信息技術(shù)服務(wù)業(yè)取得了不錯的預(yù)測結(jié)果,在接下的研究中,作者將繼續(xù)探究隨機(jī)森林在其他行業(yè)中的普適性,從而進(jìn)一步論證實驗結(jié)果。