国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于集成學(xué)習(xí)的中國(guó)股票市場(chǎng)多因子策略研究

2020-09-10 09:34:46牛曉健魏宗皓
貴州省黨校學(xué)報(bào) 2020年4期
關(guān)鍵詞:多因子分類(lèi)器股票

牛曉健,魏宗皓

(復(fù)旦大學(xué),上海 200433)

一、引言

自Fama-French三因子模型提出以來(lái),多因子模型逐漸成為一種主流的量化投資方法。多因子模型主要通過(guò)因子收益和因子暴露對(duì)股票在橫截面上的收益率結(jié)構(gòu)進(jìn)行刻畫(huà),但在具體的建模過(guò)程中,F(xiàn)ama-French模型和Barra模型采用了兩種不同的思路。在Fama-French模型的框架下,首先依據(jù)某一特征構(gòu)建股票組合,計(jì)算多空組合的收益率作為因子收益,然后再時(shí)序上進(jìn)行回歸得到因子暴露,進(jìn)而得到預(yù)期的收益率結(jié)構(gòu)。而在Barra多因子模型的框架下,則先有因子暴露,再將當(dāng)期的因子暴露和未來(lái)一期的股票收益進(jìn)行回歸得到因子收益。Barra多因子模型是典型的橫截面回歸,以最小化所有股票的定價(jià)錯(cuò)誤為目標(biāo),通過(guò)檢查所有殘差項(xiàng)聯(lián)合起來(lái)是否為零來(lái)判斷模型的好壞。根據(jù)最新的Barra China Equity Model (CNE5)操作手冊(cè),Barra多因子模型中包含三類(lèi)因子:1個(gè)國(guó)家因子、32個(gè)行業(yè)因子和10個(gè)風(fēng)格因子。其中國(guó)家因子對(duì)應(yīng)的上述方程中的截距項(xiàng),所有股票對(duì)國(guó)家因子的暴露為1。風(fēng)格因子細(xì)分為Size、Beta、Momentum、Residual Volatility、Book-to-Price、Non-linear Size、Earnings Yield、Liquidity、Leverage和Growth。

人工智能、機(jī)器學(xué)習(xí)的興起為多因子模型構(gòu)建提供了新的思路和方法,越來(lái)越多的學(xué)者和業(yè)界的投資者將機(jī)器學(xué)習(xí)算法引入多因子模型中來(lái),取得了不錯(cuò)的效果。但是單一的機(jī)器學(xué)習(xí)算法,如支持向量機(jī)、Logistics、決策樹(shù)等,在處理復(fù)雜的金融數(shù)據(jù)時(shí)經(jīng)常會(huì)產(chǎn)生過(guò)擬合的問(wèn)題,導(dǎo)致樣本內(nèi)和樣本外的策略表現(xiàn)差距較大。本文將多因子選股當(dāng)作分類(lèi)問(wèn)題處理,使用隨機(jī)森林、Adaboost和XGboost等集成學(xué)習(xí)算法進(jìn)行滾動(dòng)訓(xùn)練,并以中證800指數(shù)成分股作為股票池,對(duì)模型表現(xiàn)進(jìn)行回測(cè),以驗(yàn)證集成學(xué)習(xí)算法在多因子模型上的適用性。

二、文獻(xiàn)綜述

Eugene F. Fama 和 Kenneth R. French提出著名的三因子模型,將橫截面股票收益率的差異歸結(jié)為三個(gè)因素:市場(chǎng)因素、規(guī)模因素和賬面市值比因素?;谶@三個(gè)因素,Eugene F. Fama和Kenneth R. French構(gòu)建出三個(gè)關(guān)鍵的因子:市場(chǎng)組合的超額收益、小市值股票組合和大市值股票組合的收益率之差、高賬面市值比組合和低賬面市值比組合的收益率之差[1]。三因子模型被認(rèn)為開(kāi)辟了多因子研究的先河,為后來(lái)的多因子模型研究提供了重要的思路和方法。Eugene F. Fama 和 Kenneth R. French在三因子模型的基礎(chǔ)上,引入了盈利水平因子和投資風(fēng)格因子[2],提出了五因子模型,模型的解釋力進(jìn)一步提高。在此之后,學(xué)者和投資者們更多的關(guān)注因子的解釋力。比如Clifford S. Asness和Andrea Frazzini等從盈利性、增長(zhǎng)性、安全性和派息率四個(gè)維度綜合分析上市公司的質(zhì)量,并通過(guò)綜合打分的方法得到一個(gè)擁有多種度量維度的質(zhì)量因子,證明了通過(guò)做多高質(zhì)量股票做空低質(zhì)量股票,可以獲得顯著的風(fēng)險(xiǎn)調(diào)整后收益[3]。Frazzini和Pedersen指出由于有約束的投資者偏好高beta資產(chǎn),導(dǎo)致高beta的資產(chǎn)常常伴隨著低alpha,根據(jù)這一特點(diǎn),F(xiàn)razzini和Pedersen構(gòu)建了一個(gè)beta套利因子(BAB),即買(mǎi)入有杠桿的低beta資產(chǎn)并賣(mài)出高beta資產(chǎn),可以獲得顯著為正的風(fēng)險(xiǎn)調(diào)整后收益[4]。范龍振、余世典通過(guò)對(duì)1995年7月至2000年6月全部A股股票月收益率的研究,證明了與國(guó)外大多數(shù)資本市場(chǎng)一樣,我國(guó)的A股市場(chǎng)存在顯著的市值效應(yīng)、賬面市值比效應(yīng)和市盈率效應(yīng)。同時(shí),我國(guó)的A股市場(chǎng)還存在顯著的價(jià)格效應(yīng)[5]。楊炘和陳展輝驗(yàn)證了Fama-French三因子模型在我國(guó)A股市場(chǎng)上的適用性,指出我國(guó)A股市場(chǎng)存在顯著的公司規(guī)模效應(yīng)和股東權(quán)益賬面市值比效應(yīng),市場(chǎng)因素、規(guī)模因素和賬面市值比因素可以完全解釋A股股票收益率的截面差異[6]。徐景昭利用回歸的方法對(duì)使用市盈率、ROE增長(zhǎng)率、資產(chǎn)負(fù)債率、月平均換手率等11個(gè)常見(jiàn)因子進(jìn)行有效性檢驗(yàn),從中篩選出市凈率、ROE增長(zhǎng)率、資產(chǎn)負(fù)債率、月平均換手率、市值等5個(gè)有效因子,分別構(gòu)建了基本的多因子模型、基于貨幣周期的行業(yè)輪動(dòng)多因子模型以及基于固定效應(yīng)下的多元回歸模型,驗(yàn)證了多因子模型在我國(guó)市場(chǎng)的有效性[7]。

