社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习与因子模型实证:怎么进行模型训练?

量化投资与机器学习 • 2 年前 • 318 次点击  


量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据领域的主流自媒体公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,曾荣获AMMA优秀品牌力、优秀洞察力大奖,连续4年被腾讯云+社区评选为“年度最佳作者”。


标题:Stock Market Anomalies and Machine Learning Across the Globe

作者:Vitor Azevedo、Georg Sebastian Kaiser、Sebastian Muller



前言
股票市场异常是指那些与传统金融理论不符合的现象,这些现象可能导致投资组合表现出色或者糟糕。机器学习技术可以帮助我们更好地理解这些异常,并提高投资组合的表现。
本文旨在探讨机器学习模型在国际股票市场异常预测中的应用。作者使用了来自多个国家的大量数据,并采用多种机器学习算法来构建未来回报预测器。他们还对不同算法和特征选择方法进行了比较,并评估了它们在样本内和样本外测试中的表现。作者发现:
1、机器学习模型可以有效地预测股票市场异常,尤其是在样本外测试中表现更好。
2、不同的机器学习算法和特征选择方法对预测能力的影响不同。例如,基于树的算法(如随机森林和梯度提升树)通常比线性模型表现更好。
3、在国际股票市场中,不同的异常变量具有不同的预测能力。例如,动量和价值因子在多个国家中表现出色,而流动性因子则在某些国家中表现较差。
4、在构建未来回报预测器时,考虑多个异常变量之间的非线性关系可以提高模型的预测能力。

测试了哪些因子?

本文使用了量价数据、基本面数据及分析师一致预期数据构建了240个因子(异象),这些数据从1980年7月至2019年6月,覆盖了MSCI主要地区指数的国家(包括以下指数:MSCI North America, Europe, Pacific, Emerging Markets)。经过一系列的处理,最终的数据包括68个国家66000家上市公司的超过9390万条的月度数据。从下表我们可以看到中国的数据占了总样本的8.17%。
主要测试了113个基本面因子、75个量价因子、18个分析师因子及19个估值因子和15个其他因子。所有因子的数据都基于截面排序标准化到(0,1)的区间。因子评价主要使用多空组合收益及其显著性。在构建多空组合时,分别构建了等权组合和市值加权组合。具体因子列表请参考原文。

使用了哪些机器学习的模型?

使用的模型从简单到复杂主要分为三类:
1、线性回归模型,GLM(Generalized Linear Model)
2、树模型,Gradient Boosting Machine(GBM)
3、神经网络模型,总共有三个,浅层全连接模型(Small Feedforward Neural Network),深层全连接模型(Large Feedforward Neural Network)和RNN。
简单因子表现怎么样?
在所有的240个因子中,有167个因子(约占总体70%)的多空收益显著(t值大于1.96)。t值大于3.00的因子有132个。基于240个因子的截面排序的均值,本文构建了一个Baseline factor。与所有单个因子组合的平均表现对比,Baseline因子的换手率更高,月度平均的表现也更优。等权Baseline因子的表现也显著大于市值加权的Baseline因子表现。在接下来的研究中,本文将对比各模型于Baseline因子的表现。
机器学习模型表现怎么样?
基准机器学习模型表现
针对6个不同的模型,分别针对原始的收益和收益排序进行了训练。下表A是使用收益率作为训练目标的模型表现,下表B是使用收益排序作为训练目标的模型表现。可以看出:
1、所有基于收益率训练的6个模型的表现都优于Baseline因子,而且3个神经网络模型的表现优于其他的树模型和回归模型,其中表现最好的是Small FNN。
2、所有基于收益排序训练的6个模型的表现也优于Baseline因子,而且表现最好的也是神经网络模型,最优的是Large FNN。
3、整体而言,机器学习模型的表现要优于Baseline因子,而且在使用神经网络模型时,基于收益排序预测的模型的效果要优于基于收益率预测的模型。
调整后的机器学习模型表现
基于预测的目标、窗口滑动的方式、使用的因子集可以构建出多种模型:
1、预测目标可以分为:收益率、收益率的截面排序
2、窗口滑动方式可以分为:不滑动、10年滑动、扩展(即起始点不变)
3、因子选择可以分为:使用Lasso、Elastic Net选取因子,使用固定t值过滤
下表给出了所有可能性组合的测试结果,所有模型表现均优于Baseline因子,其中表现最好的是Small FNN。
把所有模型按照不同的训练方式计算平均的效果,如下表所示,可以看出,基于截面排序的模型效果要优于基于基于原始收益率的预测模型;基于Lasso选则因子的模型表现更优。
即使是同一个模型,当选择不同的训练方式的时候都会带来很大的改变,如下图所示,对于GLM模型,当使用扩展窗口、基于收益排序和elastic net选择的因子集进行训练时,该模型的表现能够提升1.56%。

总结

机器学习模型确实能够显著提高传统因子的表现,但在具体实施过程中存在很多不同的选择,如训练的目标,窗口的滚动及因子的选择。本文给了我们一个非常详细的对比,很多结果也于我们直观的认知保持一致,为我们在具体应用机器学习模型提供的借鉴。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/154110
 
318 次点击