细分行业下的多因子选股模型丨优矿深度报告系列(十)

传统的多因子选股模型在给股票打分或者预测股票收益率,然后通过一定的技术手段,例如IC相关的加权方式,确定每个因子的权重,然后根据权重汇总得到股票的得分或者预期收益率的估计。并由此来构建组合,一般对于量化绝对收益产品来说,为了控制风险,需要让做多的股票组合的行业配权重与基准达到一致。也就是说,我们的选股是在每个行业内进行的,这就隐含了一个前提,我们最终进行选股的因子在这个行业内具有预测能力。但这个前提并不是在每个行业当中都成立。

事实上是,不同的行业,板块的股票的价格驱动因素并不完全一样。例如,价量因子在小盘股当中预测性更强;财务质量因子在价值股当中更为显著;成长因子偏好那些高成长的行业等等,分行业或者分域建模结果可能会更好。

还有一点在于,同一只股票在不同域下去极值和标准化后的值不一样。以对数市值因子为例,银行行业有很多市值很大的股票,如果是全域去极值处理,将会导致一些银行在市值上的得分一致。而如果在行业内进行去极值并标准化,那么它们的因子得分是不一样的。

因此,如果使用全市场有效因子来对行业内的股票收益做预测,效果可能不如用行业内有效因子来对行业内股票收益做预测更加有效。本文目的在于以行业为单位,希望能够筛选出一些行业,并且在这些行业内进行单独建模(分行业模型),从而提升组合的整体表现。通过我们的实证研究,结论如下:

从结果上来看,分行业模型确实能够显著提升组合的业绩表现。通过分行业模型整合得到的因子,构建沪深300指数增强组合,从2011年1月回测至2017年12月,月度调仓,组合主动年化收益为11%,IR为2,最大回撤为5.3%,而基于全市场模型得到沪深300指数增强组合,主动年化收益仅为6.3, IR为1.06,最大回撤为11%,各项指标提升效果显著。

第一部分:数据及工具函数的准备

主要进行数据的预加载以及处理。包括因子值的获取和处理,工具函数的编写等等。

2第二部分:细分行业下的因子测试

2.1 因子库及测试方法

在优矿的因子库当中,精选了26个因子,如下:

测试方法

股票池:

行业内动态股票池

上市6个月以上

去除ST,*ST,以及ST摘帽不足3个月的股票

预处理:

去极值:我们首先对因子进行去极值的处理,这里,正如我们前面所说的,极值的处理使用分行业下的去极值操作,去极值的方法采用MAD法,关于极值的处理方法在选股因子数据的异常值处理和正态转换进行了详细的说明

中性化:行业内因子也可能收到市值风格上的干扰,为了排除市值的影响,本文统一做市值+行业中性化

标准化:传统的z-score方法

有效因子的筛选:

计算过去滚动12个月的IC均值和IC_IR

筛选IC均值高于0.04的股票

筛选IC_IR高于0.25的股票

因子的合成:

采用IC_IR加权的方式进行因子的合成

组合构建及回测参数设置:

等权构建组合

多头:行业内排名前30%;空头:行业内排名后30%

回测区间:2011年1月-2017年12月

月度调仓

基准选择申万对应的行业指数

测试的内容:

全市场模型与分行业模型多头组合的收益率,IR,多空组合的收益率和IR

展示了两个模型的多头组合,空头组合,多空组合的净值曲线

统计了,每期大类因子加权的平均权重,从而可以推断当前行业下比较有效的大类因子

注意:在测试因子之前,需要当心模型引入前视偏差的问题。例如,如果我们在2017年年底进行因子的有效性分析,并将筛选出的因子用于历史回测,这样便存在明显的未来数据,原因在于我们得到的哪些因子有效的结论是从2017年底得到的,这是一个样本内的结论,将这样的结论应用在样本内并进行回测,显然是不够科学和准确的。本文极力避免未来数据的引入,采用滚动的因子筛选的方法

2.2 行业测试

全市场选股模型:在行业测试之前,我们动态的构建全市场选股模型。选择过去一年IC均值高于0.04,IC_IR高于0.25的因子,使用IC_IR加权的方式进行合成。

1、银行业

从上面的结果来看:

相对于全市场选股模型来说,行业内选股模型的多头年化超额收益为13.7%,IR为0.95,而全市场模型多头年化超额收益仅为5.3%,IR为0.4;

同时行业内选股模型的多空年化超额收益为7%,IR为0.91,而全市场模型几乎为0,IR为0.033;

以上两点说明银行业内的选股模型较全市场模型效果要好很多;

银行业内,全市场模型的因子方向并不稳定。2012年末至2015年中,空头组合的表现要优于多头组合的表现;

银行业内,估值,盈利因子的预测能力要高于其它。

2、非银金融

从上面的结果来看:

对于非银金融行业,行业内建模的效果不及全行业模型

非银金融行业内,动量,流动性两类因子的预测能力最强,估值因子次之

3、家电行业

从上面的结果来看:

相对于全市场选股模型来说,行业内选股模型的多头年化超额收益为33%,IR为1.98541,而全市场模型多头年化超额收益为30.4%,IR为1.76469;

同时行业内选股模型的多空年化超额收益为11.4%,IR为0.8329,而全市场模型为5.3%,IR为0.39;

从多头组合超额收益来看,两者相差不大;从多空收益来看,分行业模型显然更好一些;

家电行业内,动量,流动性等技术类因子的预测能力最强,估值因子次之。

4、休闲服务

从上面的结果来看:

对于休闲服务行业,行业内建模的效果不及全行业模型

5、传媒行业

从上面的结果来看:

相对于全市场选股模型来说,行业内选股模型的多头年化超额收益为15.8%,IR为0.99,而全市场模型多头年化超额收益为5.4%,IR为0.32;

同时行业内选股模型的多空年化超额收益为14.1%,IR为1.32,而全市场模型为7.4%,IR为0.66;

显然,分行业建模效果要优于全行业模型;

传媒行业内,动量因子的预测能力最强,估值,流动性因子次之,两者权重占比也几乎相同。


2.3 分行业模型表现对比

对申万一级行业中的各个行业用上面的方法进行分行业建模,并和全市场模型,以及不同行业之间进行纵向与横向对比:

从上表可以多空组合的IR来看,传媒,有色金属,医药生物,化工,电子,商业贸易,家用电器,食品饮料,综合,计算机,房地产,银行这几个行业,基于全市场模型得到的因子并不完全适用,例如对于食品饮料行业,基于全市场模型构建的多空组合IR为负,而分行业模型得到的多空组合IR为0.75,相差明显;

而采掘,非银金融,钢铁,通信,国防军工,休闲服饰,建筑装饰等行业内,行业内模型不如全市场模型;

剩下的行业两者之间差别不大,简单起见,可直接使用全市场模型。

第三部分:行业因子的整合

3.1 因子整合

使用分行业模型来计算传媒,有色金属,医药生物,化工,电子,商业贸易,家用电器,食品饮料,综合,计算机,房地产,银行这几个行业的因子得分,然后计算沪深300、中证500指数成份股的因子得分。

3.2 IC分析

计算整合后的因子与全市场模型得到的因子的IC以及IC_IR:

小结:

可以看到我们从优矿因子库精选出的因子,并通过全市场模型得到的合成的因子IC很高;

对于沪深300成分股分行业模型的IC,IC_IR均要高于全市场模型,体现在因子的预测能力,稳定性会更好;

对于中证500成分股分行业模型的IC均值要低于全市场模型,IC_IR要高于全市场模型,体现在因子的稳定性会更好。

3.3 组合构建及回测

我们根据分行业模型整合得到的因子进行组合构建,每个行业内取前10%的股票,组合行业基准与基准的行业权重保持一致,采用流通市值加权的方式构建组合。

沪深300指数增强组合回测分析:

中证500指数增强组合回测分析:

对于沪深300增强组合:

从2011年初至2017年末,分行业模型超额年化收益率,IR几乎为全市场模型的两倍,而最大回撤仅为全市场模型的1/2;

除了2014年,分行业模型超额收益均高于全市场模型,在2014年4月份以前,全市场模型几乎没有收益,而分行业模型持续稳定的获得超额收益;

在2017年市场风格发生巨大变化的情况下,全市场模型持续回撤,而分行业模型要好很多;

分行业模型较全市场模型,对沪深300成分股内指数增强组合有着显著的提升效果。

对于中证500增强组合:

从2011年初至2017年末,分行业模型超额年化收益率,IR,最大回撤等性能指标依然优于全市场模型,但没有沪深300那么显著。

第四部分:总结

本文从优矿的因子库当中精选了规模,动量,波动性,流动性,估值,成长,盈利等不同维度下,共26个比较公认的有效因子。

在传统的多因子模型的基础上,本文做了进一步的扩展。传统的多因子模型,在为了控制组合的风险的基础上,都会加行业中性的处理。这隐含着一个前提假设是因子在行业内也具有预测的能力,但这种假设并不完全成立。

就像分域研究一样,有的因子在小市值范围内预测能力较好,而在大市值范围内却没有预测能力一样。

沪深300域内,金融行业占比很高,保证组合的权重行业表现要优于基准也是策略成功的关键,因此分行业建模重要性不言而喻,本文最终的实验结果也验证了这一点。

在选择的这些因子上,对部分行业验证分行业模型与全市场模型的不同。同时,为了避免未来数据的引入,本文采用动态的模型。从结果来看,部分行业采用分行业模型效果更好。

还有一部分行业,分行业模型不如全市场模型,原因可能在于本文的因子库构建并不完全。例如,对于非银金融、银行等,因为经营业务的不同,一些在其它行业或者全行业有效的因子并不完全适用,需要单独寻找一些符合行业特征的因子;同时,针对不同行业,本文采取了同样一套因子的筛选准则,但是这并不一定对所有行业都适用,这也是导致模型是否有效的原因之一。

因子合成的方式有很多,传统的静态,动态,以及机器学习的方法合成因子,事实上本文也提供了另外一种思路,通过部分行业,进行行业内的有效因子的配权,进而提升组合的业绩表现。

综合来说,本文只是对分行业建模进行了初步的尝试,验证了这一想法的可行性。读者如果感兴趣,还可以针对一些特殊的行业,例如银行,构建特有的因子。

-- the end --

意犹未尽?到优矿客户端和官网深度报告频道获取完整报告和源代码!!

专业版的用户可以查看并一键克隆所有的深度报告,试用专业版的用户可以查看并一键克隆当月的两篇报告,社区版的用户可以查看我们的报告,寻找研究思路。

@今日话题  $中兴通讯(SZ000063)$  $华大基因(SZ300676)$  $中国平安(SH601318)$  

雪球转发:2回复:1喜欢:9

全部评论

量化钢铁侠 2018-07-17 12:01

沪深300或者中证500成分股里面再分行业,一些小行业的样本量太少了。