隨著人工智能的興起,一些研究者不再局限于因子研究和多因子模型的有效性檢驗(yàn),而是另辟蹊徑,對(duì)機(jī)器學(xué)習(xí)算法在量化投資領(lǐng)域進(jìn)行了探索。Eric H, Keith L和Chee K指出了傳統(tǒng)多因子選股存在的問(wèn)題,并提出應(yīng)用CART(Classification and Regression Tree)的方法進(jìn)行選股。該方法以科技股為研究對(duì)象,從估值、基本面營(yíng)利性、一致預(yù)期和價(jià)格動(dòng)量四個(gè)方面選擇了Sales-Price、Cash Flow-Price、EPS-Price、ROA等6個(gè)因子作為解釋變量,以個(gè)股收益率與截面收益率的中位數(shù)之差將截面股票劃分為兩個(gè)類(lèi)別:out-perform和under-perform,并將其作為標(biāo)簽,分別用靜態(tài)樹(shù)和動(dòng)態(tài)樹(shù)的方法進(jìn)行訓(xùn)練和預(yù)測(cè),驗(yàn)證了動(dòng)態(tài)樹(shù)相對(duì)于靜態(tài)樹(shù)存在邊際改進(jìn),暗示了不斷修正建樹(shù)樣本的動(dòng)態(tài)樹(shù)模型可以更好把握市場(chǎng)的變動(dòng)規(guī)律[8]。錢(qián)穎能、胡運(yùn)發(fā)應(yīng)用樸素貝葉斯分類(lèi)算法來(lái)訓(xùn)練上海證券交易所股票的會(huì)計(jì)信息,并獲得了超越市場(chǎng)指數(shù)的超額回報(bào)[9]。郭文偉使用了支持向量機(jī)的股市風(fēng)格輪換策略[10]。方匡南、吳見(jiàn)彬、朱建平、謝邦昌系統(tǒng)地總結(jié)了隨機(jī)森林方法的原理與應(yīng)用,并介紹了隨機(jī)森林的兩種衍生模型:隨機(jī)生存森林和分位數(shù)回歸森林[11]。文章全面總結(jié)了隨機(jī)森林方法的優(yōu)勢(shì),如bootstrap重抽樣的方法利于提高模型對(duì)噪聲和異常值的容忍度、袋外數(shù)據(jù)便于評(píng)價(jià)組合樹(shù)的泛化能力、運(yùn)算速度遠(yuǎn)快于A(yíng)daboost等,為基于機(jī)器學(xué)習(xí)的量化選股提供了重要方法論。王淑燕、曹正鳳、陳銘芷構(gòu)建了凈資產(chǎn)收益率、總資產(chǎn)收益率、市凈率、EPS一致預(yù)期等16個(gè)因子作為解釋變量,利用股票在時(shí)間序列上的漲跌幅均值和行業(yè)漲跌幅均值構(gòu)建了響應(yīng)變量,通過(guò)隨機(jī)森林方法預(yù)測(cè)未來(lái)股票的漲跌[12]。焦健、趙學(xué)昂、葛新元基于我國(guó)A股的電子和信息技術(shù)兩個(gè)行業(yè)的股票數(shù)據(jù)研究了CART(Classification and Regression Tree)的選股效果,并在傳統(tǒng)的CART模型基礎(chǔ)上進(jìn)行樹(shù)的修剪與過(guò)濾,最終形成行業(yè)選股框架。

三、多因子模型理論

多因子模型研究的是股票收益率在橫截面上的差異。多因子模型的發(fā)展可追溯到William Sharpe的CAPM模型和Ross的APT模型。CAPM模型將股票收益率差異歸結(jié)為系統(tǒng)性風(fēng)險(xiǎn),即貝塔系數(shù)[13]。APT理論則認(rèn)為資產(chǎn)的收益率由一系列影響因素及相應(yīng)的因素敏感性決定,當(dāng)市場(chǎng)達(dá)到均衡時(shí),均衡的預(yù)期收益率是因素敏感性的線(xiàn)性函數(shù)[14]。但APT理論并沒(méi)有對(duì)影響因素進(jìn)行進(jìn)一步的闡述。直到Fama-French三因子模型和Barra模型的出現(xiàn),多因子模型的理論體系逐漸完善,并以?xún)煞N模型為基礎(chǔ),形成了兩種主流的多因子研究體系。

Fama-French和Barra的多因子模型均涉及三個(gè)關(guān)鍵的概念:預(yù)期收益率、因子收益、因子暴露。一個(gè)典型的多因子模型可表示為如下形式:

(1)

在Fama-French的多因子模型框架下,首先依據(jù)某一特征構(gòu)建股票組合,計(jì)算多空組合的收益率作為因子收益,然后再時(shí)序上進(jìn)行回歸得到因子暴露,進(jìn)而得到預(yù)期的收益率結(jié)構(gòu)。以經(jīng)典的三因子模型為例,模型的形式是:

Ri,t-Rf=αi+bi(RM,t-Rf)+si(SMBt)+hi(HMLt)+εi,t

(2)

