【宽客研报】渤海证券:使用随机森林算法的行业轮动模型

0
回复
5514
查看
[复制链接]

196

主题

140

回帖

1444

积分

管理员

积分
1444
来源: 2019-9-5 21:49:58 显示全部楼层 |阅读模式
使用随机森林算法的行业轮动模型核心观点:
1、 长久以来,选股与择时都是量化金融领域面对的两个最主要的问题。多因子模型是在量化选股中最常用的模型,在之前的报告中,我们详细介绍了这一模型。然而2017 年以来,市场分化逐渐显著,靠选股获得 alpha收益的难度越来越大。这时,我们就需要依靠择时模型来减小规避系统性风险,减小策略回撤。
2、 随机森林算法是一种机器学习分类算法。它通过训练样本生成大量决策树,综合所有决策树的分类结果得到最终决策。相比于其他机器学习算法和传统线性回归模型,随机森林算法具有直观,参数少,抗干扰,不易出现过拟合等优点。将随机森林算法引入择时模型,可以减少主观判断对于择时结果的影响,挖掘市场更深层次的运行规律。
3、 将 28 个申万行业指数作为择时标的,提取 41 个有效因子,以 2010-2016年数据为样本集,2017 年-2018 年数据组为验证集,建立择时模型。模型平均准确率 54.48%,2017 年至今平均超额收益 15.03%,平均择时净值 1.07,平均减少最大回撤 11.73%。在 28 个行业中,有 25 个行业的择时结果强于指数,取得超额收益的概率高达 89%。2017 年至今,市场呈现较为明显的分化局势,仅 7 个行业收益为正,21 个行业都有不同程度下跌。择时后,收益为正的行业增加至 20 个,且剩余 8 个收益为负的行业净值相比不择时的情况都有了大幅提升。
4、 根据择时结果,可建立行业轮动模型,每周调仓。在大部分行业普遍回调的情况下,模型依然取得了正收益。最终轮动模型年化收益 4.4%,超出上证综指 5.7%;最大回撤 10.7%,小于上证综指的 14.6%。
5、 在未来,我们还计划陆续推出行业内的多因子选股模型。该模型和行业内选股模型相结合,可以达到自上而下择时选股一体的优化结果,得到更灵活、更细致、更有针对性的量化模型。
6、 风险提示:随着市场环境变化,模型存在失效风险。
目 录
1.概述
2.随机森林算法理论介绍【宽客之家】
2.1 决策树
2.2 集成方法
2.3 随机森林算法
3. 行业轮动模型的建立与运行结果
3.1 因子提取
3.2 模型建立
3.3 择时结果
3.4 行业轮动模型
4.总结与未来研究方向展望
表目录
表 1:因子列表与释义
表 2:分行业择时结果
图目录
图 1:决策树技术面择时示意图
图 2:随机森林算法示意图
图 3: 农林牧渔行业择时结果
图 4:采掘行业择时结果
图 5: 化工行业择时结果
图 6:钢铁行业择时结果
图 7: 有色金属行业择时结果
图 8:电子行业择时结果
图 9: 家用电器行业择时结果
图 10:食品饮料行业择时结果
图 11:纺织服装行业择时结果
图 12:轻工制造行业择时结果
图 13:医药生物行业择时结果
图 14:公用事业行业择时结果
图 15: 交通运输行业择时结果
图 16:房地产行业择时结果
图 17:商业贸易行业择时结果
图 18:休闲服务行业择时结果
图 19: 综合行业择时结果
图 20:建筑材料行业择时结果
图 21: 建筑装饰行业择时结果
图 22:电气设备行业择时结果
图 23: 国防军工行业择时结果
图 24:计算机行业择时结果
图 25: 传媒行业择时结果
图 26:通信行业择时结果
图 27: 银行行业择时结果
图 28:非银金融行业择时结果
图 29: 汽车行业择时结果
图 30:机械设备行业择时结果
图 31:行业轮动模型收益
1.概述
长久以来,选股与择时都是股票量化领域面对的两个最主要的问题。多因子模型是在量化选股中最常用的模型,在之前的报告中,我们详细介绍了这一模型。然而 2017 年以来,市场分化逐渐显著,靠选股获得 alpha 收益的难度越来越大。这时,我们就需要依靠择时模型来规避系统性风险。有效的择时策略可以平滑收益曲线,减小策略回撤。相比与完全对冲策略而言,择时策略不需要承担高额的对冲成本,是性价比更高的选择。
随机森林算法是一种机器学习分类算法。它通过训练样本生成大量决策树,综合所有决策树的分类结果得到最终决策。相比于其他机器学习算法和传统线性回归模型,随机森林算法具有直观,参数少,抗干扰,不易出现过拟合等优点。将随机森林算法引入择时模型,可以减少主观判断对于择时结果的影响,挖掘市场更深层次的运行规律。
理论上讲,择时模型可以应用于任何股票,甚至其他种类的资产。但考虑到单支股票走势受较多突发新闻与人为因素影响,我们在这里选择使用 28 个申万行业指数作为择时标的,组成行业轮动模型。这样选择的另一个原因是,在未来,我们还计划陆续推出行业内的多因子选股模型。该模型和行业内选股模型相结合,可以达到自上而下择时选股一体的优化结果,得到更灵活、更细致、更有针对性的量化模型。
2.随机森林算法理论介绍2.1 决策树
决策树方法最早产生于 20 世纪 60 年代,由 Hunt 等人提出。70 年代末,Quinlan
提出 ID3 算法,引进信息论中的有关思想,提出用信息增益(information gain)
作为特征判别能力的度量,并采用迭代算法进行建模。1984 年 Breiman 等人提出CART 算法,CART 是一种典型的二叉决策树算法,既可以做分类,也可以做回归,应用十分广泛。1993 年 Quinlan 以 ID3 算法为基础提出 C4.5 算法,新算法在缺失值处理、剪枝技术、派生规则等方面做了较大改进,C5.0 是 C4.5 的商业改进版。C5.0 和 CART 是目前较为广泛使用的决策树算法。
决策树算法的构建核心是归纳算法。建模之初,全部数据组成一个节点,称为根节点,根据数据特征,选取最优的划分条件,将数据分成两个或多个纯度更大的数据子集,依次递推,直到满足预先设定的某个条件后停止。其最终结果看上去像一棵倒长的树,这也是算法名的来源。
决策树的建立步骤如下:
  • 特征选择:从训练数据的特征中选择一个特征作为当前节点的分裂标准(特征选择的标准不同产生了不同的特征决策树算法)。
  • 决策树生成:根据所选特征评估标准,从上至下递归地生成子节点,直到数据集不可分则停止决策树停止生成。
  • 剪枝:决策树容易过拟合,需要剪枝来缩小树的结构和规模(包括预剪枝和后剪枝)。
    根据不同的算法,衡量节点不纯度的指标包括错分率、Gini 指数、熵(entropy)等等。
