【研报分享】渤海证券:随机森林与传统多因子模型的选股风格对比

随机森林选股
标签: #<Tag:0x00007f5b8fa44128>

(bnamor) #1

随机森林与传统多因子模型的选股风格对比

核心观点:

 模型建立方法:
本篇报告中,我们分别使用机器学习中的随机森林算法与传统的线性回归方法,针对沪深 300 成分股、中证 500 成分股与全体 A 股构建多因子选股模型,比较二者的历史表现。同时针对两类模型选出的股票池,运用业绩归因方法来探寻两个模型在选股上的风格异同,通过对比组合的因子暴露和因子收益来确定两种选股结果的主要收益来源。随机森林多因子模型构建方法:每个月月末截面期,选取下个月收益排名前 30%的股票作为正例,后 30%的股票作为负例。将当前月份前 12个月的样本合并形成训练集。使用训练集训练随机森林模型,预测下一月个股涨跌概率,选取上涨概率最高的 50 支股票组成股票池。传统多因子模型构建构建方法:采用估值、盈利、成长、动量、反转、波动率、流动性、市值八大类因子建立线性回归模型,采用 12 个月的移动平均方法预测因子未来收益。

 回测结果总结:
在各个样本池中,随机森林模型的表现相比于传统多因子模型均有一定程度的提升,尤其是在相比业绩基准的月度胜率上的提升十分显著。这说明随机森林模型相比传统多因子模型具有更强的灵活性,可以更快的把握市场风格的转变。在业绩归因模型中,传统多因子模型在大部分因子暴露上的波动率均明显大于随机森林模型。这说明在不加限制的情况下,传统多因子模型的选股风格可能会更加极端化。通过对于不同样本范围内选股结果的分析,可以发现,股票池中的小市值股票越多(全 A>中证 500>沪深 300),模型选股结果的因子波动性越大,同时在市值因子的暴露也逐步上升。对市值因子的依赖是多因子模型一直面临的问题,在实际应用中,我们推荐对于市值因子做一定的风险敞口控制,以防止因子失效带来的大幅回撤风险。

 风险提示:
随着市场环境变化,模型存在失效风险。
随机森林与传统多因子模型的选股风格对比

目 录

1. 概述
2. 随机森林多因子模型的建立与运行结果
2.1 因子提取
2.2 数据前期处理
2.3 模型建立
3. 回测结果
3.1 针对沪深 300 的选股模型
3.2 针对中证 500 股票的选股模型
3.3 针对全体 A 股的选股模型
4.总结与未来研究方向展望

表目录
表 1:因子定义
表 2:沪深 300 选股模型历史回测结果
表 3:沪深 300 选股模型历史分年度收益统计结果
表 4:沪深 300 选股模型因子统计结果
表 5:中证 500 选股模型历史回测结果
表 6:中证 500 选股模型历史分年度收益统计结果
表 7:中证 500 选股模型因子统计结果
表 8:全体 A 股选股模型历史回测结果
表 9:全体 A 股选股模型历史分年度收益统计结果
表 10:全体 A 股选股模型因子统计结果

图目录
图 1:随机森林算法示意图
图 2:沪深 300 选股模型回测收益曲线
图 3:沪深 300 选股模型对冲基准回测收益曲线
图 4:沪深 300 选股模型市值因子历史暴露
图 5:沪深 300 选股模型成长因子历史暴露
图 6:沪深 300 选股模型盈利因子历史暴露
图 7:沪深 300 选股模型估值因子历史暴露
图 8:沪深 300 选股模型动量因子历史暴露
图 9:沪深 300 选股模型反转因子历史暴露
图 10:沪深 300 选股模型波动率因子历史暴露
图 11:沪深 300 选股模型流动性因子历史暴露
图 12:中证 500 选股模型回测收益曲线
图 13:中证 500 选股模型对冲基准回测收益曲线
图 14:中证 500 选股模型市值因子历史暴露
图 15:中证 500 选股模型成长因子历史暴露
图 16:中证 500 选股模型盈利因子历史暴露
图 17:中证 500 选股模型估值因子历史暴露
图 18:中证 500 选股模型动量因子历史暴露
图 19:中证 500 选股模型反转因子历史暴露
图 20:中证 500 选股模型波动率因子历史暴露
图 21:中证 500 选股模型流动性因子历史暴露
图 22:全体 A 股选股模型回测收益曲线
图 23:全体 A 股选股模型对冲基准回测收益曲线
图 24:全体 A 股选股模型市值因子历史暴露
图 25:全体 A 股选股模型成长因子历史暴露
图 26:全体 A 股选股模型盈利因子历史暴露
图 27:全体 A 股选股模型估值因子历史暴露
图 28:全体 A 股选股模型动量因子历史暴露
图 29:全体 A 股选股模型反转因子历史暴露
图 30:全体 A 股选股模型波动率因子历史暴露
图 31:全体 A 股选股模型流动性因子历史暴露