根據(jù)該式,股票的超額回報(bào)可以被三個(gè)因子的超額回報(bào)率解釋?zhuān)孩偈袌?chǎng)組合超額回報(bào)RM,t-Rf,RM,t為t期市場(chǎng)組合的超額回報(bào),Rf為無(wú)風(fēng)險(xiǎn)利率。②規(guī)模因子SMBt。③賬面市值比因子HMLt。在Fama-French的框架下,因子代表的是投資組合的收益率。具體來(lái)看,首先按照市值對(duì)因子進(jìn)行排序,并以中位數(shù)為界,分成兩個(gè)組合small和big。然后再根據(jù)賬面市值比BE/ME對(duì)兩個(gè)組合分別排序,按照30%、40%、30%的比例進(jìn)一步劃分,得到S/H、S/M、S/L、B/H、B/M、B/L六個(gè)組合。SMB代表小市值組合(S/H、S/M、S/L)和大市值組合(B/H、B/M、B/L)的收益率之差,HML代表的是高賬面市值比組合(S/H和B/H)和低賬面市值比組合(S/L和B/L)的收益率之差。得到因子收益后,按照如下形式進(jìn)行時(shí)間序列回歸,得到因子暴露:

(3)

(4)

Black、Jensen和Scholes在此基礎(chǔ)上給出了計(jì)算因子預(yù)期收益的簡(jiǎn)單方法,即因子收益率在時(shí)間序列上的均值就是因子的預(yù)期收益率。所以根據(jù)因子暴露和因子的預(yù)期收益率,可以得到股票的預(yù)期收益率,從而做出投資決策。通過(guò)GRS檢驗(yàn)等統(tǒng)計(jì)檢驗(yàn)方法,檢驗(yàn)所有股票的αi聯(lián)合起來(lái)是否為零,可以評(píng)價(jià)多因子模型的解釋力。

在Barra的多因子模型框架下,因子并不是投資組合的收益率,而是個(gè)股的基本面數(shù)據(jù)或是行情數(shù)據(jù)。典型的Barra模型可以表示成如下形式:

(5)

根據(jù)Barra China Equity Model (CNE5)操作手冊(cè),Barra多因子模型中包含:1個(gè)國(guó)家因子、32個(gè)行業(yè)因子和10個(gè)風(fēng)格因子。其中國(guó)家因子對(duì)應(yīng)的上述方程中的截距項(xiàng),所有股票對(duì)國(guó)家因子的暴露為1。行業(yè)因子和風(fēng)格因子對(duì)應(yīng)上式中的ft,其中風(fēng)格因子包括Size、Beta、Momentum、Residual Volatility、Book-to-Price、Non-linear Size、Earnings Yield、Liquidity、Leverage和Growth。

機(jī)器學(xué)習(xí)的出現(xiàn)為建立多因子模型提供了新的方法。比如用SVM、Decision Tree、Random Forest等算法代替線(xiàn)性回歸進(jìn)行多因子回歸。再比如將股票的預(yù)期的漲跌狀態(tài)(0/1變量)作為被解釋變量,利用SVM、Logistic等分類(lèi)算法構(gòu)建多因子模型,通過(guò)F1-score和AUC等來(lái)評(píng)價(jià)多因子模型的好壞。

四、集成學(xué)習(xí)理論

集成學(xué)習(xí)本身并不是一種單獨(dú)的機(jī)器學(xué)習(xí)算法,而是通過(guò)訓(xùn)練多個(gè)弱學(xué)習(xí)器,按照一定的方式進(jìn)行組合,得到最終的強(qiáng)學(xué)習(xí)器。至于弱學(xué)習(xí)器的算法,可以有多種選擇,最常用的是Decision Tree。

Bagging和Boosting是集成學(xué)習(xí)算法的兩大派別。Bagging為并行算法,同時(shí)訓(xùn)練多個(gè)弱學(xué)習(xí)器,各個(gè)學(xué)習(xí)器間互不影響,最終通過(guò)大多數(shù)投票等方法匯總各個(gè)弱學(xué)習(xí)器,得到最終的強(qiáng)學(xué)習(xí)器。Bagging算法的代表是隨機(jī)森林。Boosting為串行算法,各個(gè)弱學(xué)習(xí)器間存在較強(qiáng)的依賴(lài)關(guān)系,通過(guò)給分類(lèi)錯(cuò)誤的樣本以較高的權(quán)重來(lái)不斷降低分類(lèi)的錯(cuò)誤率,最終將全部弱學(xué)習(xí)器加權(quán)得到最終的強(qiáng)學(xué)習(xí)器。Boosting的代表是Adaboost和XGboost。

(一)隨機(jī)森林算法

隨機(jī)森林是由Leo Breiman在2001年論文《Random Forests》中提出的一種集成學(xué)習(xí)方法[15],這一算法是由多個(gè)隨機(jī)子集(Bootstrap數(shù)據(jù)集)生成的決策樹(shù)實(shí)例組成,稱(chēng)之為“隨機(jī)森林”。

1.決策樹(shù)原理及數(shù)學(xué)表達(dá)

隨機(jī)森林算法基于基本的決策樹(shù)(Decision Tree)模型。所謂決策樹(shù)模型,是通過(guò)多個(gè)特征進(jìn)行分類(lèi)決策,在每個(gè)節(jié)點(diǎn)處,按照信息增益(Information Gain)最大化的方向進(jìn)行分裂,得到下一層的節(jié)點(diǎn),直至分裂至最終的葉子節(jié)點(diǎn)。常用來(lái)度量信息增益的方式有以下兩種:

(1)Gini系數(shù)

Gini系數(shù)又叫做Gini不純度,用來(lái)表示一個(gè)隨機(jī)選中的樣本在子集中被錯(cuò)分的可能性。Gini系數(shù)為這個(gè)樣本被選中的概率乘以它被錯(cuò)分的概率,可表示成如下形式:

(6)

當(dāng)一個(gè)節(jié)點(diǎn)中所有的樣本都是同一類(lèi)別時(shí),Gini系數(shù)為0。