同样是分类算法,与逻辑回归相比,决策树每次只对单一特征进行划分,拟合出来的函数为分区间的阶梯函数。这种算法更接近人的思维方式,模型具有更好的可解释性,且可以产生可视化的分类规则。决策树的这种算法构造,决定了它是一类很适合用于择时模型的算法。
80efb3e6df2ef5ea44e0077c900382e3c8bad334.jpeg
如图 1 所示,决策树算法通过考察不同技术因子的值,分部对下一阶段股票走势进行判断,也很类似于我们使用技术因子进行股票择时的思维步骤。决策树模型最大的问题是不稳定,容易过拟合。数据上微小的扰动都可能得到完全不同的分支结果,使模型的解释性产生问题。接下来介绍的随机森林方法,通过组合多棵决策树,可以显著降低方差,解决过拟合问题,是一种常用的集成方法(Ensemble method)。
2.2 集成方法(Ensemble method)
集成方法是一种增强预测性的统计学习算法。集成方法不是构造分类模型,而是用一定方式将多个模型组合起来,用以训练拟合数据。通过构造一系列分类器,通常是小型决策树,为预测进行加权投票,最后完成对于数据点的分类。集成学习方法主要分两类:bagging 和 boosting。
Bagging 是 bootstrap aggregating 的缩写,它指的是利用 Bootstrap 抽样方法对训练集进行抽样,得到一系列新的训练集,对每个训练集构建一个预测器,称为基预测器(base predictor),组合所有预测器得到最终的预测模型,最终的预测模型是所有基预测器投票的结果。这种方法可以降低方差,同时避免过拟合。
另一方面,boosting 方法则是以上一步模型的误分类为着重训练目标的集成方法。Boosting 从原始数据拟合的一个简单分类器开始。在拟合完成第一个模型之后,计算出分类错误,给数据重新分配权重,之前被错误分类的样本比正确分类的样本有更高的权重。观测值在每一步中不断的重新分配权重,上一个模型错误分类的观测获得更高的权重。最后的预测结果将由在迭代过程中生成的每一棵树投票,并由树的精确度计算权重得出。Boosting 的预测准确率可能会高于 bagging,但是它有可能会造成过拟合的后果。
随机森林(random forest)算法在 2001 年由 Breiman 提出,与 bagging 算法类似,可以看成是 bagging 算法的一种变体。由于这种算法在训练、调参时简单有效,因此是目前相当流行的一种集成算法。
2.3 随机森林算法
随机森林算法的基本步骤与 bagging 算法类似,首先建立若干决策树,建立每个决策树时,除了使用 bootstrap 方法随机选择测试样本之外,还会随机选择特征变量,这样,就可以降低树与树之间的相关系数。最后,依然是通过统计投票结果确定最后的分类信息。
随机森林也是一种特定的集成方法,特别适合解决含有大量特征变量的问题。在其他模型中,一个特征变量的效果可能会被其他更显著的特征变量所掩盖。但随机森林在每棵决策树上使用随机选择的特征变量进行训练,这样可以更好地检测每个变量所产生的贡献和行为。相对于单棵决策树而言,随机森林在提高预测准确度和减小方差方面有了很大提升。
随机森林算法的基本步骤如下:
fcc7b5f25e3cf01291170f07997c6f66942b6b66.png
  • 输出组合后的 K 棵树,取投票最多的预测为最终分类结果。
