标题:Machine Learning for Stock Selection
作者:Keywan Christian Rasekhschaffe and Robert C. Jones, CFA
译者:张琨,CFA

特此说明:文章仅代表作者本人观点,不应被视为投资建议,所述观点也不一定代表CFA Institute和作者本人所在公司的看法。原文发自Financial Analysts Journal Volume 75, 2019 - Issue 3,本翻译未获CFA Institute及原作者授权,仅为学习参考之目的,请勿以任何形式进行转载。
信息披露:
Keywan Christian Rasekhschaffe是美国纽约Gresham Investment Management, LLC的高级量化策略师,Robert C. Jones, CFA,是美国新泽西州Summit System Two Advisors, LP 的董事会主席和首席投资官。
作者报告无利益冲突。
开放获取:
无
综述:
在量化金融领域,机器学习已经成为越来越重要和有争议性的话题。关于机器学习技术能否成为实用的投资工具,仍然存在激烈的争论。尽管机器学习算法可以发现微妙的,固有的和非线性的关系,但是当研究者试图从嘈杂的历史数据中提取信号时,会面对过度拟合的重大挑战。我们描述了机器学习的一些基本概念,并提供了一个简单的示例,来说明投资者如何利用机器学习技术来预测股票收益的截面,并尽可能限制过度拟合的影响。
以下为正文:
自2008年经济危机以来,使用量化因子的从业者一直在举步维艰,很多传统的因子已经不再有利可图。结果导致一些从业者试图寻找超越传统量化的选股方法。随着流行的量化因子变得越来越不可靠,很多从业者在开发可以动态的从历史数据中"学习"的模型。但是,动态模型和特定因素定时方法面对一些有效性的批评(例如,Asness 2016)。多年来,投资者一直在使用诸如回归分析之类的计量经济学技术,但很少有纯粹基于这些技术的动态模型获得了成功。原因可能是财务数据本身就有噪音,这些因子可能是多重共线性的,还有就是因子和回报之间的关系可能是动态的,非线性的和/或上下文相关的。这些特征使得线性回归模型很难估计潜在预测因子和预期收益之间的任何动态关系。
我们相信机器学习算法(MLAs)可以提供比线性模型更好的方法。这些技术已经存在很长的一段时间了。实际上,Frank Rosenblatt在1957年就发明了感知器,一种可以对图像进行分类的神经网络。在随后的几十年里,一系列的发展使得机器学习和功能的实用性得以提高:
· 自1970年代以来,计算能力的增长大致符合摩尔定律;
· 数据可用性呈指数级增长,储存成本也显著下降;
· 来自诸如计算机科学和统计学的新技术,连同计算能力和数据可用性的提高,催生了强大的新算法。
在金融以外的许多领域,机器学习算法已经被证明比传统统计技术更加有效。诸如语音识别(如Siri和Alexa的应用),图像识别(如自动驾驶)和推荐引擎(如亚马逊的应用)。深度学习算法在许多图像分类任务中已经超越了人类的准确性。在1997年,一个名为深蓝(Deep Blue)的MLA首次击败了当时的国际象棋冠军Garry Kasparov。
它通过高速计算来"蛮力"评估数以千计的可能走法和对抗走法。最近,一个名为(阿尔法零)AlphaZero的深度学习神经网络使用模式识别技术成为了国际象棋世界冠军。和深蓝被编程以评估不同位置价值的方法不同,它并没有被给予任何领域的既定知识,它只是在和自己的对弈中自学成才,在短短4个小时内就成为了国际象棋大师。
什么是机器学习?机器学习是一系列方法和算法的总称,它允许机器在没有显性编程指令的情况下自行发现模式。在选股的案例中,建模者提供了可能有助于预测未来回报的各种因子,并使用MLAs来学习哪些因素是重要的,以及他们如何与未来回报相关。机器学习提供了一种自然的方法,将许许多多的弱信息源整合成一个比任何来源都强的复合投资信号。
近年来,计算机科学家和统计学家开发并精进了几种机器学习算法,例如梯度增强回归树,人工神经网络,随机森林和支持向量机(定义参加附录A)。这些算法大多有两个重要的性质:
1. 它们可以发现复杂的模式和隐蔽的相关性,包括非线性和上下文关系,这些关系通常很难甚至不可能用线性算法检测到。
2. 在存在多重共线性的情况下,它们通常比线性回归更加有效。
虽然关于机器学习技术在金融领域的应用研究比较活跃,但是该领域的许多论文都是侧重于某个特定算法的应用。Wang and Luo(2012)提供了使用AdaBoost算法预测股票收益的详细概述。Batres-Estrada(2015)和Takeuchi and Lee(2013)探索了利用深度学习来预测金融时间序列的方法。Moritz and Zimmerman(2016)使用树基模型来预测投资组合的收益。Wang and Luo(2014)证明了不同的训练窗口的组合预测是有效的。Heaton, Polson and Witte(2017)讨论了深度学习模型在智能索引中的应用。Alberg and Lipton(2017)提出预测公司基本面(如收益或销售)而不是回报(因为在预测基本面时信噪比更高),这使得他们可以使用复杂的机器学习模型。
一些文章研究了将非线性模型用于时间因子回归的好处。Miller, Ooi, Li, and Giamouridis (2013) and Miller, Li, Zhou, and Giamouridis (2015) 发现了在预测因子回报的时候,分类树模型比线性回归模型更加有效。他们还提出证据表明综合了线性和非线性的模型甚至更有效。此外,他们证明了包含这些因子预测的截面模型可以表现的比静态因子模型更好。我们在这项研究中得出了相似的结论,但我们使用了不同的方法。不同于明确的预测单变量多空因素投资组合的收益,我们使用了截面因子分数(特征)来预测收益的截面。
Gu, Kelly, and Xiu (2018)检验了机器学习技术在资产定价方面的有效性问题。作者使用了大量的公司特征和宏观变量来预测个股的收益。由于他们使用了总收益而不是超额收益作为因变量,他们合并预测了预期回报和股权溢价的截面。他们检验了各种机器学习方法的表现,发现和普通最小二乘回归(OLS)相比,非线性预测方法显著提升了精度。他们将这一进步归因于机器学习发现非线性模式的能力,以及它们对多线性预测器的鲁棒性(抗干扰性)。尽管我们的结论是相似的,我们只关注了与股票风险溢价无关的超额回报截面。因此,我们只使用了个股特性并排除了宏观变量。我们相信这种方法可以减少噪音和过度拟合的风险。与Gu et al. (2018)一致,我们发现许多机器学习算法的性能优于线性回归,但是相对于单个算法的性能,我们更关注与将不同算法和训练窗口相结合的好处。我们发现,预测组合的表现优于美国和其他地区的成分股。
过度拟合的危险当模型选择了噪音而不是信号时,过度拟合就会发生。过度拟合模型有很好的样本内表现,但面对样本外数据的时候预测性就很差了。虽然机器学习技术能够揭示历史数据中的微妙模式,但过度拟合始终是一个重要挑战。当一个人在训练某种算法的时候,在数据中发现模式和能够适用于样本外同样重要。因子和回报之间的关系通常是嘈杂的,有很多潜在的因素存在,这增加了问题的维度。相比之下,很多应用了机器学习的其他领域,例如图像识别,具备很高的信噪比。例如,一些图像分类任务(例如对猫和狗进行分类)的错误率低于1%。
由于用于预测股票回报的信噪比较低,避免过度拟合显得尤为重要。图1展示了使用模拟噪音数据的梯度增强回归树分类器的样本内和样本外错误率。样本内的错误率总是低于样本外的错误率。随着助推迭代次数的增加,误差在样本内通常不断减少,
在大约400次的助推迭代之后,误差变得可以忽略不计。而与之鲜明对比的是,保持样本的错误率先是下降,在大约50次迭代之后反而会上升。这就是算法开始过度拟合数据的地方。
注:使用模拟噪音数据。注意x轴上的更多迭代允许算法更好的适应过去的数据。
与预测股票收益相比,模拟样本具有较高的信噪比。由于信噪比较低,样本外结果的偏离速度要比样本内快得多。
然而,这个样本说明了基于训练集评估预测表现的风险:过度拟合使得结果看起来比实际应用上要好得多。接下来,我们将探讨两种可以帮助减轻过度拟合风险的方法:预测组合(forecast combination)和特征工程(feature engineering)。
预测组合 Forecast Combinations许多成功的机器学习算法是依赖于bagging(如随机森林)或boost(如AdaBoost)的集成算法。这些集合算法从许许多多弱学习者那里获得许多预测,并将这些预测集合起来生成一个强学习者。Dropout(见附录A和Srivastava and Hinton 2014)是一个与这些集成算法相关的工具,用于防止神经网络中的过度拟合,也纳入了模型平均的概念。我们相信,通过将不同类型算法的预测综合起来,并在不同的数据子集上训练它们,就可以实现更大的多样性。如果在很多训练子集上训练的很多不同算法都能够找到相似的模式并得出相似的结论,我们就可以更加确信预测是强健的,而不是过度拟合的结果。
预测组合的有效性在统计文献中有广泛的记录。Clemen(1989)早在1989年就总结了关于预测组合的实证证据:
结果几乎是一致的:将多个预测综合起来,能够提高预测的准确性……在许多情况下,人们可以简单的通过对预测结果取均值来获得显著的性能改进。
Makridakis and Hibon(2000)在一项对3003个时间序列进行预测的竞争中进行了分析,结果表明,综合预测组合通常优于成分预测,甚至比最高的成分预测还要好。Timmermann(2006)提供了一个分析框架来确定什么时候综合预测组合可能会更有效,即,当不同的预测者使用不同的数据或技术时,预测的偏误相关性较低。在这些情形下,综合预测可以提供更高的信息和更少的噪音。
当然,传统的多因素模型已经包含了多种预测,因为不同的因子代表了不同的预测。但是,在这里建议的方法是,通过包含许多不同的预测技术,训练子集和多重因子,可以进一步提升这一概念。
我们可以在以下几个方面提升预测的多样性。
综合不同类型算法的预测。很多机器学习算法,特别是集成算法(例如随机序列)——已经用于综合预测以获得比单个算法更好的结果。通过集合不同类型的算法,我们应当能够检测出特征和标签之间不同类型的关系。
综合不同训练窗口的预测。不同窗口的预测可以反映不同的市场状况,并且相关性通常较低。窗口可以在时间,季节或条件的基础上自定义。结合来自不同训练窗口的综合预测也可以降低预测方差,并潜在的增加了风险调整后的收益。
综合不同因子库的预测。通过将一个大的因子库划分为多个子集,算法可以更好的探索更多的模式,这有可能带来新的见解。
综合不同期限的预测。分辨不同期限内的不同因子是很重要的。例如,基本面因子通常对长期投资更为重要,而技术面因子通常对短期投资更具预测性。
特征工程 Feature Engineering特征工程使用领域知识来构造问题,以便可以使用机器学习解决方案。这些工程需要大量的专业知识,可能既困难又耗时,但是对开发强健(鲁棒)的预测至关重要。特征工程决定了我们最终需要算法来解决哪些问题,以及我们使用哪些算法来解决这些问题。这是克服过度拟合的最有效方法之一,因为它允许我们在训练算法之前就提高信噪比。
特征公式是领域知识流入流程的地方。在选股方面,它可以决定这样的问题:我们试图预测什么?哪种算法可能是最有效的?哪些训练窗口更有帮助?我们应当如何标准化要素因子和回报?以及哪些要素因子可能提供有价值的信息?
在接下来的材料中,我们会简略的讨论其中一些问题。目的是提供一个概述,而非全面的讨论。这些决策之间可能存在的差异,就像金融建模者的专业知识和想象力的距离一样大。然而,最终努力是否成功还是取决于决策的质量。
我们在预测什么?为了限制过度拟合的风险,通常最好的方法就是使用机器学习算法来预测离散变量。相对于线性回归预测回报,MLAs通常预测的是具体类别——较好表现者和较差表现者之间的差异,这个相对回报来说没那么嘈杂。用户可能希望选择其他类别,例如市场表现,或者更多的类别来反映不同水平的表现,但是每增加一个新的类别都会增加过度拟合的风险,并可能只能提高一点点准确性,就像股票回报这类嘈杂的数据一样。
在选择类别之后,第二个决策就是如何定义这些类别。如果我们的回报的截面感兴趣,我们可以通过在训练集的每个日期将股票分为表现较好者和表现较差者来定义类别。我们也可以在部门或行业内部定义这些类别以减少噪音。以类似方式进行标准化因子(即特征)通常是可取的。大多数投资者都希望能够超越净风险,所以很自然的,可以将风险调整的超额收益定义为表现类别。这些类别可能包含简单的波动调整回报或适当风险模型中的阿尔法,例如资本定价模型(CAPM),Carhart(1997)四因素模型、Fama and French(2017)五因素模型,或Morozov、Wang and Borda(2012)中描述的MSCI-Barra模型。利用风险调整后的回报率可以提高信噪比,从而提高对时间和市场领域的预测。
第三个决策涉及预测的期限。选择预测的期限意味着对这个期限进行优化。短期限适用于低容量,高周转的策略,长期限则更适合高容量,低周转的策略。短期限提供了更多的训练周期,这有助于在嘈杂的数据中发现微妙的模式。预测期限还应当反映潜在数据(或因子)的频率,一个适当的预测周期从一天到一个季度不等。
我们应当使用哪种算法?维基百科列出了100多种机器学习方法,并且还在不断的增加中。机器学习是一个快速发展的领域,讨论那么多种算法的优缺点远远超出了本文的范围。但是,通常来说,我们希望我们最终的预测当中包含了使用各种技术的各种算法。事先是不可能知道回报和特征之间的确切关系的。将来自不同类别算法的预测组合在一起,可以有效防止错误设定。这在处理金融数据的时候尤为关键,因为在这类数据当中,信噪比很低,而且很难用经验高度确定它们之间的关系。
集成方法在金融数据和其他领域的应用当中展现出良好的前景。其目标是使用等权重预测(bagging)或准确权重预测(boosting),将较弱的学习者综合起来,从而产生一个强的学习者。强学习者往往比其组成部分的任何弱学习者表现的都要好。Boosting和bagging都可以解决监督学习所会遇到偏差和方差权衡的问题。偏差来自于估算方法不能有效捕获数据中的基本面关系(欠拟合)。方差则是由于训练集的微小变化导致的误差,这意味着估计者没有学习样本以外的关系(过拟合)。
引导聚合(bagging)在训练集的随机子集上独立的适用于估算器,例如决策树(弱学习者)。每个弱学习者都是过度拟合的,但是当弱学习者被综合成一个强学习者的时候,过度拟合产生的错误会降低。依序进行强化训练,使得估计量适合训练集,并在后续的强化训练中对错误分类的结果予以更大的权重(参见Schapire 1990)。强学习者是弱学习者精确的加权平均。通过给予更成功的学习者以更大的权重,boosting算法可以消除偏误。如果我们允许boosting算法过于激进的提高成功学习者的权重,这种好处就会被随之不断增加的方差所抵消掉。因为这种权衡的存在,boosting算法往往会比bagging算法需要更多更仔细的参数调整,并且保守的学习率更适合于样本外的股票选择。大部分boosting算法的训练时间比bagging算法要长,因为它们必须按照顺序运行,而bagging算法可以并行运行。
Boosting和bagging都可以集成不同的基本算法作为它们的弱学习者。不同的算法可以捕获不同的数据特征。一些算法比较简单和线性;其他的可能非常复杂,可能能揭示高度非线性的关系。此外,尽管我们往往更希望捕获的是复杂性,但是和简单算法相比,复杂的算法往往需要更高的信噪比和更多的训练数据才能够有效的学习。使用复合算法和方法旨在捕获简单和复杂的关系,并最小化过度拟合的风险。
一般来说,建模者应当关注那些在有噪音的数据上被证明可以成功的算法,以及那些有众所周知优缺点的算法。作为一个实际的问题,一个好主意是使用软件库里有的那些算法,并在各种应用当中进行了测试。但是,如果不进行进一步的参数调整,仅仅使用现成的算法是不太可行的。因为在选股当中信噪比往往较低,算法常常会需要做参数化,从而严重限制了算法过度拟合的可能性。与所有的投资策略一样,从业者应当避免在样本中优化模型。
我们应该使用哪些训练窗口?一般来说,我们希望用于算法训练的数据可以反映预期的未来环境。例如,我们可能希望使用与预期环境时间相似的训练子集,表现出类似的宏观经济条件(例如估值水平,流动性或增长动能),或者在一年中的同一时间发生(捕获季节性)。相反,如果我们对预期的未来环境不确定,我们就会希望在尽可能更大,更长和更广泛的数据集上进行训练,以捕获各种可能的环境。但是,这种方法需要更长的运行时间,而且可能无法捕获特定周期的模式。
另一个需要考虑的就是模式的截面变化。例如,如果我们认为不同的地区或行业会表现出不同的因子和回报关系,那我们就需要针对这些不同的地区和行业分别训练算法。相反地,如果我们把训练集拆的过细,那过度拟合的风险就会上升。例如,为美国股票和日本股票分别设定训练集可能是有道理的,但为美国科技股和日本汽车股分别设定训练集就太夸张了。
我们应当包含哪些因子?领域知识对选择因子和构建因子以提高信噪比都是至关重要的。为了最小化运行时间并限制过度拟合,从业者应当只给算法提供可能与未来股票回报相关的数据。这些数据包括与未来经济成功有关的因子(基本面因子)和未来供需有关的因子(技术面因子)。由于MLAs通常很擅长处理共线数据,如果我们无法确定哪些因子是最相关的,那我们可以纳入许多相似的因子,尽管太多的相似因子会增加运行时间。
领域知识也有助于在结构化数据的时候最大化信噪比。如果目标是选择个股,而非选择行业或部门,我们应当相应的调整数据。对许多因子来说,将其对行业或部门中立化有助于减少方差,而且不会显著的降低平均因子回报(见Asness, Porter, and Stevens 2000)。因此,在行业的层面中和因子可以提高信噪比,使算法可以更容易了解因子和预期收益之间的关系。
一个案例在本节中,我们将介绍一种股票选择的方法,使用了之前在截面设置中讨论过的一些技术。我们的目标是展示机器学习在股票选择上的一般能力,而非讨论与特征工程相关的任何特定决策的有效性。从业者有非常大的空间来应用他们自己的专业知识并可以取得比这里报告的更好的结果。
数据
表1提供了实例的汇总统计信息。它囊括了22个发达市场的小、中、大盘股,月平均5907支个股。我们的因子库由194个因子组成(公司特征),它们由IHS Markit从不同的来源收集而来。我们包含了21个深度价值因子,18个相对价值因子,10个关注收益质量的因子,26个关注收益动量的因子,26个关注历史成长性的因子,35个流动性因子,29个管理质量和盈利能力的因子和29个技术面价格因子。超额收益的定义是高于无风险利率的收益,来自Barra。我们的样本期是1994年到2006年,从2004年开始(留出10年的训练期)。预测的期限和数据频次均为月度。综合不同期限的预测可能是有益的,但我们为了提供足够的训练集并与典型的因子研究维持一致,选择了以月度为期限。我们给模型预测和交易之间留出了两天的余量,以适应运行时间和参数调优。
注:股票的平均数量代表样本中每月股票的平均数量,美国的数据始于1988年,其他数据均始于1994年。
特征工程
表2概述了在前进框架中每月执行的一般工作流。我们首先定义了三个训练集:
1. 最近的训练集包括了之前12个月的所有数据。
2. 季节性训练集包括了过去10年同一日历月的所有数据。
3. 对冲训练集以之前两套训练集为基础,包括了10年期内表现处于下半部分的那些数据。
单个月度数据有可能出现在多个训练集当中。例如,去年某月的数据会同时出现在最近训练集和季节性训练集当中。
注:每个月,会根据历史数据创建三个训练样本:最近的,季节性的,对冲的。然后,我们应用了包括标准化区域特征和行业的特征在内的特征工程。我们还根据地区/行业将股票分为了赢家和输家。当接收到新的特征数据时,我们对其应用于训练集相同的特征工程步骤,并使用之前训练过的算法来生成预测。
我们开发了这些训练集,并作为四个独立区域分别训练了我们的算法:美国,日本,欧洲和除日本外的亚洲。每个日期的所有因子都是按照地区和行业分类的百分比排序。我们通过将每支股票的超额收益除以其过去一百天的波动率,创建了风险调整后的超额回报率。根据风险调整后的收益率,我们将股票按照地区/行业分为赢家和输家两部分。
下一步,我们在每个区域性训练集上训练了四种不同的算法——一个使用AdaBoost的bagging估算器,一个梯度增强分类和回归树(GBRT)算法,一个神经网络,一个使用支持向量机的bagging估算器。
一个使用AdaBoost作为基础学习器的的bagging估算器。AdaBoost使用了决策树桩或最大深度为1的树作为基本估算器。我们进行了50次助推迭代,学习率为1。然后我们使用了一个结合了20个随机AdaBoost预测的bagging估算器。该算法由scikit-learn库实现。
一个梯度增强分类和回归树算法。我们使用XGBoost分类器进行GBRT综合预测,学习率为0.05,我们使用了300次助推迭代。我们还将树的最大深度设定为3来限制过度拟合。通常来说,我们发现低学习率会带来不错的结果,只要他们被大量的助推迭代所综合补偿。但是,大量的助推迭代确实增加了运行时间。
一个神经网络。我们使用TensorFlow库实现了一个多层感知器。我们使用了4层,包括一个瓶颈层来限制过度拟合。此外,我们在第一层之后应用了20%的dropout。我们使用"tanh"来激活函数,因为我们发现它们在我们的训练集上的预测精度始终优于通常选择的"ReLU"激活函数。
一个使用支持向量机作为基础学习器的bagging估算器。我们使用径向基础函数 (RBF)核,并结合了20个支持向量机(SVM)模型的预测,它们使用了scikit-learn bagging估算器。对支持向量机(SVM)来说,计算预测类概率是非常昂贵的,所以作为替代,我们选择了决策函数输出,该输出倾向于与概率成正比。
AdaBoost和SVMs都相对较慢,也难以并行化。使用这些MLAs作为bagging(而不是boosting)估算器的基础学习者可以显著的缩短运行时间,因为他们可以在多个CPU上运行。对于每一类算法,我们在训练窗口都使用同样的训练参数。参数在2004年之前选择。
对于这12个模型(3个训练窗口4个MLAs),我们得到了每支股票和每个月的超额表现概率(这些是连续变量)。在最后一步当中,我们对每个地区/行业中每个日期的12个预测分类概率进行了百分位排序,并取其平均值以得到了综合机器学习信号。
我们还分析了两个基准模型。第一个模型使用的预测来自一个在12个月滚动窗口上训练的OLS模型,该模型与其他机器学习模型的因子相同,并按照日期,地区和行业进行Z评分。第二个模型当中,我们通过模拟每个因子的十分位差,来递归确认每个地区每个日期下夏普比率最高的10个因子;对于每支股票,我们将前10个因素的得分取平均值。在未报告的结果当中,我们发现将所有候选因子等权重处理表现的明显更差,所以我们选择使用更具挑战性的基准。
结果我们根据综合信号,将股票分为十分位数。然后,我们通过计算顶部和底部十分位的差值(即长短组合)。对于一种变体,我们在每个十分位数中对股票进行等权重加权;对于另一种变体,我们使用每支股票的100天历史标准差来衡量我们的头寸。
图3显示了对美国地区和世界其他地区(ROW)进行综合预测的好处,这基于积累十分位价差回报。在这两个地理区域当中,粗的线表示对应的十分位差,而细的线表示按算法或者按训练窗口分组的十分位差。在这些图中,我们展示了风险加权变量,但和等权重变量的结果在性质上是相似的。对于所有的算法和训练集而言,结果都是强的,但综合预测的结果甚至更强。训练窗口多样化的好处表现的尤为明显。
注:该图显示的是不包含各种预测子集积累的十分位差收益。在每个十分位当中的股票都以其100天波动率的倒数来加权。算法子集在给定的算法下应用于所有的训练窗口;训练窗口子集使用给定训练窗口的所有算法。综合预测则使用了所有的训练窗口和算法。
注:该模型使用XGBoost,期限是2006年12月到2016年12月。IndRelRtn5D是过去5天的行业相对回报率。IndRelRtn4W是过去4周的行业相对回报率。Sigma60D是将一支股票60天的日回报率和行业回报率进行回归得出的残差的标准差。SIP是指卖空股票股票数量占总流通股的比例。VolDiff_PC是平价看跌期权和看涨期权之间的隐含波动率之差。DR_1MStd是一个月的回报波动率。股票评级是分析师们对该股的普遍评级。
在图3中,我们使用了十分位差来衡量各种预测方法的表现。由于其非线性的特质,机器学习算法没有可解释的系数,但我们可以定期梳理那些贡献最大的。图4显示了美国区域梯度增强分类树的平均重要特征(10个最重要的特征),这是通过检查一个特征在树中出现的频率和级别来评估的。因为树是有条件的,这个度量并不表示相关性信号。尽管它有许多的限制,但这类分析仍然可以提供重要的洞见,并且帮助从业者判断一个算法是否合理。
我们在表2中报告了所有模型的和综合模型的ICs 列(信息系数)和t检验。IC衡量的是Spearman排名——股票排名和未来回报之间的关系,这涵盖了所有的预测,而不仅仅是极端的十分位数。正如图2所示,综合预测表现的比所有算法/训练窗口的组成部分都要更好,这说明了综合预测的好处。这些结果与图3所示的结果的一致;也就是说,ML组合提供了比任何单独的算法/训练窗口组合更好的结果。它还轻松的超过了OLS基准和一个对夏普比率最高的10个因子进行等权重加权的基准。
注:MKT是Fama-French(1992)的市场风险因子。
注:该表显示了月度平均超额回报和阿尔法。"美国区"的标签包括美国股票;"ROW"(世界其他地区)标签包括其他所有地区股票。在B版中,交易成本假设为单边15个基点。
表3展示了某些MLA组合和Fama and French (1992) 市场风险因子 (MKT)之间的相关性。有趣的是,等权重的美国十分位利差与市场存在很强的平均负相关性,这意味着该投资组合往往是做多低贝塔系数,以及做空高贝塔系数。然而,正如我们稍后讨论的,这些相关性和敞口会随着时间变化。当我们使用风险加权时,我们得到的市场因子平均相关性要小得多。由于我们的预测倾向于做空高波动性的股票,风险加权头寸规模导致投资组合略微出现了美元净多头,从而抵消了与市场平均负相关性的大部分。
表4显示了各种十分位差的月平均表现是如何与最初的三个Fama-French因子相关的,即——MKT,SMB(小市值减大市值),HML(高市帐率减低市帐率)和Carhart(1997)的动量因子(MOM)。在A版中,结果为交易成本总额;在B版中,结果是交易成本净额。在A版中,风险加权投资组合的超额回报和阿尔法往往更大一些,无论是在美国还是其他地区。这个结果并不令人惊讶,因为我们训练了MLAs来预测按其标准差缩放的回报。等权重的十分位差显示出非常显著的回报和阿尔法,但它们的负市场敞口降低了它们的原始回报。这方面也同样反映在美国地区等权重组合相对较高的R方中,这表明这个投资组合大部分的方差都可以用四个风险因子来解释,最明显的是市场因子。
表4还包括了使用相同特性但使用线性回归来预测股票回报的基准策略的结果。这个OLS基准策略的结果是正值,但是机器学习的平均回报和阿尔法要大得多。T检验的差值越来越大,这表明MLA策略在风险调整基础上更具优势。我们还研究了一种策略,即找出每个时点上夏普比率最高的10个因子,并将其等权重加权。这种朴素策略的结果往往比OLS基准的结果更好,但机器学习组合在美国和其他地区的表现都明显更好。
虽然我们不建议将这些结果解释为一个成熟的交易策略,我们还是探讨了纳入交易成本是否会对结果产生重大的影响。扣除交易成本之后的结果列示在表4的B版,我们发现阿尔法还是挺显著的。
有趣的是,机器学习组合通过对价值因子(HML)和小盘股因子(SMB)表现为负值,但是只有美国地区等权重下,SMB因子才是显著的。这一结果表明,积极的结果并不是由共同的风险因子驱动的。动量载荷因子(MOM)在美国地区是正的,对其他地区是负的,但是同样,只有在美国地区等权重下才是显著的。这些结果证实了投资组合的结构可以对组合风险产生显著的影响。
因为阿尔法的重要性不亚于超额收益,因此四因子模型可能无法解释机器学习策略的回报。相反,MLA组合可能从其他因子中提取信息,或者利用线性风险模型中没有捕捉到的因子回报的时变关系。
在样本期内(1994-2016),股票市场中性基金的回报相对较低。例如,对冲基金股票市场中性指数,在2004到2016的月度回报仅为0.24%。在同一时期,所有的机器学习十分位差在估算交易成本后的月度回报都超过了1%。
注:月度回报基于对滞后的公司特征和ML预测进行回归。在等权重规范下,因变量是超额收益;在风险加权规范下,因变量是按照100天跟踪标准差进行缩放后的超额收益。
在表5当中,我们报告了Fama and MacBeth(1973)基于原始月度超额回报和波动率(风险加权)成反比的综合机器学习预测的多元回归系数。我们控制了一连串的流行的动量因子,并分别对美国地区和世界其他地区进行分析。所有的变量都被标准化处理过,以使参数具有可比性。表5显示,即使控制了许多流行的定量因子,机器学习综合预测仍然与所有规格的收益呈显著相关。或许令人惊讶的是,少部分的控制变量仍表现出适度有效。如果算法有效的利用了这些因子中蕴含的信息,我们可以预期控制因子能够提供的增量价值很小。然而,这些算法只考虑了时间点信息,而事后识别成功因素要比事前发现来的容易的多。
在表6当中,我们报告了MLA组合多空两端的收益和四因素阿尔法。与Gu et al.(2018)提到的类似,我们发现大部分的出色表现来自多端。这一发现并不令人惊讶,因为这段时期的股票市场表现的非常好。无论是在美国地区还是世界其他地区,阿尔法在多空组合中都表现显著。然而,独立的去观察多端和空端都无法看到全局。表4显示的多空组合,阿尔法的t检验就比表6显示的纯多和纯空组合要来的显著的多。因为我们限制了机器学习的算法来预测风险和行业的标准化收益,十分位差则消除了大部分行业风险和特质性波动,并增加了风险调整后的收益。这一结果表明特征工程的潜在好处。
机器学习预测的一个潜在好处是,算法可以动态的学习因子和回报之间的变化关系。表5显示了美国区域机器学习综合预测和Fama-French-Carhart因子之间的月度截面相关时间序列。显然,表3当中的平均相关性并不能说明全部问题;所有这些相关性都存在显著的时间变化性。例如,尽管平均呈正相关,但我们看到机器学习预测和动量在三个时期呈负相关:(1)样本开始阶段;(2)2009到2011年间;(3)2013到2015年间间歇性存在。这些负相关的时间段往往与动量显著表现不佳的时段相一致或者紧随其后。例如,在Daniel and Moskowitz(2016)记录的动量崩溃之后,动量敞口变成了负值,在2010年的几个月中,截面相关性围绕在-0.3左右。如前所述,规模和贝塔的平均相关性往往为负值,但它们随着时间的变化波动相当大,偶尔会出现正值。
尽管精确的确定机器学习策略的阿尔法有多少是来自因子定时是很困难的,这些因子敞口还是显然比在典型的线性因子模型中发现的敞口模式更具变化性。
结论我们讨论了从业者如何利用机器学习算法来选股,同时避免这类技术的主要问题——即过度拟合。在低信噪比的状态下,过度拟合始终都是一个风险,特别是对于MLAs这样的技术,结构对分析的影响很小。然而,因为他们不需要结构,MLAs技术可以发现复杂的非线性模式,而传统的统计技术(例如OLS)却很难发现。在必须考虑多重共线因子时,它们的表现也往往比OLS技术更好。
我们讨论了降低过度拟合风险的两种主要方法——特征工程和综合预测。特征工程可以通过正确构造问题和转换数据以产生更清晰信号的方法来提高信噪比。综合预测通过关注不同的预测技术(MLAs)和训练窗口之间具有强健(鲁棒)的关系来降低噪音。一个成功的机器学习应用需要大量的专业领域知识来解决这些问题。MLAs并不会很快取代人类专家(至少在投资方面不会)
在最后一节中,我们列示了基于所提出的一些技术的一项案例研究。我们证明了,如果应用得当,MLAs可以广泛使用公司的各种特征来预测股票回报,而不会过度拟合。通过合理的特征工程和综合预测,MLAs可以产生大大优于OLS等简单线性技术的结果。这些MLA结果在各种风险调整下都是强健(鲁棒)的,并且在美国市场和其他发达国家市场都表现良好。虽然准确的评估是哪些信号驱动了这些结果是困难的,我们还是证明了传统的因子敞口随时间的变化很大,这意味着因子定时对这些积极的结果贡献很大。
本文的主要贡献如下:(1)讨论了特征工程和从业者使用机器学习模型进行股票选择时面临的一些问题;(2)证明了使用这些技术进行综合预测的好处。特别的,我们强调了从多种算法和训练窗口进行综合预测的好处,并表明MLAs可以提供优于简单线性模型的结果。
编者注
2018年7月19日提交,Stephen J. Brown 于2019年1月30日接受,2019年5月13日在线发布。
译者注:
2019年11月24日翻译结束。如有错漏欢迎指正。
因原文链接需要权限,希望获得原文及Notes,Appendix的朋友请留下邮箱地址或留言联系。