其中pk為數(shù)據(jù)集D中的樣本點(diǎn)屬于k類(lèi)別的概率,Gini系數(shù)可理解為隨機(jī)從數(shù)據(jù)集中取出兩個(gè)樣本,其類(lèi)別標(biāo)記不一致的概率。Gini系數(shù)越小說(shuō)明數(shù)據(jù)集的純度越高。

采用Gini系數(shù)度量時(shí),D節(jié)點(diǎn)根據(jù)特征A進(jìn)行分裂時(shí),分裂后的Gini系數(shù)可以表示如下形式:

(7)

其中,Gini(left)和Gini(right)分別表示左邊子節(jié)點(diǎn)和右邊子節(jié)點(diǎn)的Gini系數(shù)。按特征A進(jìn)行分裂時(shí),信息增益可以表示為:

IGGini=Gini(D)-Gini(D,A)

(8)

(2)信息熵

熵最早源自于熱力學(xué),用來(lái)度量分子的混亂程度,熵值越大表示系統(tǒng)越混亂。而信息熵則借鑒了熱力學(xué)中熵的概念,信息熵越大,集合越混亂,換言之,純度更低。信息熵可表為如下形式:

(9)

采用信息熵度量時(shí),D節(jié)點(diǎn)根據(jù)特征A進(jìn)行分裂時(shí),分裂后的信息熵可以表示如下形式:

(10)

其中,H(left)和H(right)分別表示左邊子節(jié)點(diǎn)和右邊子節(jié)點(diǎn)的信息熵。按特征A進(jìn)行分裂時(shí),信息增益可以表示為:

IGH=H(D)-H(D,A)

(11)

決策樹(shù)模型可以理解為每個(gè)節(jié)點(diǎn)不斷地朝著信息增益最大的方向分裂為兩個(gè)子節(jié)點(diǎn),直至滿(mǎn)足達(dá)到最大深度、葉子節(jié)點(diǎn)的Gini系數(shù)足夠小、葉子節(jié)點(diǎn)中的樣本數(shù)小于最小分類(lèi)樣本這三個(gè)條件中的任意一個(gè),則停止分裂,得到最終的決策樹(shù)模型。

2.隨機(jī)森林

隨機(jī)森林是一種基于信息論和統(tǒng)計(jì)抽樣理論的分類(lèi)算法,屬于集成學(xué)習(xí)的Bagging派系,除Bagging外,集成學(xué)習(xí)還有Boosting的方法。

從上述的算法介紹可以看出,隨機(jī)森林包含兩個(gè)隨機(jī)過(guò)程:訓(xùn)練樣本隨機(jī)和特征隨機(jī)。這一特點(diǎn)使得隨機(jī)森林模型可以有效地防止過(guò)擬合,提高模型得泛化能力。

(二)AdaBoost算法

Schapire和Freund在1995年提出Adaboost(adaptive boosting)算法。該算法將弱分類(lèi)器以串行的方式集合起來(lái)。在初始訓(xùn)練時(shí),每個(gè)樣本被賦予相同的權(quán)重,對(duì)于分類(lèi)錯(cuò)誤的樣本,提高其權(quán)重。最后以更新權(quán)重后的樣本作為第二次訓(xùn)練的輸入集,以此類(lèi)推,得到各個(gè)弱分類(lèi)器,最終通過(guò)加權(quán)匯總,得到最終的強(qiáng)分類(lèi)器。

1.用帶權(quán)重的樣本訓(xùn)練弱學(xué)習(xí)器φm(x);

2.計(jì)算第m個(gè)弱分類(lèi)器在權(quán)重分布ωm上的誤差:

(12)

其中I表示指示函數(shù),滿(mǎn)足條件時(shí)返回1,否則返回0。

3.計(jì)算第m個(gè)分類(lèi)器的權(quán)重:

(13)

其中τ是學(xué)習(xí)率超參數(shù)。該分類(lèi)器的誤差率越低,它所占的權(quán)重就越高,如果它只是隨機(jī)猜測(cè),那么它的權(quán)重接近于零,如果誤差率比隨機(jī)猜測(cè)還要低,則它的權(quán)重為負(fù)。

4.更新訓(xùn)練樣本的權(quán)重分布:

(14)

其中Zm是歸一化參數(shù),

(15)

通過(guò)Zm的表達(dá)式可以看出,被分類(lèi)正確的樣本獲得了更低的權(quán)重,分類(lèi)錯(cuò)誤的樣本獲得了更高的權(quán)重。

5.重復(fù)迭代,用新的權(quán)重分布訓(xùn)練新的分類(lèi)器。當(dāng)達(dá)到迭代次數(shù)要求或者得到分類(lèi)準(zhǔn)確率達(dá)到要求時(shí),算法停止。最終按αm對(duì)各個(gè)弱分類(lèi)器加權(quán),得到最終的強(qiáng)學(xué)習(xí)器:

(16)

Adaboost的弱分類(lèi)器同樣采用上一小節(jié)中介紹的決策樹(shù)模型,除此以外,常用的還有以L(fǎng)ogistics回歸為基分類(lèi)器構(gòu)建的Adaboost模型,即LR_Adaboost。本文使用的是基于CART決策樹(shù)的Adaboost模型。

(三)XGBoost算法

1.GBDT算法的原理及數(shù)學(xué)表達(dá)

GBDT算法即Gradient Boosting Decision Tree,可以分為Gradient Boosting和Decision Tree來(lái)分別看待。Gradient Boosting不是一種具體的算法,而是一種優(yōu)化的理念。比如對(duì)于給定訓(xùn)練集{(x1,y1),(x2,y2),(x3,y3)……(xn,yn)},Gradient Boosting可表示為如下過(guò)程:

(1)首先估計(jì)使損失函數(shù)極小化的常數(shù)值:

(17)

其中L表示損失函數(shù)(Loss Function),θ代表弱學(xué)習(xí)器。

