楼主: JoinQuant
154 0

[程序化交易] 机器学习技术能够有效用于选股吗?(下) [推广有奖]

  • 0关注
  • 14粉丝

等待验证会员

博士生

4%

还不是VIP/贵宾

-

威望
0
论坛币
102 个
通用积分
10.0650
学术水平
11 点
热心指数
8 点
信用等级
8 点
经验
3218 点
帖子
88
精华
0
在线时间
120 小时
注册时间
2015-9-9
最后登录
2019-7-17

JoinQuant 企业认证  发表于 2019-7-5 16:52:50 |显示全部楼层





未经授权,严禁转载

前言

在本篇论文的前半部分,作者提供了一些关于机器学习的基本概念,并指出机器学习在处理金融数据时很容易遭受过拟合的问题。作者对此提出了几种解决方法,包括结合不同的算法和信号窗口。此次推送中,译者为大家带来了论文下半部分的分析。作者提供了一个简单的例子,并成功证明结合不同的算法和训练窗口可以提高机器学习策略的表现。

上篇链接:机器学习技术能够有效用于选股吗?(上)

数据选取
表2提供了统计性描述。我们的样本包括小市值,中市值和大市值股票,平均每月5907只股票,涵盖22个发达市场。我们的因子库包括194个因子(即公司特征),这些因子来自不同来源,由IHS Markit组装。我们包括21个深度价值因子,18个相对价值因子,10个关注盈利质量的因子,26个捕捉盈利动量的因子,26个关注历史增长的因子,35个流动性因子,29个管理质量和盈利因子,以及29个技术指标价量因子。超额收益指相对美国国库券收益率的超额收益,来自Barra,且所有收益以美元计。我们的样本包括1994年至2016年的数据,从2004年开始进行前瞻性预测(允许10年的训练窗口)。预测范围和数据频率均为月度。将预测与不同视野相结合可能是有益的,但我们关注的是月度视野与典型的因子。考虑到运行时间和参数调整,我们保守地允许模型估计和交易之间有两天的间隔。







特征工程和算法选取

图2概述了每个月在前瞻分析框架中执行的一般工作流程。





首先,我们根据如下定义构建三个不同的训练集:

1、recent训练集包含最近12个月的数据

2、seasonal训练集包括过去十年相同月份的数据。

3、hedge训练集包括基于前两个训练集的之前10年表现的后50%的数据。

单个月可能会出现在多个训练集中。例如,去年的同月将出现在recent和seasonal训练集中。

我们开发这些训练集,并各自训练我们的算法,其分为四个地区:美国、日本、欧洲和除日本之外的亚洲地区。

所有的因子都是每个日期在地区和行业中的百分位数。

我们通过将每只股票的超额收益除以过去100天的波动率来创造风险调整超额收益。我们根据风险调整后的回报,将股票分类为赢家或输家(以50%分位数为界)。

在下一步中,我们在每个地区分别训练四种不同的算法:

使用AdaBoost作为基础分类器的bagging预测器:Adaboost使用决策树或最大深度为1的树作为基本分类器。我们运行该算法总共进行50次增强迭代,学习率为1。此外,我们使用了一个bagging分类器,该分类器结合了20个随机Adaboost预测的预测。该算法使用Scikit Learn库实现。

梯度增强回归树算法:我们使用XGboost分类器进行GBRT复合预测。学习率为0.05,我们使用300次boosting迭代。我们还将树的最大深度限制为3以限制过度拟合。一般来说,我们发现只要通过大量的增强迭代补偿,低学习率就会产生良好的结果。但是,boosting迭代次数的提升会增加运行时间。

神经网络:我们使用Tensorflow库实现了多层感知器。我们使用包括瓶颈层在内的四层来限制过度拟合。此外,我们在第一层之后应用20%的dropout率。我们使用'tanh'激活函数,因为我们发现其预测准确度始终优于我们训练集中通常首选的“ReLU”激活函数。

使用支持向量机作为基础学习器的bagging预测器:我们使用径向基核函数(RBF)内核。我们使用Scikit Learn baggin预测器组合了20个SVM模型的预测。预测类别概率的计算对于支持向量机是非常“昂贵”的,我们使用决策函数输出,这往往与概率成比例。

Adaboost和支持向量机运行相对较慢且难以并行化。将这些机器学习算法作为bagging算法的基础学习器可以显著提升运行速度,因为它们可以在多个cpu上运行。对于每类算法,我们在不同训练窗口上使用相同参数。参数从2004年之前选出。

