作者簡介:盧笛(2000-),女,漢族,吉林長春人,主要研究方向:金融數學。
摘 要:多因子的選股模型作為投資領域的重要方法,一直以來活躍在主流量化投資領域決策中,而如何根據股票的各個因子來準確地預測個股的月度超額收益,也是多因子模型希望解決的主要問題之一。本文將梯度決策提升樹引入量化投資決策,建立了一套基于梯度決策提升樹模型的多因子量化投資策略,并利用滬深300成分股進行選股回測,選取模型預測收益率靠前的30只股票進行實證分析。研究表明,梯度決策提升樹模型指導下的年華收益率為29.1%,較基準年化收益率有大幅提升,且回撤率更低,驗證了該量化選股模型的有效性。
關鍵詞:多因子選股;梯度決策提升樹;量化投資
近年來,隨著機器學習理論的高速發展,其在量化投資領域也得到了廣泛應用,美國的許多投資機構早已在投資策略,選股方案指定上引入了多種機器學習模型輔助決策;而國內的股票基金行業也逐漸開始使用機器學習模型來指導選股,相較于傳統的多因子策略取得了較高的超額收益。
本質來說,選股問題可以抽象為一個回歸問題,選股即是對股票的多個因子構成的向量進行對收益率的擬合。該分類問題可分解為兩個子問題,一方面是因子的選擇,即選用股票的哪些方面的特征;另一方面是回歸模型的選擇,即使用的分類算法。傳統的多因子策略模型需要為因子分配合理權重,否則會極大的影響模型效果,通常是超額收益越大,為因子賦予的權重越大,但衡量因子選股效果的指標有很多,如收益相關系數,跑贏指數概率等,難以人為進行均衡來配置。本文擬以梯度決策提升樹為核心回歸算法,建立一套選股指導系統來探索量化交易市場。
一個優秀的量化選股策略能夠有效克服投資者面臨的信息過載,令投資者的投資獲得提升。對于買方機構來說,既可以以該策略為指導自營獲得收益,也可以基于此發布理財產品,以管理費、贖回費等方式賺取零風險收益;對于賣方機構,則能夠將策略打包為股票推薦功能來作為軟件賣點,獲取更多傭金。
梯度決策提升樹選股模型
選股問題本質是分類問題,因此選擇合適的分類模型能極大影響量化投資策略的效果。在選股領域,常用的決策模型有決策樹、神經網絡、支持向量機等,其中決策樹在處理噪音數據時效果交叉,且存在過擬合的可能;而神經網絡模型對個股的走勢預測效果欠佳;支持向量機模型雖然優于傳統神經網絡推斷,但支持向量機自身的特性使得其在多分類問題上天生弱于決策樹模型,因而還存在一定提升空間。基于以上模型的特點,本文選擇梯度決策提升樹作為選股模型。
梯度決策提升樹(Gradient Boosted Decision Tree,GBDT)是由Friedman等[1]在2001年提出的一種經典的機器學習方法,屬于boosting系列算法中的一個代表算法,它是一種迭代的決策樹算法,所有樹的結論累加起來作為最終答案。GBDT設計的目的為了求解損失函數的優化,具體思路為對損失函數求梯度,以負梯度的方向代入模型的當前值,以當前值作為殘差值的近似。它采用了加法模型,通過向著減小殘差的方向收斂得到將輸入數據分類或回歸的模型。圖 1說明了GBDT的訓練過程:
GBDT的經多次迭代后收斂,每輪訓練多個分類器,每個分類器基于上一次迭代得到的殘差礎上進行訓練。作為集成學習方法的一種,GBDT的基分類器屬于弱分類器,需要結構簡單且滿足低方差、高偏差的條件,這與GBDT的損失函數是基于降低偏差有關;通常來說,GBDT通常以CART TREE作為基分類器,且每棵CART TREE的深度相對較低以保證基分類器的復雜度不會過高。最終將每輪訓練得到的基分類器加權求和,得到總的分類器。
GBDT既可以解決分類問題,也可以解決回歸問題,對于選股適用于回歸模型,數學語言表述如下:
對訓練樣本,最大迭代次數T,損失函數為L,其中為股票因子組成的向量,為股票價格。
1.初始化弱分類器
a)樣本負梯度
b)利用 擬合一個CART回歸樹,得到第棵回歸樹,其對應葉子結點區域為,其中為回歸樹葉子節點的個數
股票因子選擇
在確定了核心模型后,還需要確定參與訓練和股價預測股票因子,股票因子的選擇將和模型一起決定股價預測的效果。目前,多因子的選股模型是國際上主流的量化選股模型,該模型認為股票的未來收益率受公司的財務指標和其他某些行情指標影響,且這種影響在時間上是可重復的,因此通過對歷史數據中各種因子的分析,能夠發現那些有投資價值的公司,因而適合的股票因子選擇也對選股策略的準確性有著很大影響。本文參考了多篇文獻[2-4]的分析,從動量因子,交易量因子,估值因子等多個方面初步選取了28個有效因子。
首先對因子進行歸一化處理,這里使用均值方差法將因子值域歸一到區間[0,1];另外為了減少噪聲,將當月超額收益分為數在20%到80%之間的數據去除。
對于機器學習來說,雖然更多的特征通常意味著對樣本更全面的表示,但使用的特征過多也會帶來訓練樣本數的增加,甚至可能引發維度災難[5],所以本文對28個因子的特征進行一次主成分分析,并根據分析結果選擇了前20維的因子,最終使用的股票因子如表 1所示。
實驗數據選用了2015年1月1日至2020年12月31日期間滬深300成分股全部股票每月最后交易日的股票因子值和月收益率。2015年1月1日至2019年5月31日的數據被作為訓練集來訓練模型,2019年6月1日到2020年12月31日的數據用于回測部分,經缺失值篩選后,剩余股票數據為11634條。
我們在計算因子時,需要獲得公司的某些財務數據,但在實際的投資過程中,公司財務數據的獲取往往并不是及時的,比如在6月底7月初時,第二季度已經結束,但有些公司的二季報仍未公布,這就帶來了信息的滯后性,為了使實驗結論能夠指導實際的投資,我們也需要對訓練的數據做相應的滯后處理。從公司財報最晚的公布時間來看,一二三季報的時間分別是當年4月底、8月底、10月底,而年報則是次年的4月底,由此可知我們在11、12月和次年前4個月應使用前一年三季報的數據,而5、6、7、8月則應使用本年度一季報及前一年的年報數據,9、10月份則正常使用三季報即可,如此可以貼合實際的操作。