(2)計(jì)算損失函數(shù)的負(fù)梯度:

(18)

(3)得到{(x1,rm,1),(x2,rm,2),(x3,rm,3)……(xn,rm,n)},進(jìn)行訓(xùn)練得到:

(19)

(4)計(jì)算最優(yōu)步長(zhǎng):

ρm=argminρL(yi,fm-1(x)+ρθm)

(20)

(5)完成模型的更新:

fm(x)=fm-1(x)+ρmθm

(21)

(6)重復(fù)(2)到(5),直至達(dá)到既定的迭代次數(shù)或滿(mǎn)足精度要求。

Gradient Boosting僅給出了一種優(yōu)化框架,并沒(méi)有指定具體的算法。GBDT(Gradient Boosting Decision Tree)則是應(yīng)用Gradient Boosting框架的一種具體算法,該方法采用決策樹(shù)(Decision Tree)作為弱學(xué)習(xí)器,通過(guò)不斷迭代,得到最終的強(qiáng)學(xué)習(xí)器。

而對(duì)于二元分類(lèi)問(wèn)題,可以定義損失函數(shù)(Loss Function)為對(duì)數(shù)損失函數(shù):

L(y,f(x))=log(1+exp(-yf(x)))

(22)

帶入上述Gradient Boosting的優(yōu)化框架,并以決策樹(shù)作為弱分類(lèi)器進(jìn)行訓(xùn)練,最終得到強(qiáng)分類(lèi)器。

2.XGboost的原理及數(shù)學(xué)表達(dá)

XGboost算法是對(duì)梯度提升決策樹(shù)(GBDT)算法的改進(jìn)和提升,這里介紹基于CART決策樹(shù)的XGboost算法。該算法的基本框架與GBDT相似,但在構(gòu)造新樹(shù)時(shí)有所不同,具體總結(jié)為以下幾點(diǎn):

(1)XGboost的損失函數(shù)加入了正則化項(xiàng),可表示成如下形式:

(23)

(2)訓(xùn)練第t棵CART樹(shù)時(shí),要最小化obj(t),而obj(t)進(jìn)行簡(jiǎn)單變換后又可以表示成如下形式:

(24)

其中const表示常數(shù),即前t-1棵樹(shù)的復(fù)雜度。對(duì)上式進(jìn)行二級(jí)泰勒展開(kāi),可得:

(25)

(26)

(3)obj(t)中的正則項(xiàng)使用如下形式:

(27)

其中T代表CART樹(shù)的葉子節(jié)點(diǎn)數(shù)目,ωj表示每個(gè)葉子節(jié)點(diǎn)上的得分,γ和λ為懲罰系數(shù),數(shù)值越大代表懲罰力度越大。

(4)對(duì)obj(t)進(jìn)行簡(jiǎn)單變換,改變內(nèi)外求和順序,可得:

(28)

上式是關(guān)于ωj的二次函數(shù),可直接求得極小值點(diǎn):

(29)

以及目標(biāo)函數(shù)得極小值:

(30)

obj*代表了樹(shù)的結(jié)構(gòu)的好壞,該值越小,樹(shù)的結(jié)構(gòu)越好。利用貪心算法枚舉不同樹(shù)的結(jié)構(gòu),挑選出最好的樹(shù)。具體來(lái)說(shuō),對(duì)于現(xiàn)存得每一個(gè)葉子節(jié)點(diǎn),掃描所有的額切分點(diǎn),衡量切分點(diǎn)的標(biāo)準(zhǔn)如下式所示:

(31)

Gain表示單節(jié)點(diǎn)的obj*與切分后兩個(gè)節(jié)點(diǎn)的obj*之和的差值,Gain越大說(shuō)明越值得切分。

3.XGboost算法的優(yōu)勢(shì)

(1)傳統(tǒng)的GBDT算法僅使用了損失函數(shù)(Loss Function)的一階導(dǎo)數(shù),而XGboost對(duì)損失函數(shù)進(jìn)行了泰勒展開(kāi),用到了一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。XGboost支持自定義的損失函數(shù),只要保證損失函數(shù)在數(shù)學(xué)上是二階可導(dǎo)的。

(2)XGboost在損失函數(shù)中引入了正則項(xiàng),用于控制樹(shù)的復(fù)雜度,有利于防止過(guò)擬合,減小模型的方差。

(3)XGboost支持特征抽樣(借鑒了隨機(jī)森林的思想),在構(gòu)建弱學(xué)習(xí)器時(shí)僅使用抽樣出的部分特征來(lái)訓(xùn)練,減小過(guò)擬合風(fēng)險(xiǎn)。

(4)XGBoost在處理特征的層面上支持并行。訓(xùn)練決策樹(shù)最耗時(shí)的一步就是對(duì)各個(gè)特征的值進(jìn)行排序(為了確定最佳分割點(diǎn))并計(jì)算信息增益,XGBoost對(duì)于各個(gè)特征信息增益的計(jì)算可以在多線(xiàn)程中進(jìn)行,大大提高了模型的訓(xùn)練速度。

五、候選因子有效性檢驗(yàn)

本文使用的候選因子包括基本面因子和量?jī)r(jià)因子,數(shù)據(jù)均取自天軟數(shù)據(jù)庫(kù),時(shí)間區(qū)間為2010年1月至2020年1月。基本面因子為財(cái)務(wù)指標(biāo),包含盈利能力、收益質(zhì)量、償債能力、成長(zhǎng)性、估值水平和公司規(guī)模6個(gè)維度,如表1所示。量?jī)r(jià)因子既包括常見(jiàn)的收益率反轉(zhuǎn)、波動(dòng)率和換手率。如表2,也包括利用遺傳算法挖掘的部分因子。遺傳算法方面,本文借鑒了Github上Genetic Programming算法的框架,并對(duì)這一算法進(jìn)行了深度改造,重新編寫(xiě)運(yùn)算符、適應(yīng)度計(jì)算、表達(dá)式解析等模塊,使其適用于因子挖掘,相關(guān)參數(shù)設(shè)置如表3。

