張雪芳 溫 馨
(武漢郵電科學(xué)研究院 武漢 430074)
在我國(guó)經(jīng)濟(jì)快速發(fā)展的背景下,股票市場(chǎng)應(yīng)運(yùn)而生。股市是股票發(fā)行流通的平臺(tái),同時(shí)也是上市公司募集資本的重要途經(jīng)之一。另一方面,隨著人民經(jīng)濟(jì)水平的提高和股票市場(chǎng)的發(fā)展,進(jìn)行股票投資也成為了人們的主要理財(cái)方式之一。股票投資的目的是,如何在最小化風(fēng)險(xiǎn)的情況下獲得投資收益的最大化,而如何選擇投資策略,成為眾多投資者面臨的主要問題。本文選擇XGBoost 算法作為基礎(chǔ),構(gòu)建股票指數(shù)漲跌預(yù)測(cè)模型。通過以往的研究結(jié)果,選取財(cái)報(bào)中的相關(guān)數(shù)據(jù)作為輸入特征,對(duì)后一天的漲跌情況進(jìn)行預(yù)測(cè),并通過網(wǎng)格搜索法確立最佳權(quán)重。本文用二元數(shù)據(jù)表示模型預(yù)測(cè)的結(jié)果,“+1”即為上漲,“-1”即為下跌,并對(duì)不同年份、不同模型的效果進(jìn)行比較,判斷模型的預(yù)測(cè)效果。本文進(jìn)一步比較了LR算法、SVM算法、隨機(jī)森林算法和XGBoost 算法的優(yōu)劣,證明XGBoost 模型在股指預(yù)測(cè)中有較優(yōu)的效果,最后得出基于XGBoost 模型量化分析的結(jié)論建議。
XGBoost 算法是基于Adaboost 和GBDT 等提升樹算法基礎(chǔ)上進(jìn)行優(yōu)化的算法,它是通過集成多個(gè)弱分類器來實(shí)現(xiàn)學(xué)習(xí)的。通過一個(gè)含有n 條記錄以及m 個(gè)解釋變量的訓(xùn)練集D={(xi,yi)},|D|=n,xi∈Rm,yi∈R,第i個(gè)樣本所預(yù)測(cè)的值,可以表示為由k個(gè)決策樹聯(lián)合的模型,記作:其中,fk代表第k個(gè)決策樹,F(xiàn)是函數(shù)空間,代表所有決策樹的集合。
與GBDT 的目標(biāo)函數(shù)不同,XGBoost 在原有的目標(biāo)函數(shù)之上增加了正則化項(xiàng),來減弱過擬合,增強(qiáng)泛化性。目標(biāo)函數(shù)公式如下:
其中,函數(shù)l 可以選擇不同的損失函數(shù),Ω(fk)代表第k棵樹的懲罰項(xiàng),具體公式如下:
其中,wk,j代表第k 顆樹中第j 個(gè)葉子的權(quán)值,T 代表葉子節(jié)點(diǎn)數(shù),γ和λ是用來平衡重要性的參數(shù)。通過對(duì)L 式進(jìn)行二階泰勒級(jí)數(shù)的近似展開,得到如下公式。
其中,pi是的Logit變換。
XGBoost算法的優(yōu)點(diǎn)如下:
1)模型支持并行化運(yùn)算,計(jì)算效率更高;
2)算法支持列抽樣,不僅可以降低過擬合,增強(qiáng)泛化能力,還可以有效減少計(jì)算量;
3)有缺失值處理的機(jī)制,對(duì)缺失的數(shù)據(jù),能夠自動(dòng)學(xué)習(xí)出樹節(jié)點(diǎn)的分裂選擇方向;
4)相比于GBDT 僅使用了一階導(dǎo)信息,XGBoost 使用的是二階泰勒級(jí)數(shù)進(jìn)行展開,可以學(xué)習(xí)到更精細(xì)的數(shù)據(jù)模式,增強(qiáng)模型準(zhǔn)確性;
5)在損失中增加了L1、L2 正則化,可以大大提高泛化能力。
滬深300 指數(shù)是從滬深兩個(gè)市場(chǎng)中選取的排名前300 的股票組成的,具有流動(dòng)性較好并且資金規(guī)模較大的特點(diǎn)。其中的股票多為A 股中的市值較大的公司,市場(chǎng)代表性好,能夠較好地反映市場(chǎng)龍頭公司的股票價(jià)格走勢(shì)。受新冠疫情造成的全球股市低迷的影響,本文選取了2012 年1 月1 日到2019年12月31日,共計(jì)1945個(gè)交易日的采集數(shù)據(jù)進(jìn)行研究,采集了年度財(cái)務(wù)報(bào)告中的數(shù)據(jù)比率指標(biāo)進(jìn)行預(yù)測(cè)。本文所采用的財(cái)務(wù)指標(biāo)特征和股價(jià)數(shù)據(jù)均來自于瑞斯數(shù)據(jù)庫(kù)。
在實(shí)際量化投資模型構(gòu)建時(shí),由于原始數(shù)據(jù)量比較大,并且存在著數(shù)據(jù)缺失、量綱不統(tǒng)一的臟數(shù)據(jù),因此首先有必要對(duì)數(shù)據(jù)進(jìn)行處理。
直接刪除異常值樣本簡(jiǎn)單粗暴,但是存在一定問題。刪除特異值樣本導(dǎo)致樣本在這一范圍區(qū)間內(nèi)的數(shù)目減少,致使樣本總體分布發(fā)生改變,對(duì)模型效果有不利的影響。因此本文采用的處理方法是,將財(cái)務(wù)指標(biāo)中數(shù)據(jù)分布大于95%分位點(diǎn)的數(shù)據(jù)用95%分位點(diǎn)的數(shù)據(jù)值替換,而小于5%分位點(diǎn)的數(shù)據(jù)用5%分位點(diǎn)的數(shù)據(jù)值替換。某股票財(cái)務(wù)數(shù)據(jù)指標(biāo)以及替換后的指標(biāo)統(tǒng)計(jì)如表1~2所示。
表1 財(cái)務(wù)指標(biāo)統(tǒng)計(jì)
表2 異常值處理后的財(cái)務(wù)指標(biāo)統(tǒng)計(jì)
表3 默認(rèn)參數(shù)下模型的運(yùn)行結(jié)果
表4 不同算法AUC評(píng)分比較
表5 不同年份下每種模型的效果比較
構(gòu)建模型時(shí),并不是輸入特征越多越好。如果數(shù)據(jù)量非常大,造成冗余信息過多,XGBoost 訓(xùn)練的過程會(huì)消耗大量的時(shí)間。因此,可以通過數(shù)據(jù)規(guī)約的方式進(jìn)行降維,保留數(shù)據(jù)有效性的同時(shí)降低數(shù)據(jù)維數(shù),消除冗余數(shù)據(jù),可以有效減小消耗。本文采用主成分分析法(PCA)進(jìn)行數(shù)據(jù)規(guī)約。具體步驟如下:
1)對(duì)原始輸入矩陣做標(biāo)準(zhǔn)化轉(zhuǎn)換,統(tǒng)一量綱;
2)計(jì)算不同特征的相關(guān)系數(shù)矩陣R;
3)計(jì)算相關(guān)系數(shù)矩陣R 的特征值以及特征向量,得到載荷矩陣,保留前m 個(gè)特征值以及對(duì)應(yīng)的特征向量,此時(shí)數(shù)據(jù)的正交性最大,即在有效降低冗余同時(shí),可以保留最大的信息量。
XGBoost參數(shù)優(yōu)化的一般步驟如下:
1)選擇較高的學(xué)習(xí)率,例如設(shè)置學(xué)習(xí)率為0.1,可以在一定區(qū)間內(nèi)用窮舉法進(jìn)行參數(shù)尋優(yōu),獲得準(zhǔn)確率較高的參數(shù)組合;
2)在給定的學(xué)習(xí)率和決策樹數(shù)量下,進(jìn)XGBoost 各個(gè)參數(shù)調(diào)優(yōu)(max_depth、min_child_weight、subsample、gamma等);
3)XGBoost的正則化參數(shù)調(diào)優(yōu);
4)選用更低的學(xué)習(xí)率,精細(xì)化的確定理想?yún)?shù)。
默認(rèn)參數(shù)下,模型的運(yùn)行效果如下。
首先,在固定學(xué)習(xí)率的條件下,對(duì)Min_chile_weight、Max_depth 參數(shù)尋優(yōu),測(cè)試其在不同組合下的模型效果。其次,固定上述三個(gè)參數(shù),對(duì)gamma參數(shù)尋優(yōu)。接下來,調(diào)整subsample 和colsample_bytree參數(shù)。最后,對(duì)reg_alpha參數(shù)進(jìn)行優(yōu)化。
通過上述調(diào)優(yōu),將模型測(cè)試集的AUC 提高到了0.6782,有一定的優(yōu)化效果。
最終,比較了不同算法的AUC 評(píng)分,示意如下。
不同年份年報(bào)數(shù)據(jù)下的模型效果比較如下表所示。
從上述結(jié)果可以看出,XGBoost 算法的效果是要優(yōu)于SVM、RF、LR 的。同時(shí),XGBoost 對(duì)模型有較好的解釋性,更加適用于特征數(shù)量較少、對(duì)解釋性要求較高的場(chǎng)合。
本文從股票投資的視角出發(fā),研究了XGBoost算法在量化分析中的應(yīng)用,基于財(cái)務(wù)數(shù)據(jù)對(duì)股票趨勢(shì)進(jìn)行分析,有一定的有效性。并比較了XGBoost、RF、SVM、LR 算法的優(yōu)缺點(diǎn),具有一定的借鑒意義。在實(shí)際的股票交易中,每日股票漲跌的幅度是一定范圍內(nèi)的變化值,而不是只有二元的結(jié)果。此外,每次交易伴隨一定的稅費(fèi),因此短期內(nèi)多次交易不是最優(yōu)的決策。在后續(xù)的研究中可以就相關(guān)方向進(jìn)行進(jìn)一步的總結(jié)與完善。