1.概述

长久以来,多因子模型都是在量化选股中最常用的模型之一,该模型通过探寻因子和股票收益率之间的统计关系,预测股票未来的收益,从中选择优质标的。传统的多因子模型假设标的未来收益与因子间存在线性关系,通过截面线性回归构建模型。历史上,该模型在中国 A 股市场中取得了较好的效果。2017 年以来,A股市场风格经历了较大转变,传统多因子模型的表现较之前有了一定的回撤。于是寻找更及时、更高效的收益预测算法成了多因子模型研究中亟需解决的问题。随机森林算法是机器学习算法的一种。相比于其他机器学习算法和传统线性回归模型,随机森林算法具有直观,参数少,抗干扰,不易出现过拟合等优点。在之前的报告中,我们使用随机森林算法建立的针对行业指数的择时模型,取得了较好的择时结果。在本篇报告中,我们将随机森林算法引入多因子模型,使模型更灵活更稳定,回测取得了较好的结果。关于随机森林算法的介绍,请参见报告《使用随机森林算法的行业轮动模型——行业轮动专题一》

2.随机森林多因子模型的建立与运行结果

2.1 因子提取

随机森林模型与传统线性回归模型不同,因子不需要规避多重共线性限制,可以尽量多的考虑各种有效因子。因子的选择上,我们具体测试了估值、盈利、成长、动量、波动率、流动性、市值、反转八大类共 91 个小因子,并在测试名单中涵盖了 Barra CNE5 手册中的大部分因子,具体因子定义见下表:







2.2 数据前期处理

提取的因子数据需经过数据对齐、去极值、标准化、缺失值处理等步骤,才可进入下一步的选股模型。

数据对齐:上市公司财报的报告期和报告发布日期之间有一定延迟,为避免未来信息,在提取数据的时候,需要对日期进行修正,保证因子数据为当时能获取的最新财报数据。

去极值:为避免数据中的极端值对回归结果产生过多影响,我们使用“中位数去极值法”,将超过上下限的极端值用上下限值代替。

10

缺失值处理:提取出的因子可能会因为技术原因等情况出现缺失值,将缺失值设为申万一级行业个股当期因子的中位数。

标准化:由于各个因子的单位不同,为了使其具有可比性,需要对其进行 ZScore标准化处理,即减去序列均值除以序列标准差,使因子序列近似成为一个符合N(0,1)正态分布的序列。

行业市值中性化:将最后得到的因子序列对流动市值与行业哑变量做线性回归,取残差作为新的因子值。

2.3 模型建立

样本范围:本篇报告中,我们针对三类样本做了回测,分别为沪深 300 成分股、中证 500 成分股以及全体 A 股。回测标的中剔除 ST/PT 股票,剔除上市交易不满两年的股票。

样本期:2010 年 1 月-2018 年 6 月,按月提取。

训练集合成:每个月月末截面期,选取下个月收益排名前 30%的股票作为正例(y=1),后 30%的股票作为负例(y=0)。将当前月份前 12 个月的样本合并形成训练集。使用训练集训练随机森林模型,预测下一月个股涨跌概率。

