劉佳琪 張建



摘要:以滬深300成分股作為股票池,選取2010年年初到2019年年初中價值類、成長類、規模類、交投類、情緒類、每股、質量類和風險類這8大類因子的數據,探討了XGBoost結合半衰期IC加權的方法在多因子選股模型中的應用。從實證中看出,在多因子選股策略中,利用XGBoost方法選取重要的因子,然后運用半衰期IC加權對重要因子進行賦權的方法在排名前10%的股票中可獲得年化收益率為26.86%,要比年化收益為2.05%的滬深300指數高出24.81%。這個方法可對量化選股提出新思路。
關鍵詞:半衰期IC加權 XGBoost 多因子 選股
一、引言與文獻綜述
近幾年來,量化投資慢慢在資本市場中占領了重要地位,發展迅猛,迅速成為國際投資界的一種新型方法。量化投資就是利用計算機的技術,并且采用一定的數學模型,踐行投資理念,實現投資策略的過程。它主要有幾大特點:紀律性,系統性,及時性,準確性和分散化。中國的量化投資發展還處于初級階段,我國A股市場發展歷程較短,還處于非有效或弱有效的市場階段,但是越來越多的人嘗試用數學,金融學,計算機技術相結合的量化投資方法把市場上被錯誤估計的股票挖掘出來,尋求超額收益。多因子選股模型是量化投資中非常重要的模型,該模型主要依據一系列的因子作為計算股票收益的標準,后根據收益率的高低選擇合適的股票。它的優點主要是對市場波動較為敏感,能夠依據最新市場行情改變選股策略,在不同的市場情況下,有不同的因子發揮作用,因此,各類的投資者在不同的市場情況下開發了不同的多因子模型。最早可以追溯到Fama & French(1996)等人提出的經典的三因子模型,該模型是將比較沒有風險的超額收益歸結到市場,規模效應,價值效應這三個因子中。Esmaeil Hadavandi et al.(2010)等人提出遺傳模糊系統和人工神經網絡兩者相結合的方法,構建股票價格預測模型。王春麗等(2018)利用回歸法研究多因子選股模型,對上證180指數成分股進行分析,并且證明了該方法能夠穩定的跑贏上證180的基準收益率。李文星和李文俊(2018)將一種帶有引力影響因子的半監督K-means的核聚類方法應用于多因子模型當中,表明了該方法比傳統的聚類模型有更強的泛化能力,在線性不可分非球狀簇的樣本中更具優勢,以便選出更優的股票組合。周亮(2019)是對2007年到2017年中證500成分股的6大類因子,研究分位數回歸方法在多因子選股模型中的情況,并且說明多因子選股模型能夠優于線性回歸模型。
本文選取2010年1月到2019年1月的滬深300成分股的數據進行建模,利用基于梯度提升樹的Xgboost算法自身能夠選取重要性的特點,篩選出重要的因子。因子具有短期動量效應,近期因子IC要比遠期IC影響要大,而半衰期IC加權方法對因子權重進行配置正好說明了這一特點,因此基于因子半衰期IC加權的方法和多因子選股模型結合,并進行評價與分析,是有理論和現實意義的。
二、多因子選股模型的方法框架
本文多因子選股模型為圖1,主要分為五步,分別為候選因子的選取,數據預處理,篩選重要因子,構建多因子模型,模型的評價與分析,下面是各個步驟的具體介紹:
(一)候選因子的選取
候選因子有多種選擇,可能是基本面指標,例如PB,PE等,也可以是技術面指標,例如動量,換手率等,又或者一些其他指標,如宏觀經濟變量等。如何選擇候選因子,主要依賴于經濟的邏輯和市場的經驗,但是選擇更多和更有效的因子是增強模型的信息收割能力,提高收益的關鍵因素之一。
(二)數據預處理
我們在初期獲取因子時,數據總會出現一些問題,例如存在噪音,數據量綱不統一,數據缺失等,因此應該對其進行預處理,讓數據更適應模型,匹配模型的需求。數據預處理的方法有許多,例如數據清理,數據集成,數據變化,數據規約等,本文主要對數據進行缺失值處理,離群值處理,標準化和中性化四步。
(三)因子篩選
市場上有成百上千的因子,但是這些因子在不同的情況下起著不同的作用。本文主要利用XGBoost方法查看哪些因子對收益率起著較大的作用。
1.理論。XGBoost是基于梯度提升樹實現的一種集成算法,能夠自動獲取特征因子的重要性,根據提升之后的樹可以進行特征的篩選。本文利用這一特點把比較重要的候選因子選擇出來。核心思想是通過許多弱分類器迭代計算,每次迭代都會生成一顆新樹,通過求CART樹的結構和葉子分數來優化xgboost的目標函數。
XGBoost主要是不斷的去添加新樹,學習新的函數去擬合上一次預測的殘差,而新的樹是通過特征分裂形成。其中XGBoost主要有兩件事:在已經知道第t-1顆樹的時候,預測下一顆樹的葉子結點的權重,和第t顆樹。目標函數可改寫為:
式(6)是用來衡量一顆樹的結構是好還是壞的標準,分數越小,代表這樣的結構越好,可以用來選擇最佳切分點,就是衡量節點在分裂前后式(6)對應的數值的大小來判斷是否需要分裂。分裂增益公式:
式(7)是XGBoost基樹的根據。分別代表左子樹分數,右子樹分數,和不分割可拿到的分數,并且可看出是可以在一定程度上控制分裂的程度。
2.XGBoost算法流程。
輸入:I,當前節點的數據集
輸出:d,特征維度
Step 3:以最高分分割輸出
XGBoost有許多優點,像引入正則項,降低了模型的方差,使所學的模型更加簡單,并且防止了過擬合;訓練速度更加快速;支持列抽樣;支持線性分類器。
(四)構建模型
多因子選股模型主要有兩種構建方式,分別是打分法和回歸法。本文采取的是打分法,打分法的主要思想是選出一些對股票收益能夠產生預測的因子,然后根據股票把各個因子值進行排序,并且給出在截面上的相對位置進行打分,隨后為每個因子分配權重,按照權重將每個股票的因子得分相加,得到個股的綜合分數,最后按照綜合分數進行降序排列,挑選出分數較高的股票構建投資組合。但是在多因子選股中,因子并不穩定,有的因子隨著時間逐漸失效,有的因子會隨著市場環境的變化而變化,使得因子在短期內失效,所以在打分法模型中,需要對選用的因子進行不斷的評價和改進。如果每次都依據最新的因子進行個股打分排名,重新構建投資組合,可能會造成很大的換手率,導致交易成本提高,所以需要以降低換手率為目標,此時可以適當對因子IC進行犧牲,因此本文采取半衰期IC加權的方法進行模型的構建。
3.半衰期IC加權。首先介紹因子IC ,其為當期因子值和下期的收益率的相關系數,表明了因子預測股票收益的能力。因子IC的時間衰減,是衡量一個因子對未來預測能力能夠持續多久。時間衰減過快可能會導致換手率較高,交易成本提高。通過許多研究,發現因子都會具有相對穩定的半衰期,即因子的有效性降低到一半所用的時間,為此,我們需要對不同的選股因子在不同樣本池的衰減速度進行分析,以做到因子加權時靈活配置因子權重,適應復雜多變的市場。
IC均值加權為過去的每期因子IC等權分配權重,也就是給定因子過去N期的因子IC向量,那么因子的權重為
因子具有動量效應,說明因子近期的IC對于當期權重的影響要大一些,遠期IC的影響要小一些,所以權重要給因子近期IC分配更大,才能更加適應市場短期的變化。
所以,我們用半衰期的權重來描述近期IC對因子的權重的影響用。半衰期為固定半衰期H,每隔H期的權重值以指數下降的方式降低一半。換句話說就是給定半衰期H,IC序列長度N,那么半衰期的權重向量其中為:
本文使用滬深300的數據進行對該方法的驗證,使用數據為2010年1月29到2019年1月31日,采用滾動窗口測試。
三、基于滬深300市場的多因子選股模型的實證分析
本文選取2010年年初到2019年年初的數據,其中訓練集是以滾動法進行訓練,例如以T日為準,每21個交易日為間隔區間,使用對應的特征和標簽作為訓練集。業績比較基準為滬深300本身。
(一)候選因子的選取
本文從價值類、成長類、規模類、交投類、情緒類、每股、質量類和風險類8大類因子的數據作為候選的因子,具體的因子見表1。
(二)數據預處理
1.缺失值處理。本文所采用數據缺失較少,因此使用均值來填補數據缺失的情況。
2.離群值處理。數據可能非常大或者非常小,會影響了分析的結果,尤其是在做回歸的時候,所以應該對數據進行離群值處理。本文采取MAD法(絕對值差中位數法),它計算所有因子與平均值之間距離的總和,放大了離群值的影響,能更清晰地從正常數據中觀測出離群值,是一種比較穩健的方法。
3.標準化。運用數據標準化可以使多個不同的量級指標間進行相互比較,或者使數據變得集中。本文利用z-score,即,將因子值的均值調整到0,標準差調整到1。
4.中性化。我們在利用因子的時候,由于因子之間可能會相互影響,導致有一些偏向性,選出來的股票偏向一方面,例如市凈率和市值之間有很高的相關性,如果選取沒有市值中性化的市凈率這種因子,選股就很集中。同樣的朝夕行業的的市盈率也類似,即行業也對估值因子有影響,所以要對市值和行業中性化。其具體方法就是利用回歸,得到一個與風險因子線性無關的因子,提取殘差作為中性化后的新因子。
是股票i的alpha因子,為股票i的總市值,為行業虛擬變量,就是股票i若屬于行業j,則暴露度為1,否則為0,每個股票i只屬于一個行業,不再對所屬行業進行劃分。
(三)篩選重要因子
如圖2,以XGBoost中形成的圖為例,從根節點出發,當operating_revenne<2.5696時執行yes,判斷net_profit與2.7606的大小,執行yes繼續判斷,當operating_revenne 2.5696時執行no,判斷BM與-0.3198的大小,以此類推直至葉子結點。
通過圖2可以得到計算每個因子后的收益率,然后把34個候選因子進行重要性排序。多次嘗試因子的組合,最終選取import>0.6的因子,也就是凈資產收益率(ROE),流通市值(circulating_market_cap),固定資產比例(FAP),總股本(capitalization),營業收入(operating_revenue),換手率(turnover_ratio),可以得到高收益,如圖3所示:
(四)模型的構建
利用上面選取出的6個比較重要的因子構建打分法模型。為了評估個股的綜合得分,模型對交易日的股票按照6個因子分別評分后再按照半衰期IC加權法進行計算,在綜合打分后,將市場中的所有股票進行排序,選取得分前10%的股票作為當月的投資組合I,即完成了模型選股的全部步驟。
(五)模型的檢驗
本文利用2010年年初到2019年年初共9年的數據驗證模型的有效性。每個月初都按照最新的綜合評分進行從大到小的排序,并且按照半衰期IC加權的方式分為Group1到Group5一共5組股票數量相同的組合,該組合持有到月末,再在下一個月月初進行同樣的方法進行構建,一直到檢驗最后。假設在2010年年初將1000元投資這五個組合,那么在2019年年末Group1到Group5的凈值為4620.5102,2830.2020,2380.7148,1930.2245,1540.3103,而投資滬深300指數的凈值為1190.2642。得分最高的組合年化收益率為23.8%,而滬深300指數為2.05%,超出指數21.75%,具體組合收益可以看表2,組合及指數的凈值曲線圖見圖4.
圖4由上往下以此為,Group1到Group5和HS300。
接下來比較投資組合I的凈值和滬深300的凈值,結果如圖5所示。
如圖5所示,投資組合I年化收益為26.86%高于年化收益為2.05%的滬深300指數;投資組合I的凈值為7.42高于凈值為1.19的滬深300指數,說明策略效果較好。
四、結論
量化投資的本質就是借用計算機將傳統投資的邏輯定量化,并具有紀律性、程序化等優勢,本文以量化投資中最常用的多因子模型為基礎進行研究。多因子選股就是提煉出能夠長期具備擇股的因素并通過各種方法加以整合。從模型可以看出,對選取的2010年年初到2019年年初的滬深300成分股中8大類因子的數據進行回測,回測數據為表1。然后利用XGBoost方法篩選出的重要因子為凈資產收益率(ROE),流通市值(circulating_market_cap),固定資產比例(FAP),總股本(capitalization),營業收入(operating_revenue),換手率(turnover_ratio)。采用動態的打分法為廣大的投資者提供一個簡單便捷,易操作,無需過多復雜整理運算的策略,并加入半衰期IC加權方法對模型進行構建。用歷史數據驗證了此策略的投資效果表現良好,結果為選出的前10%的股票中可獲得年化收益率為26.86%,要比滬深300的年化收益率高,高出24.81%。可以給當前投資者一條新的選股思路。
我們構建一個動態IC半衰期加權方法多因子組合,每期選擇因子打分排名前10%的股票作為投資組合。本文的選股方法在模型的檢驗期是有效的,由于月份眾多,本文只列出了幾個月份的股票組合,如表3。
本文還存在進一步改善和深化的地方,未來將會在以下幾個方面深入研究。其一,只是把模型與基準進行對比,沒有與其他模型的對比;其二,本文只是把樣本作為一個整體進行分析,而沒有依照不同的市場的風格的切換研究。后續研究將會對此進行詳細探討,檢驗此方法是否是比較不錯的選擇。可以為廣大投資者開拓思路,能夠與當前的投資行為更好的順應未來的市場行情波動。
隨著我國金融市場的逐步發展,應該利用多因子選股策略去發現一些被錯誤定價的股票,以期獲得超額收益。利用多因子選股策略進行投資將會是主要發展方向,會在越來越多的領域中出現,在以后的中國市場中,量化選股必將成為發展方向。
參考文獻:
[1]Fana E,French J R.Multifactor Explanations of Asset Pricing Anomalies [J].Journal of Finance,1996,51(1):55-84.
[2]Esmaeil Hadavandi,Hassan Shavandi,Arash Ghanbari. Integration of genetic fuzzy systems and artificial neural networks for stock price forecasting[J].Knowledge-Based Systems,2010,23(8).
[3]王春麗,劉光,王齊.多因子量化選股模型與擇時策略[J].東北財經大學學報,2018(05):81-87.
[4]李文星,李俊琪.基于多因子選股的半監督核聚類算法改進研究[J].統計與信息論壇,2018,33(03):30-36.
[5]周亮.基于分位數回歸的多因子選股策略研究[J].西南大學學報(自然科學版),2019,41(01):89-96.
[6]Brahim Ulas Ozturan,Elif Yaka,Selim Suner,Asim Enes Ozbek,Cansu Alyesil,Nurettin Ozgur Dogan,Serkan Yilmaz,Murat Pekdemir. Determination of carboxyhemoglobin half-life in patients with carbon monoxide toxicity treated with high flow nasal cannula oxygen therapy[J]. Clinical Toxicology,2019,57(7).
[7]Christophe Morel. Stock selection using a multi-factor model - empirical evidence from the French stock market[J].The European Journal of Finance,2001,7(4).
[8]Guresen E,Kayakutlu G,Daim T U.Using artificial neural network models in stock market index prediction[J].Expert Systems with Applications,2011,38(8):10389-10397.
[9]Qui-yong Zhao,Xiaoyu Zhao,Fu Duan. Prediction Model of Stock Prices Based on Correlative Analysis and Neural Networks[P].Information and Computing Science,2009. ICIC '09.Second International Conference on,2009.
[10]Tian Jinyu,Li Yanni,Lin Yan.The analysis of factors affecting special treated stocks[P]. Industrial and Information Systems (IIS),2010 2nd International Conference on,2010.
[11]Xue Chen College of Economics,Zhejiang University Hangzhou,China Xuejun Jin College of Economics,Zhejiang University Hangzhou,China. Detecting the Macroeconomic Factors in Chinese Stock Market Returns:A Generalized Dynamic Factor Model Approach[A].International AssociationofComputerScienceandInformationTechnology(IACSIT).Proceedings of 2010 2nd IEEE International Conference on Information and FinancialEngineering(ICIFE2010)[C].Inter-national Association of Computer Science and Information Technology(IACSIT):IEEE BEIJING SECTION(跨國電氣電子工程師學會北京分會),2010:5.
作者單位:河北工業大學理學院