您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[国金证券]:机器学习与量化投资的应用:两类模型在A股各宽基指数的测试效果 - 发现报告
当前位置:首页/其他报告/报告详情/

机器学习与量化投资的应用:两类模型在A股各宽基指数的测试效果

2023-12-13国金证券淘***
机器学习与量化投资的应用:两类模型在A股各宽基指数的测试效果

机器学习与量化投资的应用 各类机器学习算法近年来在量化投资领域得到了越来越多的应用,各种模型借助于其巧妙的模型设计有效挖掘到特征或因子间的非线性关系,完成各类因子合成或因子生成的任务,进而形成有效的量化策略,相较于传统人工挖掘因子或简单线性因子合成有着更高的效率和更好的策略效果。 我们着重探讨了基于决策树的GBDT类模型和各种神经网络类模型的算法设计,其中GBDT类模型是通过将多个简单的决策树进行集成,每轮迭代时训练目标为前一轮的预测残差,不断逼近真实值。XGBoost、LightGBM和CatBoost都是三种典型的GBDT算法改进模型。而神经网络类模型通过模仿生物神经元相互传递信号的方式构造。模型结构包括输入层、输出层和多个隐藏层,每一层均有若干个神经元可与其他节点连接。为了解决不同应用场景也出现了不同的网络结构设计,包括专门用于解决时序预测问题的LSTM&GRU、用于结合卷积思路用于时序预测的TCN、以及引入了自注意力机制的Transformer模型。我们在本篇报告中对这些模型分别进行测试比较,最终形成有效的量化投资策略。 两类模型在A股各宽基指数的测试效果 在特征层面,我们使用包括Alpha158、GJQuant基本与日频量价因子和Ta-Lib各类技术指标因子作为模型的输入特征进行测试。发现Alpha158和GJQuant两类特征的结合在GBDT类模型中表现较好,而神经网络类模型中仅使用Alpha158表现更优。在预测标签层面,除了传统的未来20日超额收益率外,我们添加了信息比率和Calmar比率同样作为预测目标对模型进行训练。发现以信息比率和超额收益率作为预测目标的模型信号各类投资组合指标表现相对更好。就模型对比来看,GBDT类模型预测信号的多头超额收益率明显更优,而神经网络类模型的最大回撤明显更低。两类模型的相关性约为0.4-0.5之间,因此我们将两大类模型等权合成,构造最终的选股因子。 在沪深300上,GBDT+NN模型因子IC均值达到10.40%,多头年化超额收益率14.44%,多头夏普比率0.73,超额最大回撤仅为5.54%。在中证500上,IC均值10.34%,多头年化超额收益率16.55%,多头夏普比率0.72,超额最大回撤12.84%。中证100成分股上表现更加亮眼,IC均值14.62%,多头年化超额收益率27.71%,多头夏普比率0.97,超额最大回撤4.74%。 基于GBDT+NN模型结合的指数增强策略 以上可以看出,融合了多种模型、多种预测目标的选股因子在各宽基指数成分股上表现优异。考虑贴合投资实际,我们使用马科维茨的均值方差优化模型,对投资组合的跟踪误差进行限制,最大化预期超额收益率的方式进行指数增强策略的构建。在假设单边千二的手续费率下,所得到GBDT+NN沪深300指数增强策略年化超额收益率15.85%,超额最大回撤3.12%。中证500指数增强策略年化超额20.74%,超额最大回撤6.36%。中证1000指数增强策略年化超额32.82%,超额最大回撤3.97%。 风险提示 1、以上结果通过历史数据统计、建模和测算完成,在政策、市场环境发生变化时模型存在时效的风险。 2、策略通过一定的假设通过历史数据回测得到,当交易成本提高或其他条件改变时,可能导致策略收益下降甚至出现亏损。 内容目录 一、机器学习与量化投资的应用4 1.1基于决策树的各类GBDT模型4 1.2各类神经网络模型5 二、模型数据准备及预处理7 2.1模型输入数据7 2.2预测标签8 2.3数据预处理8 2.4超参数调优与敏感性测试9 三、各类模型在A股各宽基指数的表现9 3.1各模型在沪深300成分股的测试9 3.2各模型在中证500成分股的测试12 3.3各模型在中证1000成分股的测试13 四、基于GBDT+NN的指数增强策略14 总结19 风险提示19 图表目录 图表1:RNN与LSTM模型结构示意6 图表2:CNN网络结构示意6 图表3:TCN网络结构示意7 图表4:模型输入数据特征7 图表5:国金金工部分基本因子及构建方式说明8 图表6:数据集划分区间9 图表7:GRU模型各主要超参数重要性9 图表8:GBDT类模型在验证集上的MSE损失(沪深300成分股)10 图表9:基于不同输入特征的各类模型在沪深300成分股的IC均值10 图表10:基于不同预测标签的各类模型在沪深300成分股的各项指标10 图表11:不同预测标签模型相关系数(GBDT部分)11 图表12:不同预测标签模型相关系数(NN部分)11 图表13:Excret与IR标签所训练模型等权合成后各模型在沪深300成分股的各项指标11 图表14:GBDT+NN两类模型在沪深300成分股的多空组合指标12 图表15:GBDT+NN因子在沪深300成分股的多空组合净值12 图表16:GBDT+NN因子在沪深300成分股的分位数组合年化超额收益12 图表17:基于不同预测标签的各类模型在中证500成分股的各项指标12 图表18:Excret与IR标签所训练模型等权合成后各模型在中证500成分股的各项指标13 图表19:GBDT+NN两类模型在中证500成分股的多空组合指标13 图表20:GBDT+NN因子在中证500成分股的多空组合净值13 图表21:GBDT+NN因子在中证500成分股的分位数组合年化超额收益13 图表22:Excret与IR标签所训练模型等权合成后各模型在中证1000成分股的各项指标13 图表23:GBDT+NN两类模型在中证1000成分股的多空组合指标14 图表24:GBDT+NN因子在中证1000成分股的多空组合净值14 图表25:GBDT+NN因子在中证1000成分股的分位数组合年化超额收益14 图表26:GBDT与NN两类模型因子在各宽基指数上的相关系数14 图表27:基于GBDT+NN的沪深300指数增强策略指标15 图表28:基于GBDT+NN的沪深300指数增强策略净值曲线15 图表29:基于GBDT+NN的沪深300指数增强策略分年度收益16 图表30:基于GBDT+NN的沪深300指数增强策略分年度收益16 图表31:基于GBDT+NN的中证500指数增强策略指标16 图表32:基于GBDT+NN的中证500指数增强策略净值曲线17 图表33:基于GBDT+NN的中证500指数增强策略分年度收益17 图表34:基于GBDT+NN的中证500指数增强策略分年度收益17 图表35:基于GBDT+NN的中证1000指数增强策略指标18 图表36:基于GBDT+NN的中证1000指数增强策略净值曲线18 图表37:基于GBDT+NN的中证1000指数增强策略分年度收益18 图表38:基于GBDT+NN的中证1000指数增强策略分年度收益19 一、机器学习与量化投资的应用 从图像识别、自然语言处理与到数据与信号的分析,机器学习近些年在各行业都展现出了出色的能力,并已开始得到广泛应用。而量化投资由于需要进行处理大量的各类数据,深入分析并挖掘各类股票特征之间的关系并形成有效预测信号,天然就是机器学习绝佳的应用场景。各类机器学习算法能够借助于其巧妙的模型设计有效挖掘到特征或因子间的非线性关系,进行各类因子合成或因子生成的任务,进而形成有效的量化策略,相较于传统人工挖掘因子或简单线性因子合成有着更高的效率和更好的策略效果。 在本篇报告中,我们将首先简要概述目前各类主流机器学习(深度学习)模型的算法原理,探索比较各模型在A股各股票池中的选股效果,尝试使用不同方式对模型进行应用,最终形成可投资的量化指数增强策略,以期获取持续稳定的超额收益。 由于不同模型的结构和设计思路存在较大区别,在各个领域所适用的最佳模型也不尽相同。目前主流应用于量化投资领域的机器学习模型主要包括基于决策树的GBDT类模型和基于RNN的各类神经网络模型。 1.1基于决策树的各类GBDT模型 决策树是一种目前在Kaggle各类比赛中受到广泛欢迎的一种机器学习算法,具有可解释性强、易于理解的特点,即可用于回归类任务,也可以用于分类任务。这类决策树一般也被称为CART(ClassificationandRegressionTree),该模型从根节点出发,对每一个特征进行判断,将样本划分到对应的子节点中。判断时采用基尼系数的大小来度量特征的各个划分点,从而使得对于任意划分点s两边的样本𝐷1和𝐷2所求出的均方差最小,直到样本个数小于阈值或已无其他特征。 min[min∑(𝑥�−𝑐1)2+min∑(𝑦�−𝑐2)2] sc1 𝑥𝑖∈𝐷1 c2 𝑦𝑖∈𝐷2 由于决策树在训练过程中会尽可能拟合样本,可能会导致过拟合。因此又引入了剪枝 (pruning)操作,即考虑每个非叶节点替换成叶节点后模型的泛化能力的变化。通过剪枝操作可以降低树的高度,尽可能减少过拟合的风险。 一种增强单棵决策树性能的方法是集成学习,即将多棵决策树融合在一起,提高模型整体的精确度和泛化性能。目前主要有两种集成方法,分别是Bagging和Boosting。Bagging的基本思想是通过在原始训练数据集做有放回抽样选出新的K个子数据集进行分别训练,最终采用投票法等多种方法集成所有学习器的预测效果。这种方法的典型应用就是随机森林模型,通过组合多个弱学习器,有效降低模型方差,提高模型性能。 Boosting是一种有顺序的基模型训练方式,每个基模型都会在前一个基模型的基础上进行学习,最终综合所有基模型的预测值产生最终的预测结果。在Boosting中,由于基模型共用一套训练数据集,相关性较强,整体模型的方差等于其基模型的方差,因此基模型也一般选用高偏差低方差的弱学习器。不过基于Boosting框架的GBDT可以通过对特征进行随机抽样降低基模型的相关性,从而达到减少方差的效果。 近一步细分,Boosting又可以分为Adaboost、GBDT、XGBoost等。其基本思路都是在训练基模型时重点关注前一个基模型表现不佳的地方,Adaboost通过提升错分数据点的权重来定位模型不足,GradientBoosting通过计算梯度来定位模型不足。 GBDT: 相比之下,GBDT是相对更优的一种算法,GBDT的核心在于每棵树都是以前一棵树的残差值更新目标值,最终每棵树的值加起来即为GBDT的预测值。其训练迭代思路为: 𝐹𝑘(x)=𝐹𝑘−1(x)+𝑓�(x) 在每轮迭代中,基模型需要不断逼近真实值y,只需要学习前一个基模型的残差,而残差就是MSE损失函数关于预测值的反向梯度。因此,GBDT的每一步残差计算其实都变相增大了被错分样本的权重,正确样本的权重趋于0。 � 𝜕(1/2(�−𝐹𝑘(x))2) XGBoost: −𝜕�(x)=y−𝐹𝑘(x) 而XGBoost是一种大规模并行Boosting的算法,可以视为GBDT的一种改进版本,其与GBDT的最大不同在于目标函数的定义。对于每个决策树,其目标函数都引入了偏差变量,第t个决策树的目标函数为: � 𝑓(𝑡)=∑𝑙(�,𝑦̂(𝑡−1)+�(�))+Ω(�) 𝑖=1 �� ��� 即,总体K棵树对样本i的预测值=前k-1棵树的预测值+第k棵树的预测值。通过泰勒展开对函数进行化简,利用损失函数的二阶导进行训练。 此外,XGBoost也有贪心算法、加权分位法、Shrinkage收缩、缺失值处理等优化设计。在量化研究领域可以进行高效训练,同时也省去了缺失值填充或舍弃的步骤。 LightGBM: XGBoost推出后在多种不同任务类型体现出了极强的预测精度,但训练时长和内存消耗相比之前模型不占优势。而LightGBM就是一种由微软提出的解决GBDT在遇到海量数据训练速度慢的算法,相较于XGBoost,LightGBM能够显著降低内存消耗、节省训练时间。该算法主要创新点包括引入了单边梯度抽样、直方图算法、互斥特征捆绑算法、带深度限制的Leaf-wis