本文使用IC和信息比率作為因子有效性的評(píng)價(jià)標(biāo)準(zhǔn),并根據(jù)因子間的相關(guān)度,對(duì)部分因子進(jìn)行剔除。最終保留6個(gè)基本面因子,相應(yīng)的評(píng)價(jià)指標(biāo)如表4所示。保留1個(gè)月收益率反轉(zhuǎn)因子、12個(gè)月波動(dòng)率因子和12個(gè)月?lián)Q手率因子,如表5所示。保留7個(gè)利用遺傳算法構(gòu)建的因子特征,如表6所示。

表1 待檢測(cè)的基本面因子及其計(jì)算方式

表2 待檢測(cè)的量?jī)r(jià)因子及其計(jì)算方式

表3 遺傳算法的相關(guān)參數(shù)

表4 保留的基本面因子及評(píng)價(jià)指標(biāo)

表5 保留的收益率反轉(zhuǎn)、波動(dòng)率和換手率因子

表6 遺傳算法挖掘的量?jī)r(jià)特征

六、多因子模型的構(gòu)建

為了驗(yàn)證集成學(xué)習(xí)算法在多因子模型問(wèn)題上的有效性,本節(jié)將以上一章篩選出的16個(gè)因子作為特征,分別使用隨機(jī)森林、Adaboost和XGboost等算法進(jìn)行滾動(dòng)訓(xùn)練,實(shí)現(xiàn)對(duì)股票未來(lái)漲跌狀態(tài)的預(yù)測(cè)。同時(shí),將模型與同期的指數(shù)和傳統(tǒng)打分法進(jìn)行對(duì)比,說(shuō)明策略的有效性。具體步驟是:

第一,提取數(shù)據(jù)。從天軟數(shù)據(jù)庫(kù)提取中證800歷史成分股的相關(guān)數(shù)據(jù),數(shù)據(jù)區(qū)間為2010年1月-2020年1月。需要說(shuō)明的是,這里要對(duì)股票池進(jìn)行動(dòng)態(tài)調(diào)整,保證調(diào)倉(cāng)日的股票池與中證800當(dāng)天的成分股一致。

第二,特征和標(biāo)簽的構(gòu)建。以16個(gè)候選因子作為特征,并對(duì)特征進(jìn)行預(yù)處理。預(yù)處理方法包括中位數(shù)法去極值和行業(yè)內(nèi)標(biāo)準(zhǔn)化。計(jì)算個(gè)股未來(lái)20個(gè)交易日的收益率,排名前30%的股票作為正例,標(biāo)簽為1,排名后30%的股票作為負(fù)例,標(biāo)簽為0。這樣每只股票就作為一個(gè)樣本,樣本的標(biāo)簽是1或0,特征是該股票在當(dāng)前時(shí)刻的因子暴露為維的向量。

第三,模型的訓(xùn)練。采用滾動(dòng)訓(xùn)練的方法進(jìn)行模型訓(xùn)練,訓(xùn)練集長(zhǎng)度為12個(gè)月,測(cè)試集長(zhǎng)度為3個(gè)月。

第四,模型的評(píng)價(jià)。以AUC和策略的回測(cè)表現(xiàn)作為模型的評(píng)價(jià)指標(biāo)。進(jìn)行回測(cè)時(shí),根據(jù)模型在測(cè)試集的預(yù)測(cè)進(jìn)行調(diào)倉(cāng),調(diào)倉(cāng)頻率為月頻,每個(gè)調(diào)倉(cāng)日選取預(yù)測(cè)值最高的50只股票構(gòu)建投資組合,組合內(nèi)按流通市值加權(quán),手續(xù)費(fèi)設(shè)置為雙邊千分之二。以中證800指數(shù)和等權(quán)打分法作為比較基準(zhǔn)。

(一)隨機(jī)森林算法

本小節(jié)展示隨機(jī)森林算法的建模結(jié)果。在進(jìn)行訓(xùn)練時(shí),使用網(wǎng)格調(diào)參進(jìn)行參數(shù)尋優(yōu),同時(shí)對(duì)輸入特征的重要程度進(jìn)行了檢測(cè),目的是剔除不重要的特征,降低過(guò)擬合風(fēng)險(xiǎn)。特征重要性以信息增益來(lái)度量,即計(jì)算各個(gè)特征在每棵子樹(shù)中提供的信息增益的平均值,信息增益的均值越高,特征的重要程度越高。16個(gè)候選因子的重要程度如表7所示??傮w來(lái)看,各個(gè)特征的重要程度分布比較平均,不存在重要性特別低的特征,說(shuō)明第3章構(gòu)建的因子特征能夠提供比較明顯的信息增益,無(wú)須進(jìn)行剔除。

表7 因子重要程度

隨機(jī)森林算法測(cè)試集的AUC表現(xiàn)如圖1所示。AUC的均值達(dá)到0.577,除個(gè)別月份外,AUC值均保持在0.5分界線(xiàn)的上方,分類(lèi)的準(zhǔn)確率和穩(wěn)定性較好。模型測(cè)試集的回測(cè)表現(xiàn)如圖2所示。2011年至今,隨機(jī)森林模型的年化收益率達(dá)到20.817%,而等權(quán)打分法和中證800指數(shù)的年化收益率分別為13.173%和4.23%,具體的評(píng)價(jià)指標(biāo)如表8所示。為評(píng)價(jià)隨機(jī)森林策略的穩(wěn)定性,本文進(jìn)行了分年度回測(cè),隨機(jī)森林、等權(quán)組合和中證800指數(shù)各年份的收益率如表9所示。隨機(jī)森林策略?xún)H在2015年和2018年小幅跑輸?shù)葯?quán)打分法,其余年份均明顯占優(yōu),說(shuō)明相比于等權(quán)打分法,隨機(jī)森林策略具有明顯的優(yōu)勢(shì)。與中證800指數(shù)相比,隨機(jī)森林策略各年份的超額收益也比較穩(wěn)定,僅在2020年一月份小幅跑輸指數(shù),其余年份均明顯優(yōu)于指數(shù)。