d516d1c8062c8001718a51e724512b68dd11f316.png
3.行业轮动模型的建立与运行结果3.1 因子提取
在因子库选择上,我们侧重选择了变动较为剧烈的技术面因子,并在选择因子周期时参考技术分析理论中的常用参数。同时也一定程度上考虑了行业的估值因子(PB、PE),行业内部股票一致度因子(行业内上涨股票比例)与行业内前 3 名股票走势对指数未来走势的影响。
加上不同时间段的影响(6 天、12 天、25 天 RSI 值算三个因子),模型共计参考因子 41 个。根据随机森林算法,默认单棵决策树参考因子为 6个。

fe695600d665a0ae6f4f707b16104235d409a5c4.png 4.png[size=1em]591x591 72.2 KB


3.2 模型建立
训练集:2010-2016 年 28 个申万行业指数因子日数据
验证集:2017 年-2018 年上半年 28 个申万行业指数因子日数据【宽客之家】
模型建立方法:基于每个行业指数单独建立随机森林模型,X 为训练集数据,Y为未来 5 日指数涨跌(上涨、下跌两种情况)。将验证集数据带入训练后的模型中,进行择时。训练集数据使用 5 日滚动,这样保证了训练集的数据量。验证集数据每周判定一次。假设择时账户初始虚拟净值为 1,如在空仓情况下模型判定下周上涨,则在下周一使用开盘价将虚拟净值换为对应份数的指数;如在空仓情况下模型判定下周下跌,则不进行操作,净值不变。如在持仓情况下模型判定下周下跌,则在下周一卖出指数,账户虚拟净值变为前期持有指数的份数乘以指数开盘价;如在持仓情况下模型判定下周上涨,则继续持有指数。
3.3 择时结果
通 过 随 机 森 林 算 法 对 申 万 28 个 行 业 指 数 进 行 择 时 , 模 型 平 均 准 确 率54.48% 准确率 fbb77a1d028052495c725cf172d16ed5478a0240.png 。2017 年至今平均超额收益 15.03%,择时后指数平均净值 1.07,平均减少最大回撤 11.73%。在 28 个行业中,有 25 个行业的择时结果强于指数,取得超额收益概率高达 89%。2017 年至今,市场呈现较为明显的分化局势,仅 7 个行业收益为正,21 个行业都有不同程度下跌。择时后,收益为正的行业增加至 20 个,且剩余 8 个收益为负的行业净值相比不择时的情况都有了大幅提升。
3de4cb3dab1358095bd7bd5fb3c34ab5fa5ffe62.png
3989691c6b8c4b629427c073df167f619bbcfd5e.png
下面展示 28 个行业 2017 年至今择时结果,黑线表示行业指数,红线表示择时后的指数。
29e02d1728b87d1d693b4de9b52553f5fca9b8be.png
05db926099ce3b7392b159f3ac3283e01c842a4b.png 9.png[size=1em]701x607 67.8 KB