模型建立方法:每月选取 N 只股票组成股票池(N=50),等权配置。回测中已剔除停牌、涨停等不能交易的因素。

对比传统多因子模型:为了更好的展示随机森林多因子模型的选股效果,我们同时使用传统多因子模型在同样的时间段进行选股,与随机森林模型选股结果进行对比。传统多因子模型采用估值、盈利、成长、动量、反转、波动率、流动性、市值八大类因子建立线性模型,采用 12 个月的移动平均方法预测因子未来收益。传统多因子模型具体建立方法可参照之前发表的报告《多因子模型研究之二:收益预测模型》中的移动均值模型。

业绩归因模型:为了具体对比两个模型在选股上的风格异同,我们针对两类模型历史上选出的股票池,运行业绩归因模型。业绩归因模型中的因子沿用了传统多因子模型的八大类因子。业绩归因模型是用来衡量投资组合选股风格的模型。主要通过组合的因子暴露和因子收益来确定投资组合的主要收益来源。其中因子暴露度的计算公式为:
10
通过业绩归因模型,我们可以看出模型选股在不同因子上的暴露与收益,从而解读模型选股风格。

3.回测结果

3.1 针对沪深 300 的选股模型

通过统计针对沪深 300 的回测结果,可以看出,使用了随机森林多因子模型后,模型的收益和胜率相对传统多因子模型均有所提升,年化收益提升 1.75%,相对沪深 300 月度胜率提升 5%。

分年度对比两个选股模型的历史收益,可以看到 2010 年至 2012 年和 2016 年至2018 年,随机森林模型表现略逊与传统多因子模型,2013 年至 2015 年,随机森林模型表现超越传统多因子模型。

从图中也可以看出,随机森林模型相对传统多因子模型的收益主要来自 2014 年市场风格转换期间,随机森林模型相对传统多因子模型更快的把握住了市场风格的切换,从而取得了超越指数的收益。


通过业绩归因模型,我们考察了两类选股模型在不同因子上的风格暴露,可以发现传统多因子模型在因子暴露上的波动率明显大于随机森林模型,几乎为随机森林的一倍。在因子收益方面,传统多因子模型的收益主要来自于市值与估值因子,而随机森林模型的收益来源则相对更为平均。这说明在不加限制的情况下,传统多因子模型选股风格可能会更加极端化。

接下来,我们详细考察了两类模型在各个因子上因子暴露时间序列。可以看出随机森林模型与传统多因子模型在市值、成长、盈利、估值、流动性、波动率因子上选股风格较为一致,传统多因子模型因子暴露绝对值普遍较高。针对动量(过去一年/近一月个股涨跌幅)与反转因子(近一月个股涨跌幅),两个模型的判断出现了一定分歧,结合上表,随机森林模型在反转因子上的因子收益为负,传统多因子模型在动量因子上的因子收益为负,可以看出随机森林模型更擅长针对反转因子这种较为短期的因子做判断,传统多因子模型更擅长针对动量因子这种更长期的因子做判断。



3.2 针对中证 500 股票的选股模型

在针对中证 500 的回测结果中,可以看出,使用了随机森林多因子模型后,模型的波动率和胜率相对传统多因子模型均有所好转,波动率降低 1%,相对中证 500月度胜率提高 6%。

分年度对比两个选股模型的历史收益,可以看到 2010 年至 2013 年,随机森林模型表现略逊与传统多因子模型,2013 年至 2018 年,随机森林模型表现超越传统多因子模型。

从图中也可以较为明显的看出这一趋势。2017 年以来,传统多因子模型经历了较大回撤,而随机森林模型依然保持上涨。随机森林模型相对传统多因子模型的收益主要来自 14 年和 17 年市场风格转换期间,随机森林模型更快的把握住了市场风格的切换。


通过业绩归因模型,可以发现传统多因子模型在因子暴露上的波动率依然明显大于随机森林模型。在因子收益方面,传统多因子模型的收益主要来自市值、流动性与波动率因子,而随机森林模型的收益主要来自于流动性、波动率与估值因子。