圖1 隨機(jī)森林測(cè)試集AUC變化

圖2 隨機(jī)森林策略?xún)糁底兓?/p>

表8 隨機(jī)森林、等權(quán)打分法和中證800表現(xiàn)對(duì)比

表9 隨機(jī)森林、等權(quán)打分法和中證800分年度表現(xiàn)對(duì)比

(二)Adaboost算法

本小節(jié)展示使用Adaboost算法的建模結(jié)果。進(jìn)行模型訓(xùn)練時(shí),使用了網(wǎng)格調(diào)參對(duì)基學(xué)習(xí)器的個(gè)數(shù)(n_estimators)和學(xué)習(xí)率(learning_rate)兩個(gè)參數(shù)進(jìn)行調(diào)優(yōu)?;鶎W(xué)習(xí)器的個(gè)數(shù)和學(xué)習(xí)率是boosting框架下的重要超參數(shù),這兩個(gè)參數(shù)通常應(yīng)該結(jié)合來(lái)看。基學(xué)習(xí)器的個(gè)數(shù)決定了迭代的次數(shù),而學(xué)習(xí)率決定了每次梯度下降所取得“步長(zhǎng)”,所以這兩個(gè)超參數(shù)共同決定了損失函數(shù)能否收斂至局部最小值以及以何種方式收斂至最小值。基學(xué)習(xí)器的個(gè)數(shù)較大時(shí),如果學(xué)習(xí)率較小,會(huì)導(dǎo)致收斂速度較慢,如果學(xué)習(xí)率較大,可能導(dǎo)致?lián)p失函數(shù)在最小值附近反復(fù)跳躍,或無(wú)法收斂至最小。基學(xué)習(xí)器數(shù)量較少時(shí),如果學(xué)習(xí)率較低,可能導(dǎo)致在距離最小值較遠(yuǎn)的地方停止,如果學(xué)習(xí)率較大,同樣會(huì)導(dǎo)致梯度反復(fù)跳躍的情況出現(xiàn)。所以選擇合適的基學(xué)習(xí)器個(gè)數(shù)與學(xué)習(xí)率顯得尤為重要。

Adaboost算法測(cè)試集的AUC表現(xiàn)如圖3所示。AUC的均值為0.570。采用與隨機(jī)森林策略相同的方法對(duì)Adaboost策略進(jìn)行回測(cè),繪制的累計(jì)凈值曲線(xiàn)如圖4所示,并計(jì)算評(píng)價(jià)指標(biāo)如表10所示。發(fā)現(xiàn)Adaboost策略的表現(xiàn)明顯優(yōu)于等權(quán)打分法,等權(quán)打分法的年化收益率為13.173%,而Adaboost的年化收益率達(dá)到了22.096%。從分年度結(jié)果來(lái)看,如表11,Adaboost策略?xún)H在2012年小幅跑輸?shù)葯?quán)打分法,其余年份均明顯占優(yōu)。在與中證800指數(shù)的對(duì)比中,Adaboost策略的表現(xiàn)同樣亮眼,每年都戰(zhàn)勝了同期的指數(shù)。

圖3 Adaboost測(cè)試集AUC變化

圖4 Adaboost策略?xún)糁底兓?/p>

表10 Adaboost、等權(quán)打分法和中證800表現(xiàn)對(duì)比

表11 Adaboost、等權(quán)打分法和中證800分年度表現(xiàn)對(duì)比

(三)XGBoost算法

XGboost在訓(xùn)練基學(xué)習(xí)器時(shí)借鑒了隨機(jī)森林的思想,可以對(duì)樹(shù)的最大深度進(jìn)行設(shè)置,降低過(guò)擬合風(fēng)險(xiǎn)。本文滾動(dòng)訓(xùn)練XGboost模型時(shí),對(duì)基學(xué)習(xí)器個(gè)數(shù)、學(xué)習(xí)率和樹(shù)的深度進(jìn)行了尋優(yōu),其余參數(shù)使用默認(rèn)值。模型測(cè)試集的AUC表現(xiàn)如圖5所示。AUC的均值為0.573。模型累計(jì)凈值曲線(xiàn)、評(píng)價(jià)指標(biāo)和分年度表現(xiàn)如圖6、表12和表13所示。XGboost策略的年化收益率為18.986%,低于隨機(jī)森林和Adaboost,但仍然優(yōu)于等權(quán)打分法和中證800指數(shù)。XGboost在2019年和2020年1月的表現(xiàn)不如等權(quán)打分法,其余年份表現(xiàn)尚可。在與指數(shù)的對(duì)比中,XGboost在2013年、2014年和2019年小幅跑輸指數(shù),2020年1月份大幅落后于指數(shù),其余年份戰(zhàn)勝了指數(shù)??偟膩?lái)看,XGboost策略在2019年后表現(xiàn)平平。

圖5 XGBoost測(cè)試集AUC變化

表13 XGboost、等權(quán)打分法和中證800分年度表現(xiàn)對(duì)比

(四)模型組合

從上述實(shí)證結(jié)果來(lái)看,將多因子選股當(dāng)作分類(lèi)問(wèn)題來(lái)處理,使用分類(lèi)算法滾動(dòng)訓(xùn)練模型取得了不錯(cuò)的效果。如表4-8所示,隨機(jī)森林和Adaboost的回測(cè)效果比較出色,年化收益率分別達(dá)到了20.817%和22.096%,夏普比率分別為0.905和0.957。XGboost的效果稍遜,年化收益率18.986%,夏普比率為0.828,但還是在大部分年份戰(zhàn)勝了等權(quán)打分法和中證800指數(shù)。說(shuō)明在因子相同的條件下,采用機(jī)器學(xué)習(xí)算法來(lái)構(gòu)建多因子策略要優(yōu)于等權(quán)打分法。