8f6c98f0679401732c209f8214959a28041244ce.png
d7f4c7097b40571f4e9b9acd042b601e79eda348.png 11.png[size=1em]685x590 63.7 KB


08f8ca10a45d85171721871045d829f028c5f942.png 12.png[size=1em]702x282 36.6 KB


b15512c7b278ee5198a7c142d27b930f623dcf67.png 13.png[size=1em]696x590 66.3 KB


95d2787efffeb769ff7354597584d154c141e8c5.png 14.png[size=1em]695x277 32.4 KB


003a40e18927904443fbd9e05209539c9a2a599e.png 15.png[size=1em]677x585 66 KB


0efad6aabe99381314f8a7b7342d4dbde7499c26.png 16.png[size=1em]699x281 33.8 KB


d00e0abd568b1de790dc94fe4edc7402df043654.png 17.png[size=1em]725x289 34.1 KB


3.4 行业轮动模型
根据择时结果,可建立行业轮动模型。每周根据模型预测,选择上涨概率最高的5 个行业(如上涨概率>0.5 的行业不足 5 个,则仅选择上涨概率>0.5 的行业,不足部分按空仓处理),每周调仓。在近期大部分行业普遍回调的情况下,模型依然取得了正收益。最终轮动模型年化收益 4.4%,超出上证综指5.7%;最大回撤 10.7%,小于上证综指的 14.6%。
70f313475fa13d3b233c2e597ae51b0bdec62dd0.png
4.总结与未来研究方向展望
本篇报告中,我们使用随机森林算法建立了择时模型,并应用于申万 28 个行业指数,构建行业轮动模型。该模型还有很大的改进空间。接下来,我们的研究重点将主要从三方面展开。
  • 丰富择时选项。为突出策略的简单直接,本篇报告中我们对于下一期标的走势的预测仅包括“涨”和“跌”两个选项,在一些国外参考文献中,对下一期标的预测可以延伸至“暴涨超过 3%”、“微涨”、“微跌”、“暴跌超过 3%”四个选项,并给出每个选项的发生概率。在本篇报告中,我们本来尝试了使用四个选项进行分类,但分类效果不如使用两个选项的版本。未来我们会继续改进模型,使模型的预测提供更多信息。
  • 择时模型可以与行业 ETF 投资结合,构建 ETF 轮动模型。但现在市场上行业ETF 未能覆盖全行业,且还需考虑 ETF 追踪误差等问题,需要与基金研究相结合。
  • 与分行业多因子模型结合,先由行业轮动模型确定下一期看好行业,再通过该行业多因子模型进行选股,实现自上而下的选股流程。这也是该模型的建立初衷。

风险提示:随着市场环境变化,模型存在失效风险。
作者:渤海证券金工团队

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 免费注册
关注微信