论文部分内容阅读
作者简介:卢笛(2000-),女,汉族,吉林长春人,主要研究方向:金融数学。
摘 要:多因子的选股模型作为投资领域的重要方法,一直以来活跃在主流量化投资领域决策中,而如何根据股票的各个因子来准确地预测个股的月度超额收益,也是多因子模型希望解决的主要问题之一。本文将梯度决策提升树引入量化投资决策,建立了一套基于梯度决策提升树模型的多因子量化投资策略,并利用沪深300成分股进行选股回测,选取模型预测收益率靠前的30只股票进行实证分析。研究表明,梯度决策提升树模型指导下的年华收益率为29.1%,较基准年化收益率有大幅提升,且回撤率更低,验证了该量化选股模型的有效性。
关键词:多因子选股;梯度决策提升树;量化投资
近年来,随着机器学习理论的高速发展,其在量化投资领域也得到了广泛应用,美国的许多投资机构早已在投资策略,选股方案指定上引入了多种机器学习模型辅助决策;而国内的股票基金行业也逐渐开始使用机器学习模型来指导选股,相较于传统的多因子策略取得了較高的超额收益。
本质来说,选股问题可以抽象为一个回归问题,选股即是对股票的多个因子构成的向量进行对收益率的拟合。该分类问题可分解为两个子问题,一方面是因子的选择,即选用股票的哪些方面的特征;另一方面是回归模型的选择,即使用的分类算法。传统的多因子策略模型需要为因子分配合理权重,否则会极大的影响模型效果,通常是超额收益越大,为因子赋予的权重越大,但衡量因子选股效果的指标有很多,如收益相关系数,跑赢指数概率等,难以人为进行均衡来配置。本文拟以梯度决策提升树为核心回归算法,建立一套选股指导系统来探索量化交易市场。
一个优秀的量化选股策略能够有效克服投资者面临的信息过载,令投资者的投资获得提升。对于买方机构来说,既可以以该策略为指导自营获得收益,也可以基于此发布理财产品,以管理费、赎回费等方式赚取零风险收益;对于卖方机构,则能够将策略打包为股票推荐功能来作为软件卖点,获取更多佣金。
梯度决策提升树选股模型
选股问题本质是分类问题,因此选择合适的分类模型能极大影响量化投资策略的效果。在选股领域,常用的决策模型有决策树、神经网络、支持向量机等,其中决策树在处理噪音数据时效果交叉,且存在过拟合的可能;而神经网络模型对个股的走势预测效果欠佳;支持向量机模型虽然优于传统神经网络推断,但支持向量机自身的特性使得其在多分类问题上天生弱于决策树模型,因而还存在一定提升空间。基于以上模型的特点,本文选择梯度决策提升树作为选股模型。
梯度决策提升树(Gradient Boosted Decision Tree,GBDT)是由Friedman等[1]在2001年提出的一种经典的机器学习方法,属于boosting系列算法中的一个代表算法,它是一种迭代的决策树算法,所有树的结论累加起来作为最终答案。GBDT设计的目的为了求解损失函数的优化,具体思路为对损失函数求梯度,以负梯度的方向代入模型的当前值,以当前值作为残差值的近似。它采用了加法模型,通过向着减小残差的方向收敛得到将输入数据分类或回归的模型。图 1说明了GBDT的训练过程:
GBDT的经多次迭代后收敛,每轮训练多个分类器,每个分类器基于上一次迭代得到的残差础上进行训练。作为集成学习方法的一种,GBDT的基分类器属于弱分类器,需要结构简单且满足低方差、高偏差的条件,这与GBDT的损失函数是基于降低偏差有关;通常来说,GBDT通常以CART TREE作为基分类器,且每棵CART TREE的深度相对较低以保证基分类器的复杂度不会过高。最终将每轮训练得到的基分类器加权求和,得到总的分类器。
GBDT既可以解决分类问题,也可以解决回归问题,对于选股适用于回归模型,数学语言表述如下:
对训练样本,最大迭代次数T,损失函数为L,其中为股票因子组成的向量,为股票价格。
1.初始化弱分类器
a)样本负梯度
b)利用 拟合一个CART回归树,得到第棵回归树,其对应叶子结点区域为,其中为回归树叶子节点的个数
股票因子选择
在确定了核心模型后,还需要确定参与训练和股价预测股票因子,股票因子的选择将和模型一起决定股价预测的效果。目前,多因子的选股模型是国际上主流的量化选股模型,该模型认为股票的未来收益率受公司的财务指标和其他某些行情指标影响,且这种影响在时间上是可重复的,因此通过对历史数据中各种因子的分析,能够发现那些有投资价值的公司,因而适合的股票因子选择也对选股策略的准确性有着很大影响。本文参考了多篇文献[2-4]的分析,从动量因子,交易量因子,估值因子等多个方面初步选取了28个有效因子。
首先对因子进行归一化处理,这里使用均值方差法将因子值域归一到区间[0,1];另外为了减少噪声,将当月超额收益分为数在20%到80%之间的数据去除。
对于机器学习来说,虽然更多的特征通常意味着对样本更全面的表示,但使用的特征过多也会带来训练样本数的增加,甚至可能引发维度灾难[5],所以本文对28个因子的特征进行一次主成分分析,并根据分析结果选择了前20维的因子,最终使用的股票因子如表 1所示。
实验数据选用了2015年1月1日至2020年12月31日期间沪深300成分股全部股票每月最后交易日的股票因子值和月收益率。2015年1月1日至2019年5月31日的数据被作为训练集来训练模型,2019年6月1日到2020年12月31日的数据用于回测部分,经缺失值筛选后,剩余股票数据为11634条。
我们在计算因子时,需要获得公司的某些财务数据,但在实际的投资过程中,公司财务数据的获取往往并不是及时的,比如在6月底7月初时,第二季度已经结束,但有些公司的二季报仍未公布,这就带来了信息的滞后性,为了使实验结论能够指导实际的投资,我们也需要对训练的数据做相应的滞后处理。从公司财报最晚的公布时间来看,一二三季报的时间分别是当年4月底、8月底、10月底,而年报则是次年的4月底,由此可知我们在11、12月和次年前4个月应使用前一年三季报的数据,而5、6、7、8月则应使用本年度一季报及前一年的年报数据,9、10月份则正常使用三季报即可,如此可以贴合实际的操作。 此外,在我們的已知数据中,混杂有ST股票,ST股票即代指一类包括但不限于财务状况异常的公司的上市股票,它们的单日涨幅跌幅受到限制。这些股票在实证分析时应当被剔除,然而实验数据中只能显示在当前时间点为ST的股票,并不能反映股票的历史状态,所以仅凭数据中标注的ST来判断筛选是不准确的,因此我们选择手动根据财务状况剔除,比如ROE为负的股票。
对训练数据中的特殊值,同样需要进行处理。例如,计算估值因子时,应剔除负值,因为估值为负数没有比较意义;而实验用的下载数据中,也存在部分指标诸如公司利润表中母公司净利润存在部分季报的缺失,计算时需要考虑将缺失的数据代入一个缺省值。
训练和验证均在同一实验环境下进行,使用Python sklearn 0.23.1版本实现,通过测试寻找最优损失函数,其余参数保持默认设置。本文在训练集中使用5折交叉验证来验证GBDT模型对股价预测的有效性,采用均方误差MSE和平均绝对误差MAE来验证梯度决策提升树模型的股票预测精度。
在模型收敛后,交叉验证的股价预测结果如表 2所示。
显然绝对损失函数的MSE和MAE都小于均方差函数,所以选用绝对损失函数进行股票预测。同时MSE小于0.009,MAE低于0.07,可知GBDT算法可以有效地预测股票股价。
本文还进行了回测实证,回测采用每月月末交易,每次交易前卖出所有持仓股票,然后根据股票得分买入得分排名前30只的股票,在回测数据集上进行了验证。为了更好地衡量GBDT模型在股票市场的表现,本文还将GBDT模型的实证结果和支持向量机(SVM)[6],多层感知机(MLP)[7]模型进行了比较。表 3展示了三种策略在沪深300股的股票收益指标和风险绩效指标。
表中展示的三种策略模型,其年化收益率均高于基准年化收益,本文的GBDT模型高于基准收益近2倍;其次,GBDT也有着更高的夏普比率,说明在同样的风险系数下,GBDT模型可以更好地帮投资者作出有效的投资决策;最大回撤上,GBDT只有5.9%,说明模型具有相当的稳定性。
结语
本文通过对量化投资和机器学习等相关领域的研究,使用梯度决策提升树模型进行量化选股,并对特征进行了降维处理,消除冗余信息,并将模型与支持向量机和多层感知机进行了比较,以经主成分分析后的股票因子作为输入,使用模型进行股价预测,并通过预测股价进行了投资组合。实证实验表明梯度决策提升树在股票投资的年化收益和风险控制方面较其他模型都有一定优势。
参考文献
[1]Friedman J H . Greedy Function Approximation: A Gradient Boosting Machine[J]. Annals of Statistics, 2001, 29(5):1189-1232.
[2]谢合亮, 胡迪. 多因子量化模型在投资组合中的应用——基于LASSO与Elastic Net的比较研究[J]. 统计与信息论坛, 2017(10).
[3]李斌, 林彦, 唐闻轩. ML-TEA:一套基于机器学习和技术分析的量化投资算法[C]// 中国系统工程学会第19届学术年会. 2016.
[4]陆飞. 中国股市价值投资策略的实证研究[D].北京理工大学,2008.
[5]Keogh E , Mueen A . Curse of Dimensionality[J]. Ind.eng.chem, 2009, 29(1):48-53.
[6]Kong F , Song G P . Stock Price Combination Forecast Model Based on Regression Analysis and SVM[J]. Applied Mechanics & Materials, 2010, 39:14-18.
[7]Turchenko V , Beraldi P , Simone F D , et al. Short-term stock price prediction using MLP in moving simulation mode[C]// IEEE International Conference on Intelligent Data Acquisition & Advanced Computing Systems. IEEE, 2011.
摘 要:多因子的选股模型作为投资领域的重要方法,一直以来活跃在主流量化投资领域决策中,而如何根据股票的各个因子来准确地预测个股的月度超额收益,也是多因子模型希望解决的主要问题之一。本文将梯度决策提升树引入量化投资决策,建立了一套基于梯度决策提升树模型的多因子量化投资策略,并利用沪深300成分股进行选股回测,选取模型预测收益率靠前的30只股票进行实证分析。研究表明,梯度决策提升树模型指导下的年华收益率为29.1%,较基准年化收益率有大幅提升,且回撤率更低,验证了该量化选股模型的有效性。
关键词:多因子选股;梯度决策提升树;量化投资
近年来,随着机器学习理论的高速发展,其在量化投资领域也得到了广泛应用,美国的许多投资机构早已在投资策略,选股方案指定上引入了多种机器学习模型辅助决策;而国内的股票基金行业也逐渐开始使用机器学习模型来指导选股,相较于传统的多因子策略取得了較高的超额收益。
本质来说,选股问题可以抽象为一个回归问题,选股即是对股票的多个因子构成的向量进行对收益率的拟合。该分类问题可分解为两个子问题,一方面是因子的选择,即选用股票的哪些方面的特征;另一方面是回归模型的选择,即使用的分类算法。传统的多因子策略模型需要为因子分配合理权重,否则会极大的影响模型效果,通常是超额收益越大,为因子赋予的权重越大,但衡量因子选股效果的指标有很多,如收益相关系数,跑赢指数概率等,难以人为进行均衡来配置。本文拟以梯度决策提升树为核心回归算法,建立一套选股指导系统来探索量化交易市场。
一个优秀的量化选股策略能够有效克服投资者面临的信息过载,令投资者的投资获得提升。对于买方机构来说,既可以以该策略为指导自营获得收益,也可以基于此发布理财产品,以管理费、赎回费等方式赚取零风险收益;对于卖方机构,则能够将策略打包为股票推荐功能来作为软件卖点,获取更多佣金。
梯度决策提升树选股模型
选股问题本质是分类问题,因此选择合适的分类模型能极大影响量化投资策略的效果。在选股领域,常用的决策模型有决策树、神经网络、支持向量机等,其中决策树在处理噪音数据时效果交叉,且存在过拟合的可能;而神经网络模型对个股的走势预测效果欠佳;支持向量机模型虽然优于传统神经网络推断,但支持向量机自身的特性使得其在多分类问题上天生弱于决策树模型,因而还存在一定提升空间。基于以上模型的特点,本文选择梯度决策提升树作为选股模型。
梯度决策提升树(Gradient Boosted Decision Tree,GBDT)是由Friedman等[1]在2001年提出的一种经典的机器学习方法,属于boosting系列算法中的一个代表算法,它是一种迭代的决策树算法,所有树的结论累加起来作为最终答案。GBDT设计的目的为了求解损失函数的优化,具体思路为对损失函数求梯度,以负梯度的方向代入模型的当前值,以当前值作为残差值的近似。它采用了加法模型,通过向着减小残差的方向收敛得到将输入数据分类或回归的模型。图 1说明了GBDT的训练过程:
GBDT的经多次迭代后收敛,每轮训练多个分类器,每个分类器基于上一次迭代得到的残差础上进行训练。作为集成学习方法的一种,GBDT的基分类器属于弱分类器,需要结构简单且满足低方差、高偏差的条件,这与GBDT的损失函数是基于降低偏差有关;通常来说,GBDT通常以CART TREE作为基分类器,且每棵CART TREE的深度相对较低以保证基分类器的复杂度不会过高。最终将每轮训练得到的基分类器加权求和,得到总的分类器。
GBDT既可以解决分类问题,也可以解决回归问题,对于选股适用于回归模型,数学语言表述如下:
对训练样本,最大迭代次数T,损失函数为L,其中为股票因子组成的向量,为股票价格。
1.初始化弱分类器
a)样本负梯度
b)利用 拟合一个CART回归树,得到第棵回归树,其对应叶子结点区域为,其中为回归树叶子节点的个数
股票因子选择
在确定了核心模型后,还需要确定参与训练和股价预测股票因子,股票因子的选择将和模型一起决定股价预测的效果。目前,多因子的选股模型是国际上主流的量化选股模型,该模型认为股票的未来收益率受公司的财务指标和其他某些行情指标影响,且这种影响在时间上是可重复的,因此通过对历史数据中各种因子的分析,能够发现那些有投资价值的公司,因而适合的股票因子选择也对选股策略的准确性有着很大影响。本文参考了多篇文献[2-4]的分析,从动量因子,交易量因子,估值因子等多个方面初步选取了28个有效因子。
首先对因子进行归一化处理,这里使用均值方差法将因子值域归一到区间[0,1];另外为了减少噪声,将当月超额收益分为数在20%到80%之间的数据去除。
对于机器学习来说,虽然更多的特征通常意味着对样本更全面的表示,但使用的特征过多也会带来训练样本数的增加,甚至可能引发维度灾难[5],所以本文对28个因子的特征进行一次主成分分析,并根据分析结果选择了前20维的因子,最终使用的股票因子如表 1所示。
实验数据选用了2015年1月1日至2020年12月31日期间沪深300成分股全部股票每月最后交易日的股票因子值和月收益率。2015年1月1日至2019年5月31日的数据被作为训练集来训练模型,2019年6月1日到2020年12月31日的数据用于回测部分,经缺失值筛选后,剩余股票数据为11634条。
我们在计算因子时,需要获得公司的某些财务数据,但在实际的投资过程中,公司财务数据的获取往往并不是及时的,比如在6月底7月初时,第二季度已经结束,但有些公司的二季报仍未公布,这就带来了信息的滞后性,为了使实验结论能够指导实际的投资,我们也需要对训练的数据做相应的滞后处理。从公司财报最晚的公布时间来看,一二三季报的时间分别是当年4月底、8月底、10月底,而年报则是次年的4月底,由此可知我们在11、12月和次年前4个月应使用前一年三季报的数据,而5、6、7、8月则应使用本年度一季报及前一年的年报数据,9、10月份则正常使用三季报即可,如此可以贴合实际的操作。 此外,在我們的已知数据中,混杂有ST股票,ST股票即代指一类包括但不限于财务状况异常的公司的上市股票,它们的单日涨幅跌幅受到限制。这些股票在实证分析时应当被剔除,然而实验数据中只能显示在当前时间点为ST的股票,并不能反映股票的历史状态,所以仅凭数据中标注的ST来判断筛选是不准确的,因此我们选择手动根据财务状况剔除,比如ROE为负的股票。
对训练数据中的特殊值,同样需要进行处理。例如,计算估值因子时,应剔除负值,因为估值为负数没有比较意义;而实验用的下载数据中,也存在部分指标诸如公司利润表中母公司净利润存在部分季报的缺失,计算时需要考虑将缺失的数据代入一个缺省值。
训练和验证均在同一实验环境下进行,使用Python sklearn 0.23.1版本实现,通过测试寻找最优损失函数,其余参数保持默认设置。本文在训练集中使用5折交叉验证来验证GBDT模型对股价预测的有效性,采用均方误差MSE和平均绝对误差MAE来验证梯度决策提升树模型的股票预测精度。
在模型收敛后,交叉验证的股价预测结果如表 2所示。
显然绝对损失函数的MSE和MAE都小于均方差函数,所以选用绝对损失函数进行股票预测。同时MSE小于0.009,MAE低于0.07,可知GBDT算法可以有效地预测股票股价。
本文还进行了回测实证,回测采用每月月末交易,每次交易前卖出所有持仓股票,然后根据股票得分买入得分排名前30只的股票,在回测数据集上进行了验证。为了更好地衡量GBDT模型在股票市场的表现,本文还将GBDT模型的实证结果和支持向量机(SVM)[6],多层感知机(MLP)[7]模型进行了比较。表 3展示了三种策略在沪深300股的股票收益指标和风险绩效指标。
表中展示的三种策略模型,其年化收益率均高于基准年化收益,本文的GBDT模型高于基准收益近2倍;其次,GBDT也有着更高的夏普比率,说明在同样的风险系数下,GBDT模型可以更好地帮投资者作出有效的投资决策;最大回撤上,GBDT只有5.9%,说明模型具有相当的稳定性。
结语
本文通过对量化投资和机器学习等相关领域的研究,使用梯度决策提升树模型进行量化选股,并对特征进行了降维处理,消除冗余信息,并将模型与支持向量机和多层感知机进行了比较,以经主成分分析后的股票因子作为输入,使用模型进行股价预测,并通过预测股价进行了投资组合。实证实验表明梯度决策提升树在股票投资的年化收益和风险控制方面较其他模型都有一定优势。
参考文献
[1]Friedman J H . Greedy Function Approximation: A Gradient Boosting Machine[J]. Annals of Statistics, 2001, 29(5):1189-1232.
[2]谢合亮, 胡迪. 多因子量化模型在投资组合中的应用——基于LASSO与Elastic Net的比较研究[J]. 统计与信息论坛, 2017(10).
[3]李斌, 林彦, 唐闻轩. ML-TEA:一套基于机器学习和技术分析的量化投资算法[C]// 中国系统工程学会第19届学术年会. 2016.
[4]陆飞. 中国股市价值投资策略的实证研究[D].北京理工大学,2008.
[5]Keogh E , Mueen A . Curse of Dimensionality[J]. Ind.eng.chem, 2009, 29(1):48-53.
[6]Kong F , Song G P . Stock Price Combination Forecast Model Based on Regression Analysis and SVM[J]. Applied Mechanics & Materials, 2010, 39:14-18.
[7]Turchenko V , Beraldi P , Simone F D , et al. Short-term stock price prediction using MLP in moving simulation mode[C]// IEEE International Conference on Intelligent Data Acquisition & Advanced Computing Systems. IEEE, 2011.