APP下载

基于机器学习的多因子选股模型

2020-08-03刘佳琪张建

时代金融 2020年17期
关键词:多因子

刘佳琪 张建

摘要:以沪深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.

作者单位:河北工业大学理学院

猜你喜欢

多因子
基于多因子量化选股模型的采摘机器人学习策略研究
长三角地区GNSS可降水量直接转换模型研究
基于多因子AHP的印度汽车消费者决策研究
基于BP神经网络的多因子洪水分类研究
基于大数据的股票多因子量化投资策略优化研究
乳腺良恶性病变影像多因子评价与BI-RADS分类相关性研究
多因子协同作用对1992年和1998年黄淮地区夏季降水异常的影响
基于回归模型的方法分析半干旱流域的降雨径流关系
“多因子 全方位”加强对高校家庭经济困难学生引导
基于定权的多因子线性拟合方法研究