对于这12个模型(3个训练窗口,4个机器学习算法),我们可以得到每只股票在每个月(为连续变量)表现好的概率。在最后一步,我们根据分位数对每个区域/行业在每个日期对于预测的类别概率排序,并对它们取平均,得到组合的机器学习信号。

我们同样提供了两种其他量化策略的结果。首先,我们利用包含了所有机器学习算法中所用因子的OLS模型的预测,其根据之前的12个月来做出预测。接下来,我们递归地根据夏普率选出10个最好的因子并平均它们的得分。在没有报告的结果中,我们发现等权平均所有选出来的因子表现得很差,因此,我们决定用更严格的基准。对于OLS模型的计算,两种基准允许一天的滞后,而对于机器学习算法的计算,两种基准允许两天的延迟。




策略结果

跟据组合信号,我们将股票分为十分位组。通过计算最高组和最低组之间收益的差值,我们可以计算出十分位组的价差(既多空组合)。对于变体(variant)1/n,我们等权平均每个十分位组的股票;对于其他变体(1/vol),我们根据股票之前100天的标准差反比例调整仓位。

图3展示了结合预测的好处。在所有的子图中,粗线展示了结合信号的十分位组价差,细线展示了按算法或时间窗口分组的价差。在这些子图中,我们展示了1/vol变体的结果,但1/n变体的结果定性上与之相似。所有算法和训练集的结果都很好,但是组合预测的结果更强。结合多样化的训练窗口带来的好处尤为明显。





在附录B中,我们报告了所有子模型和组合预测的rank IC和t统计量。组合预测胜出了所有单个算法/训练窗口的预测,这也进一步说明了组合预测的好处。若关注其组合成份,神经网络算法和hedge训练集大致有着最高的信息系数。

表3展示了不同的多空组合月度表现有多少与风险模型相关,包括原始的FF三因子,再加上Carhart动量。除了Panel C,所有的结果都未考虑交易成本。Panel A展示了不同的机器学习投资组合和市场因子的相关性。有趣的是,等权美股市场多空组合与市场有着很高的平均负相关性,这意味着投资组合买入低Beta股票,卖空高Beta股票。然而,就像接下来要讨论的,相关性和暴露在时间上变化很大。如果我们根据1/vol调整仓位,与市场的平均相关性会小很多。因为我们的预测倾向于卖空高波动股票,1/vol的变体会导致投资组合的多头会稍多于空头,因此抵消了大部分的与市场的负相关性。





Panel B展示了相对四因子模型的平均月度超额收益和alpha。1/vol投资组合的超额收益和alpha会更大一些,无论是在美国还是世界其他地区。这并不令人惊讶,因为我们训练机器学习算法使其预测除以标准差后的收益。1/n投资组合同样展现了很高的收益和alpha,但其负市场暴露减少了收益。美股市场等权组合相对较高的R2同样反映了这一点,这意味着投资组合大部分的方差可以由四个风险因子解释,特别是市场因子(MKT)。

我们同样包括了基准策略的结果。该基准策略使用了机器学习算法同样的因子,但是用线性回归(OLS)预测股票收益。基准OLS策略的获得了正收益,但平均收益和alpha远远小于机器学习算法。我们还报告了另一个策略的结果:该策略找到每个时间点具有最高夏普比率的十个因子,然后将这些因子等权平均。“前十名”策略的结果比OLS基准策略更好,但仍然不如机器学习算法策略的结果,无论是在美国还是世界其他地区。但我们并不推荐简单的多空组合作为一个交易策略,我们需要探究十分位组合的价差在扣除交易成本后是否会显著减少。Panel C假设双边手续费为30个基点,alpha收益依旧显著。



因为alpha比超额收益要显著,所以不太可能是四因子模型解释了机器学习策略的收益。相反,机器学习的结合策略看起来提取了来自其他因子的信息,或利用到了线性风险模型未捕捉的因子和回报之间的时变关系。在样本期间,股票市场中性(EMN)对冲基金的回报相对较低。例如,HFRI EMN指数从2004年至2016年每月收益仅为0.24%。在同一时期,所有机器学习多空组合在扣除假定的交易成本后每月收益超过1%。

在表4中,我们报告了Fama和MacBeth(1973)使用原始月度超额收益和波动率反比调整(1/vol)月度超额收益与波动率(1 / vol)成反比的综合机器学习预测的多个回归系数。我们控制了一系列流行的量化因子。我们分别对美国和世界其他地区(ROW)进行分析。所有变量都标准化,以使系数具有可比性。