观察两类模型在各个因子上因子暴露时间序列,可以看出随机森林模型与传统多因子模型除市值之外的因子上选股风格均较为一致,传统多因子模型因子暴露绝对值普遍较高。2010 年至 2013 年,传统多因子模型在给予市值因子非常大的负向暴露,而随机森林模型在市值因子的暴露上则十分保守,这也可能是 2010 年至 2013 年间随机森林模型跑输传统多因子模型的主要原因。



3.3 针对全体 A 股的选股模型

在针对全体 A 股的回测结果中,可以看出,使用了随机森林多因子模型后,模型的收益率和胜率相对传统多因子模型均有较大提高,年化收益率提高 3%,相对沪深 300 月度胜率提高 4%。

分年度对比两个选股模型的历史收益,可以看到随机森林模型相对传统多因子模型的收益主要来自 2013、2014 和 2017 年,随机森林模型更快的把握住了市场风格的切换。

从图中也可以较为明显的看出这一趋势。2017 年以来,传统多因子模型经历了一定回撤,而随机森林模型依然保持上涨。


通过业绩归因模型,可以发现相对沪深 300 与中证 500 选股模型,全 A 选股模型的因子波动率均有了较大上涨,传统多因子模型在因子暴露上的波动率依然明显大于随机森林模型。在因子收益方面,传统多因子模型的收益主要来自市值、流动性与反转因子,而随机森林模型的收益主要来自于市值、流动性与估值因子。市值因子在两个模型的收益来源中均起到了最大的作用。

观察两类模型在各个因子上因子暴露时间序列,可以看出随机森林模型与传统多因子模型在大部分因子上选股风格较为一致,传统多因子模型因子暴露绝对值大幅高于随机森林模型,在盈利、成长与反转因子上尤其明显。考虑到最后选股结果上传统多因子模型持续跑输随机森林模型,其过于激进的因子暴露可能会带来不尽如人意的结果。


4.总结与未来研究方向展望

本篇报告中,我们针对沪深 300 成分股、中证 500 成分股与全体 A 股,分别使用机器学习中的随机森林算法构建了多因子选股模型,并与传统多因子模型进行对比。通过对比我们发现:

  1. 在各个样本池中,随机森林模型的表现相比于传统多因子模型均有一定程度的提升,该提升主要是由随机森林模型在 2014 年与 2017 年市场转换时期表现出的相对传统多因子模型更强的灵活性导致的。所以,在市场风格不明显,未来趋势不清晰的情况下,更推荐使用随机森林模型,来控制未来市场风格切换的风险。

  2. 通过业绩归因模型,我们考察了两类选股模型在不同因子上的风格暴露。在各个样本池中,传统多因子模型在各个因子暴露上的波动率均明显大于随机森林模型。这说明在不加限制的情况下,传统多因子模型的选股风格可能会更加极端化。所以在使用传统多因子模型时,我们推荐与风险模型相结合,控制投资组合的整体风险(风险模型建立的具体细节可参见研报《多因子模型研究之三:风险模型与组合优化》)。

  3. 各个样本池间横向比较,可以发现,股票池中的小市值股票越多(全 A>中证500>沪深 300),模型选股结果的因子波动性越大,同时在市值因子的暴露也逐步上升。对市值因子的依赖是多因子模型一直面临的问题,在实际应用中,我们推荐对于市值因子做一定的风险敞口控制,以防止因子失效带来的大幅回撤风险。

未来,我们计划从以下三方面继续改善多因子模型:

  1. 尝试使用更多机器学习算法,如 Boosting、SVM、神经网络等;
  2. 将收益模型与风险模型相结合,进一步控制模型波动率;
  3. 对于模型建立的细节进行进一步的完善,如因子预处理方法的选择对比等;
  4. 将因子分析方法引入行业模型,分行业建立细分多因子模型,与行业轮动模型结合,形成自上而下的选股体系。

风险提示:随着市场环境变化,模型存在失效风险。

作者:渤海证券金工团队