對(duì)于表現(xiàn)較好的兩個(gè)模型——隨機(jī)森林和Adaboost,可以按照一定的方式進(jìn)行復(fù)合,以進(jìn)一步提高模型的表現(xiàn)。本文采用軟投票的方式對(duì)隨機(jī)森林和Adaboost進(jìn)行了組合,即將隨機(jī)森林預(yù)測(cè)樣本類(lèi)別為1的概率與Adaboost預(yù)測(cè)樣本類(lèi)別為1的概率取平均,作為最終的預(yù)測(cè)結(jié)果,每次仍然取預(yù)測(cè)類(lèi)別為1的概率最高的50只股票進(jìn)行建倉(cāng)。采用這種軟投票的方法進(jìn)行模型組合的回測(cè)表現(xiàn)如表14所示,累計(jì)凈值曲線(xiàn)如圖7所示??梢?jiàn),通過(guò)模型組合,獲得了比單一模型更好的收益表現(xiàn),年化收益率提高到22.697%,夏普比率提高到0.987。

表14 不同模型表現(xiàn)對(duì)比

圖7 組合策略的凈值變化

七、結(jié)論與展望

本文將多因子選股當(dāng)作分類(lèi)問(wèn)題處理,使用隨機(jī)森林、Adaboost、XGboost等集成學(xué)習(xí)算法進(jìn)行滾動(dòng)訓(xùn)練,實(shí)現(xiàn)對(duì)股票未來(lái)漲跌狀態(tài)的預(yù)測(cè),并對(duì)模型在測(cè)試集的AUC和投資表現(xiàn)進(jìn)行了回測(cè)。發(fā)現(xiàn)在使用的因子相同時(shí),使用集成學(xué)習(xí)算法進(jìn)行滾動(dòng)訓(xùn)練獲得了比等權(quán)打分法更好的年化收益率和夏普比率,而且在每年均戰(zhàn)勝了基準(zhǔn)指數(shù)。

本文的研究過(guò)程主要分為兩個(gè)步驟。首先進(jìn)行了單個(gè)因子的構(gòu)建,包括基本面因子和量?jī)r(jià)因子。在進(jìn)行構(gòu)造量?jī)r(jià)因子時(shí),使用了遺傳算法,增加了因子的多樣性。本文以信息比率和累計(jì)IC為標(biāo)準(zhǔn),最終保留16個(gè)因子來(lái)構(gòu)建多因子模型。其次,本文使用了3種常見(jiàn)的集成學(xué)習(xí)算法滾動(dòng)地訓(xùn)練分類(lèi)模型,訓(xùn)練集和測(cè)試集的長(zhǎng)度分別為12個(gè)月和3個(gè)月。對(duì)模型在測(cè)試集上的投資效果進(jìn)行回測(cè),發(fā)現(xiàn)使用集成學(xué)習(xí)算法進(jìn)行滾動(dòng)訓(xùn)練的效果明顯優(yōu)于等權(quán)打分法和中證800指數(shù),其中隨機(jī)森林和Adaboost的表現(xiàn)更優(yōu),夏普比率分別達(dá)到0.905和0.957。最后,對(duì)于表現(xiàn)較好的兩個(gè)模型——隨機(jī)森林和Adaboost,使用軟投票的方法對(duì)模型進(jìn)行組合,實(shí)現(xiàn)了對(duì)原有模型的增強(qiáng),新模型的夏普比率提高到0.987。

通過(guò)實(shí)證檢驗(yàn),本文證明了使用集成學(xué)習(xí)算法來(lái)構(gòu)建分類(lèi)器,可以獲得比傳統(tǒng)的多因子打分法更好的效果,且在2011—2019年每年均戰(zhàn)勝了基準(zhǔn)指數(shù),表現(xiàn)比較穩(wěn)定,適合指數(shù)增強(qiáng)型基金產(chǎn)品。在實(shí)際投資中,指數(shù)增強(qiáng)型基金的目標(biāo)是提供高于標(biāo)的指數(shù)的收益,本文的股票池設(shè)置為中證800指數(shù)的成分股,根據(jù)模型預(yù)測(cè)結(jié)果按月調(diào)倉(cāng),在回測(cè)區(qū)間內(nèi),每年均戰(zhàn)勝了中證800指數(shù),超額收益相對(duì)穩(wěn)定,為指數(shù)增強(qiáng)產(chǎn)品提供了一種新思路。

猜你喜歡
多因子分類(lèi)器股票
基于BP神經(jīng)網(wǎng)絡(luò)的多因子洪水分類(lèi)研究
基于打分法的多因子量化選股策略研究
BP-GA光照分類(lèi)器在車(chē)道線(xiàn)識(shí)別中的應(yīng)用
基于多因子的ZigBee安全認(rèn)證機(jī)制
本周創(chuàng)出今年以來(lái)新高的股票
本周創(chuàng)出今年以來(lái)新高的股票
加權(quán)空-譜與最近鄰分類(lèi)器相結(jié)合的高光譜圖像分類(lèi)
結(jié)合模糊(C+P)均值聚類(lèi)和SP-V-支持向量機(jī)的TSK分類(lèi)器
本周連續(xù)上漲3天以上的股票
近期連續(xù)漲、跌3天以上的股票
铜川市| 西乌珠穆沁旗| 金寨县| 霞浦县| 哈尔滨市| 德州市| 临邑县| 天水市| 漳平市| 嘉义市| 璧山县| 隆尧县| 咸阳市| 敖汉旗| 栾川县| 华蓥市| 阳曲县| 营口市| 宁海县| 保靖县| 饶平县| 龙南县| 南京市| 绍兴县| 寻乌县| 盘山县| 安顺市| 连平县| 大邑县| 涡阳县| 清水河县| 噶尔县| 新安县| 苗栗市| 潢川县| 红桥区| 会昌县| 六枝特区| 康保县| 西青区| 澄城县|