我们发现机器学习的综合预测与所有规格的回报均显著相关,即使在控制了许多流行的量化因子之后也是如此。也许令人惊讶的是,一些控制变量仍然显著。这有点出乎意料,因为所有这些控制因子都包含在我们的因子库中。 如果算法有效地使用嵌入在这些因素中的信息,那么我们期望控制因子几乎不提供增量值。另一方面,算法仅考虑时间点信息,并且比事前更容易识别事后成功因素。

在附录C中,我们分别报告了十分位组合多头部分和空头部分的收益和四因子alpha。与Gu,Kelly和Xiu(2018)类似,我们发现大部分的超额收益来自于多头。这并不令人惊讶,因为股票市场在这段时间比国库券表现更好。然而当我们调整了市场和风格效应,我们发现多头和空头的四因子alpha均为显著,无论是在美国还是世界其他地区。但单独关注多头和空头不能告诉我们事情的全貌。表3中多空组合alpha收益的t统计量在数量上远大于附录C中多头和空头各自t统计量的总和。因为我们限制机器学习算法预测波动率调整且行业中性的回报,十分位组合的价差消除了大部分的行业风险和特定波动率风险,导致更高的风险调整收益。这也说明了特征工程的潜在好处。

特征的重要性。我们研究了在美国市场样本期的最后十年估计的梯度增强分类树模型的最重要特征。在附录A中,我们报告了十个最重要的特征。Gu,Kelly和Xiu(2018)发现,价格趋势因子,波动率和流动性变量是迄今为止最重要的特征。我们的分析表明这些类别很重要,但我们也发现卖空股票的百分比,看跌期权和看涨期权隐含波动率之间的差异,以及从财务报表信息中得出的特征也是十个最重要的特征之一。

随时间变化的风险暴露。机器学习预测的一个潜在优势是算法可以动态地学习因子和收益之间变化的关系。图4显示了在美国市场机器学习综合预测与用于计算Carhart(1997)四因子模型的因子之间的月横截面相关性的时间序列 - 即Beta、规模、账面市值比和动量。





很明显表4的平均暴露不能告诉我们事情的全貌,因为暴露随时间变动很大。举个例子,尽管有着正的平均相关性,我们看到ML的预测与动量有三个时间段是负相关的:(1)样本初期;(2)2009年至2011年;(3)2013年至2015年中某些时间段。这些负相关的时期往往与动量表现不好的时期一致,或跟随在后。例如,在Daniel和Moskowitz(2016)记录的动量崩溃之后,我们看到动量暴露变为负值,在2010年中几个月的横截面相关性约为-0.3。如上所述,与规模和Beta的平均相关性往往是负的,但随着时间的推移,它们会有很大变化,偶尔也会是正的。

虽然难以精确地确定机器学习策略的alpha有多少来自因子时间序列,但这些因子暴露显然比典型线性因子模型的暴露可变性更强。




结论

在本文中,我们将讨论从业者如何使用机器学习算法(MLAs)进行股票选择,同时避免使用这些技术可能遭遇的主要问题:过拟合。证券选择的低信噪比意味着过拟合风险总是存在,特别是对于像分析结构很少的MLA技术。相反,由于它们不强加结构,因此MLA可以发现复杂的非线性模式,这些模式很难用传统的统计技术(如OLS)来梳理。 在考虑众多共线因素时,它们也比OLS更有效。

我们讨论了降低过拟合风险的两种主要方法:特征工程和预测组合。 特征工程可以通过正确地构建问题并转换数据以产生更清晰的信号来提高信噪比。预测组合通过关注对不同机器学习算法和培训窗口具有鲁棒性的关系来降低噪声。成功的机器学习应用程序需要相当多的专业知识才能解决这些问题,机器学习算法不会很快取代人类专家(至少在投资方面)。

在最后一节中,我们基于一些提出的技术提出了一个案例研究。我们证明,正确应用的机器学习算法可以使用各种公司特征来预测股票收益,而不会过拟合。通过合理的特征工程和预测组合,MLA可以产生的结果大大超过OLS等简单线性技术或夏普率前十因子的等权组合。这些结果对各种风险调整都很有效,并且在美国和其他发达市场区域都能很好地发挥作用。尽管可能难以准确评估哪些信号造成了这些结果,但我们证明传统因子暴露随时间变化很大,这意味着因子时序和条件分析(即非线性效应)有助于帮助我们得到好的结果。

文章有删减,点击【阅读原文】,查看更多内容~









您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-7-18 01:16