添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
资产定价笔记03:机器学习与资产定价(1)

资产定价笔记03:机器学习与资产定价(1)

基于机器学习的经验资产定价

Gu, S., Kelly, B., & Xiu, D. (2020).Empirical Asset Pricing via Machine Learning. The Review of Financial Studies. doi:10.1093/rfs/hhaa009

由于页面字数限制,笔记分为两个部分:

  1. 引言和方法论 (本页)
  2. 实证结果与结论 资产定价笔记03:机器学习与资产定价(2)

摘要

  • 我们对实证资产定价的典型问题:衡量资产风险溢价的机器学习方法进行了比较分析。
  • 我们使用机器学习预测向投资者展示了巨大的经济收益
    • 在某些情况下,领先的基于回归的策略的性能是文献中的两倍。
  • 我们确定了性能最好的方法(树和神经网络)
    • 并跟踪它们的预测收益,以允许其他方法忽略的非线性预测交互。
  • 所有的方法都对同一组主要的预测信号达成一致,这组信号包括动量、流动性和波动性的变化。

引言

在本文中,我们对金融机器学习方法进行了比较分析,衡量股票风险溢价。

我们的 主要贡献 有两方面:

  1. 首先,我们 为机器学习方法在衡量总体市场和个股的风险溢价方面的预测准确性提供了一套新的基准 。这种准确性可以从两方面加以总结。第一个是相对于之前的文献的高样本外预测 R^2 ,它在各种机器学习规范中都是稳健的。
  2. 第二,也是更重要的,我们 通过机器学习预测向投资者展示了巨大的经济收益 。用神经网络预测乘以标准普尔500指数的投资组合策略的样本外夏普比率为0.77,而买入并持有的投资者的样本外夏普比率为0.51。基于股票水平神经网络预测的价值加权多/空十分位价差策略的年化样本外夏普比率为1.35,比文献中领先的基于回归的策略的表现高出一倍多。

收益预测具有经济意义。资产定价的根本目的是了解风险溢价的行为 [1] 。如果预期回报被完美地观察到,我们仍然需要理论来解释他们的行为,需要实证分析来检验这些理论。但风险溢价是出了名的难以衡量:市场效率迫使收益变化被不可预测的消息所主导,这掩盖了风险溢价。我们的研究强调了可以在预测中实现的收益,并确定了最有信息的预测变量。这有助于解决风险溢价的度量问题,从而更可靠地研究资产定价的经济机制。

其次,我们综合了实证资产定价文献与机器学习领域。相对于资产定价中的传统经验方法,机器学习容纳了更广泛的潜在预测变量列表和更丰富的功能形式规范。正是这种灵活性使我们能够推动风险溢价测量的前沿。学术界和产业界对机器学习方法在金融领域的兴趣都有了极大的增长。本文提供了一个比较概述的机器学习方法应用于经验资产定价的两个典型问题:在横截面和时间序列的收益预测。我们的观点是,研究人员理解机器学习在资产定价领域的有用性的最好方法是应用和比较每种方法在熟悉的经验问题中的表现。

机器学习的定义还不成熟,通常是根据上下文而定的。我们用这个术语来描述:

  • (a) 用于统计预测的各种高维模型的集合
  • (b) 所谓的“正则化”方法用于模型选择和缓解过拟合
  • (c) 在大量潜在的模型规范中搜索的有效算法

相对于传统的计量经济学预测技术,机器学习方法(本定义的元素(a))的高维性质增强了其灵活性。这种灵活性带来了更好地逼近未知和可能复杂的数据生成过程的希望。然而,随着灵活性的增强,过拟合数据的倾向也会增加。我们的机器学习定义的元素(b)描述了在实现中强调稳定的样本外性能以明确地防止过拟合的改进。最后,由于有许多预测器,要彻底遍历和比较所有模型排列就变得不可行了。元素(c)描述了聪明的机器学习工具,旨在以可管理的计算成本近似一个最优规格。

经验资产定价的许多方面使其成为机器学习方法分析的一个特别有吸引力的领域。

首先,两个主要的研究议程垄断了现代实证资产定价研究

  1. 第一部分试图描述和理解不同资产之间的预期回报差异。
  2. 第二部分重点研究总体市场股票风险溢价的动态。

衡量一项资产的风险溢价从根本上说是一个预测问题,风险溢价是对未来已实现超额收益的有条件预期。机器学习的方法主要用于预测任务,因此非常适合于风险溢价测量问题。

其次,风险溢价的候选条件变量集合较大 。这个行业已经积累了一份惊人的预测指标清单,许多研究人员都认为这些指标具有预测回报的能力。文献中报告的个股水平预测特征的数量在数百个,而宏观经济预测的总市场数量在几十个 [2] 。此外,预测因子通常是近亲和高度相关的。传统的预测方法在预测数接近观测数或预测数高度相关时就会出现故障。机器学习强调变量选择和降维技术,通过减少自由度和压缩预测变量之间的冗余变化,非常适合解决此类具有挑战性的预测问题。

第三, 使问题更加复杂的是, 关于高维预测集进入风险溢价的函数形式的模糊

  • 他们应该线性进入吗?
  • 如果需要非线性,应该采用哪种形式?
  • 我们必须考虑预测因素之间的相互作用吗?

这样的问题迅速增加了潜在的模型规范集。理论文献提供了很少的指导筛选条件变量和功能形式的列表。机器学习的三个方面使它非常适合于 处理函数形式模糊 的问题。

  • 首先,多样性。作为一套不同的方法,它在规范搜索中撒下了广泛的网。
  • 其次,通过从广义线性模型到回归树和神经网络的方法,机器学习被明确地设计来近似复杂的非线性关联。
  • 第三,参数惩罚和保守模型选择准则补充了这些方法所涵盖的函数形式的广度,以避免过拟合偏差和错误发现。

我们研究了一组候选模型,这些模型可能很适合解决上述三个经验挑战。它们构成了人们在研究生水平的机器学习教科书中会遇到的方法的经典 [3] 。这包括线性回归、带有惩罚的广义线性模型、主成分回归(PCR)和偏最小二乘(PLS)降维、回归树(包括增强树和随机森林)和神经网络。这并不是对所有方法的详尽分析。例如,我们排除了支持向量机,因为这些方法与我们研究的其他方法具有相同的功能 [4] ,而且主要用于分类问题。

我们进行了大规模的实证分析,调查了1957年至2016年60年间的近30,000只个股。我们的预测集包括每只股票的94个特征,每个特征与8个累计时间序列变量的相互作用,以及74个行业部门虚拟变量,总共超过900个基线信号。我们的一些方法通过包括基线信号的非线性转换和相互作用进一步扩展了预测器集。我们建立了以下关于机器学习的经验事实,用于回报预测。

在最广泛的层面上,我们的主要实证发现是,作为一个整体,机器学习有可能提高我们对资产回报的实证理解。它将我们的预测数据集(从现有文献的角度来看是巨大的)消化成一个占主导地位的传统方法的收益预测模型。直接的影响是,机器学习有助于解决实际的投资问题,如市场时机选择、投资组合选择和风险管理,证明了它在金融科技行业的业务架构中的作用。

考虑将个股回报回归到三个滞后的股票水平特征:规模、账面市值比和动量上作为基准。这个基准有许多吸引人的特性。它简约而简单,与这个基准进行比较是保守的,因为它是经过精心挑选的(它所包含的特征通常被证明是最稳健的回报预测指标之一)。Lewellen (2015)表明,该模型的表现与文献中研究的更大、更复杂的股票预测模型一样好。

与Lewellen (2015)研究的样本相比,我们的样本更长、更广(在日期和股票方面的观察更多),基准模型的样本外 R^2 为单个股票回报面板的每月0.16%。当我们扩展OLS面板模型,包括我们的900多个预测者集时,可预测性立即消失, R^2 深深地降至负值区域证明了这一点。这并不奇怪。由于要估计的参数太多,OLS回归的效率急剧下降,因此产生样本外高度不稳定的预测。OLS的失败将我们引向下一个实证事实。

无论是采用惩罚法还是降维法,线性预测都可以使用大量的预测器集。我们的第一个证据,机器学习工具包有助于回报预测出现的事实,弹性网,它使用参数收缩和变量选择来限制回归的自由度,解决了OLS低效率问题。在900+预测器回归中,弹性网以每月0.11%的速度将样本外 R^2 拉入正区域。主成分回归 PCR 和偏最小二乘 PLS 将预测集的维数降至几个线性组合,进一步将样本外 R^2 分别提高到0.26%和0.27%。这是尽管存在许多可能的“侥幸”预测,为大模型贡献纯噪声。换句话说,只要能控制过参数化,在简单线性规范下的高维预测器集至少可以与现状的低维模型竞争。

接下来,我们通过广义线性模型、回归树和神经网络来扩展模型以适应非线性预测关系。考虑到非线性极大地提高了预测。我们发现,树和神经网络明显提高了收益预测,月库存水平 R^2 在0.33%和0.40%之间。但是广义线性模型,通过每个基线预测器的样条函数引入非线性(但没有预测器相互作用),不能稳健地优于线性规范。这表明,允许基线预测器之间(潜在的复杂)的相互作用是预期返回函数中非线性的一个关键方面。作为我们分析的一部分,我们讨论为什么广义线性模型相对不适合捕获预测器交互。

浅层学习优于深层学习。当我们考虑从非常浅的神经网络(单个隐藏层)到更深的神经网络(多达5个隐藏层)时,我们发现神经网络的性能在3个隐藏层时达到峰值,然后随着更多层的添加而下降。同样,在我们的分析中,增强树和随机森林算法倾向于选择叶子少的树(平均少于6个叶子)。这可能是我们的回报预测问题中相对较小的数据量和微小的信噪比的人为因素,而在非金融环境中,深度学习得益于天文数据集和强信号(如计算机视觉)而蓬勃发展。

在预测投资组合收益时,非线性方法与基准之间的距离会扩大。我们从我们的模型产生的股票水平的预测中建立了自底向上的投资组合水平的收益预测。例如,考虑对标普500投资组合回报率自下而上的预测。通过综合基准三特征OLS模型的股票水平预测,我们发现标普500的月度预测 R^2 为-0.22%。相比之下,广义线性模型中自下而上的标普500预测的 R^2 为0.71%。树和神经网络在此基础上进一步改进,每月生成的样本外 R^2 在1.08%到1.80%之间。对于各种特征因素组合的预测也出现了同样的模式,例如根据规模、价值、投资、盈利能力和势头形成的组合。特别地,一个三层的神经网络对我们考虑的每个因素组合产生一个正的样本外预测 R^2

与股票水平相比,投资组合水平的更显著的预测能力是由一个事实驱动的,即个别股票的回报对于我们样本中一些最小和流动性最低的股票来说是不稳定的。聚合到投资组合中,可以平均掉大部分不可预测的股票水平噪声,并提高信号强度,这有助于检测机器学习的预测收益。

机器学习预测带来的经济收益是巨大的。我们的测试表明,OLS基准和其他线性模型的明显统计拒绝有利于非线性机器学习工具。以投资组合夏普比率形式出现的机器学习预测带来的经济收益,也同样令人印象深刻。例如,一个基于自下而上神经网络预测的投资者乘以标普500指数,其样本外夏普比率的年化增幅为26个百分点,达到0.77,而买入并持有的投资者的夏普比率为0.51。当我们根据神经网络的股票收益预测直接排序形成一个多/空十分位数差价时,该策略的年化样本外夏普比率为1.35(价值加权)和2.45(等加权)。相比之下,使用基准OLS模型预测的类似多空策略的夏普比率分别为0.61和0.83。

最成功的预测者是价格趋势、流动性和波动性。我们研究的所有方法都产生了一个非常相似的最具信息性的库存水平预测器的排名,它分为三个主要类别。首先,也是最能提供信息的,是价格趋势变量,包括股票动量、行业动量和短期反转。接下来是流动性变量,包括市值、美元交易量和买卖价差。最后,在我们考虑的所有模型中,回报波动率、特质波动率、市场beta和beta平方也是主要的预测因子。

模拟可以更好地理解我们的机器学习发现。在附录A中,我们执行蒙特卡罗模拟,以支持上述分析的解释。我们将机器学习应用于两个不同数据生成过程的模拟数据。两者都产生来自高维预测集的数据。但在一种情况下,单个预测因子只能线性和相加地进入,而在另一种情况下,预测因子可以通过非线性变换和成对的相互作用进入。当我们将我们的机器学习技能应用到模拟数据集时,我们发现线性和广义线性方法在线性和非交互设置中占主导地位,而基于树的方法和神经网络在非线性和交互设置中明显优于。

机器学习在改善风险溢价度量方面具有巨大潜力,而风险溢价度量从根本上说是一个预测问题。这相当于最接近条件期望 E(r_{i,t+1}|\mathcal{F}_t ) ,其中 r_{i,t+1} 为资产回报率超过无风险利率, \mathcal{F}_t 为市场参与者的真实和不可观察的信息集。这是机器学习算法擅长的领域。

但这些改进的预测只是测量。这些度量并没有告诉我们经济机制或均衡。机器学习方法本身并不能识别资产价格和条件变量之间的深层基本联系。当目标是了解经济机制时,机器学习可能仍然有用。它要求经济学家在估计问题中加入一个假设机制,并决定如何引入一个服从这个结构的机器学习算法。一种新兴的文献正在将机器学习与均衡资产定价结合起来(如Kelly, Pruitt, and Su 2019; Gu, Kelly, and Xiu 2019; Feng, Giglio, and Xiu forthcoming),这仍然是未来研究的一个令人兴奋的方向。

我们的工作扩展了关于股票收益预测的实证文献,它分为两个基本方向。第一股模型在不同股票之间的预期回报差异是股票水平特征的函数,Fama和French(2008)以及Lewellen(2015)对此进行了例证。本文的典型方法是对一些滞后的股票特征进行未来股票收益的横截面回归 [5] 。第二种预测收益的时间序列,由Welch和Goyal(2008)、Koijen和Nieuwerburgh(2011)、Rapach和Zhou(2013)研究。这篇文献通常在少数宏观经济预测变量上对广泛的总投资组合收益进行时间序列回归。

这些传统方法有潜在的严重局限性,机器学习中更先进的统计工具可以帮助克服这些局限性。最重要的是,回归和投资组合排序不适合处理文献在50多年来积累的大量预测变量。挑战是如何评估新提出的预测器的增量预测内容,同时联合控制现有信号的色域(或相关的处理多重比较和错误发现问题)。我们的主要贡献是证明当使用机器学习方法时,可以从现有的大量变量集合中利用有效的回报可预测性。

机器学习方法偶尔出现在资产定价文献中。Rapach, Strauss, and Zhou(2013)运用LASSO方法利用所有国家的滞后收益来预测全球股票市场的收益。几篇论文应用神经网络预测衍生品价格(Hutchinson, Lo, and Poggio 1994; Yao, Li, and Tan 2000等)。Khandani, Kim和Lo(2010)和Butaru等人(2016)使用回归树来预测消费者信用卡拖欠和违约。Sirignano, Sadhwani和Giesecke(2016)估计抵押贷款提前支付,拖欠和止赎的深度神经网络。Heaton、Polson和Witte(2016)开发了一种用于投资组合选择的神经网络。

最近,机器学习方法的变化已被用于研究股票收益的横截面。Harvey和Liu(2016)使用bootstrap程序研究了多重比较问题。Giglio和Xiu(2016)以及Kelly、Pruitt和Su(2019)使用降维方法估计和测试因素定价模型。Moritz和Zimmermann(2016)将基于树的模型应用于投资组合排序。Kozak、Nagel和Santosh(2020)以及Freyberger、Neuhierl和weber(2020)分别使用收缩和选择方法来近似预期收益的随机折现因子和非线性函数。本文的重点是同时探索广泛的机器学习方法来研究股票预期收益的行为,特别强调方法之间的比较分析。

1. 方法论

本节描述我们在分析中使用的机器学习方法。在每一小节中,我们介绍一种新的方法,并根据它的三个基本要素来描述它。

  • 首先是描述风险溢价预测方法的一般函数形式的统计模型。
  • 二是估计模型参数的目标函数。我们所有的估计都具有最小化均方预测误差(MSE)的基本目标。正则化是通过对MSE目标的变化来引入的,例如添加参数化惩罚和对异常值的稳健性。这些改进旨在避免过拟合问题,提高模型的样本外预测性能。
  • 最后,即使只有少量的预测器,当考虑非线性预测器转换时,模型排列的集合也会迅速扩展。这种增殖在我们已经是高维的预测器集中更加复杂。每一小节中的第三个元素描述用于有效地识别给定方法所包含的排列之间的最佳规格的计算算法。

在介绍每种方法时,我们的目标是提供对统计模型的足够深入的描述,以便没有机器学习背景的读者能够理解基本的模型结构,而不需要咨询外部资源。同时,在讨论估计每个模型的计算方法时,我们故意简明扼要。每种算法都有许多变体,而且每种算法都有自己的细微技术差别。为了避免让读者陷入编程细节的泥潭,我们在附录B中描述了我们的具体实现选择,并让读者参考原始资源以获得进一步的背景知识。附录C总结了关于每个估计值的统计属性的文献。

在其最一般的形式中,我们将资产的超额收益描述为加性预测误差模型:

\begin{align} r_{i,t+1}=E_t(r_{i,t+1})+ϵ_{i,t+1} \\ \tag{1} \end{align}

其中:

\begin{align} E_t (r_{i,t+1})=g^★(z_{i,t}) \\ \tag{2} \end{align}

股票为 i =1,…,N_ t ,月份 t=1,...,T 。为了便于展示,我们假设一个平衡的股票面板,并将关于缺失数据的讨论推迟到第2.1节。我们的目标是分离 E_t (r_{i,t+1}) 的一个表示,作为预测变量的函数,使实现的 r_{i,t+1} 的样本外解释力最大化。我们将这些预测向量表示为平面向量 z_{i,t} ,假设条件预期返回 g^★(·) 是这些预测器的一个灵活函数。

尽管该框架具有灵活性,但它也施加了一些重要的限制。 g^★(·) 函数既不依赖于 i 也不依赖于 t 。通过在不同的股票中保持相同的形式,该模型利用了来自整个面板的信息,并为任何单个资产的风险溢价估计提供了稳定性。这与标准资产定价方法形成对比,标准资产定价方法在每个时间段重新评估一个横截面模型,或者独立评估每只股票的时间序列模型。 g^★(·) 只通过 z_{i,t} 依赖于 z 。这意味着我们的预测不使用 t 之前的历史信息,也不使用除第 i 支股票以外的个股信息。

1.1 通过验证样本分割和调优

重要的初步步骤(在讨论特定模型和正则化方法之前)是理解我们如何设计用于估计和测试的不相交子样本,并引入“超参数调优(hyperparameter tuning)”的概念。

下面讨论的正则化过程,是机器学习对过拟合的主要防御,依赖于超参数的选择(同义词是“调优参数”)。这些对机器学习方法的性能至关重要,因为它们控制了模型的复杂性。超参数包括套索网和弹性网中的惩罚参数、boosting迭代树的数量、森林中随机树的数量和树的深度等。在大多数情况下,很少有关于如何“调优”超参数以优化样本外性能的理论指导 [6]

我们遵循文献中最常见的方法,从验证样本中的数据自适应地选择调优参数。特别地,我们将我们的样本分成三个不相交的时间段,以保持数据的时间顺序。第一个,训练子样本用于根据一组特定的调优参数值估计模型。

第二个,验证示例用于调优超参数。我们基于训练样本的估计模型构造验证样本中数据点的预测。接下来,我们根据验证样本的预测误差计算目标函数,并迭代搜索优化验证目标的超参数(在每一步,根据流行的超参数值,从训练数据重新估计模型)。调优参数是从验证样本中选择的,考虑了估计参数,但参数是单独从训练数据估计的。验证的思想是模拟模型的样本外测试。超参数调优相当于搜索一定程度的模型复杂性,从而趋向于产生可靠的样本外性能。验证样本匹配当然不是真正的样本外,因为它们用于调优,而调优又是估计的输入。因此,第三个子样本,或测试子样本,既不用于估计也不用于调优,是真正的样本外,因此被用于评估方法的预测性能。附录D提供了我们的样本分割方案的进一步细节,附录E总结了每个模型的超参数调优方案。

1.2 简单线性

在我们的分析中,我们以最简单的方法开始我们的模型描述,即通过OLS估计的简单线性预测回归模型。虽然我们预计它在高维问题中表现不佳,但我们使用它作为一个参考点来强调更复杂方法的独特特征。

简单的线性模型规定条件期望 g^★(·) 可以用原始预测变量和参数向量 θ 的线性函数近似:

\begin{align} g(z_{i,t} ;θ)=z_{i,t}' θ \\ \tag{3} \end{align}

这个模型强加了一个简单的回归规范,不允许非线性影响或预测之间的相互作用。

我们对简单线性模型的基线估计使用标准最小二乘,或 l_2 目标函数:

\begin{align} \mathcal{L}(\theta) = \frac{1}{NT} \sum_{i=1}^{N} \sum_{t=1}^{T} (r_{i,t+1} - g(z_{i,t}; \theta))^2 \\ \tag{4} \end{align}

最小化 \mathcal{L}(\theta) 得到了集合OLS估计量。基线 l_2 目标函数的便利之处在于它提供了分析性估计,从而避免了复杂的优化和计算。

1.2.1 延展:稳健代价函数

在某些情况下,用加权最小二乘目标代替式(4),如:

\begin{align} \mathcal{L}_W(\theta) = \frac{1}{NT} \sum_{i=1}^{N} \sum_{t=1}^{T} w_{i,t} (r_{i,t+1} - g(z_{i,t}; \theta))^2 \\ \tag{5} \end{align}

可以提高预测性能。这一加权最小二乘目标允许计量经济学家将估计值倾斜于更具有统计学或经济信息的观察结果。例如,我们考虑的一个变量集合 w_{i,t} 与时刻 t 的股票数量成反比。这就要求每个月对模型有相同的贡献,不管这个月有多少股票可用。这也相当于对 t 时刻所有股票损失的平方进行等量加权。我们考虑的另一个变量集合 w_{i,t} 与股票 i t 时刻的市场价值成正比。这个价值加权损失函数低估了小盘股,而青睐大盘股,其动机是出于这样一种经济理性:小盘股占交易市场的很大一部分,但只占总市值的很小一部分 [7]

厚尾是财务回报和股票水平预测变量的一个众所周知的属性。最小二乘目标(4)的凸性非常强调大误差,因此异常值会破坏基于OLS预测的稳定性。统计文献早就意识到这一问题,已发展出修正的最小二乘目标函数,在存在极端观测时,这些函数往往比OLS产生更稳定的预测 [8] 。在机器学习文献中,抵消重尾观测有害影响的一种常见选择是Huber稳健目标函数,定义为:

\begin{align} \mathcal{L}_H(\theta) = \frac{1}{NT} \sum_{i=1}^{N} \sum_{t=1}^{T} H (r_{i,t+1} - g(z_{i,t}; \theta),\xi) \\ \tag{6} \end{align}

其中:

\begin{align} H(x;\xi) = \left\{ \begin{array}{lcl} x^2, & {{\rm if \ } |x| \leq \xi}\\ 2\xi|x|-\xi^2, & {{\rm if \ } |x| > \xi}\\ \end{array} \right. \\ \tag{6.1} \end{align}

Huber损失 H(·) 是一个相对小误差的平方损失和相对大误差的绝对损失的混合,其中的组合由一个调谐参数 ξ 控制,该参数可以从数据中自适应优化 [9]

虽然这种迂回引入了稳健目标函数在简单线性模型的背景下,它们很容易适用于我们所研究的几乎所有方法。在我们的实证分析中,我们研究了多机器学习方法中鲁棒损失函数的预测效益。

1.3 惩罚线性

在许多预测因素面前,简单的线性模型注定要失败。当预测数 P 接近观测数 T 时,线性模型变得低效甚至不一致 [10] 。它开始对噪声进行过拟合,而不是提取信号。这对于信号噪声比非常低的返回预测问题来说尤其麻烦。

避免过拟合的关键是减少估计参数的数量。最常见的机器学习设备强加参数精简是附加惩罚的目标函数,以支持更精简的规格。这种估计问题的“正则化”会机械地恶化模型的样本内性能,以期提高其样本外的稳定性。当惩罚方法设法减少模型对噪声的拟合,同时保持其信号拟合时,就会出现这种情况。

我们的惩罚线性模型的统计模型与式(3)中的简单线性模型相同。也就是说,它继续只考虑基线,未转换过的预测。惩罚方法的不同之处在于在原始损失函数中附加惩罚:

\begin{align} \mathcal{L}(θ;·) = \mathcal{L}(θ)+\phi(θ;·) \\ \tag{7} \end{align}

惩罚函数 \phi(θ;·) 有几种选择。我们关注的是流行的“ 弹性网 (elastic net)”惩罚,它的形式为:

\begin{align} φ(θ;λ,ρ)=λ(1-ρ) \sum_{j=1}^P |\theta_j| + \frac{1}{2}λρ \sum_{j=1}^P \theta_j^2 \\ \tag{8} \end{align}

弹性网包含两个非负超参数 λ ρ ,并包括两个众所周知的正则化项(regularizer)作为特例。

  • ρ =0 的情况对应于LASSO,使用绝对值或 l_1 参数惩罚
    • LASSO的幸运几何使协变量子集的系数恰好为零
    • LASSO对规格施加了稀疏性(sparsity),因此可以认为是一种变量选择方法(selection method)
  • ρ =1 的情况对应于岭回归,它使用 l_2 参数惩罚
    • 使所有系数估计都接近于零,但不强制任何地方为零。
    • 在这个意义上,岭是一个收缩方法(shrinkage method),有助于防止系数变得过大的幅度

对于中间值 ρ ,弹性网鼓励通过收缩和选择的简单模型。

利用验证样本,对调谐参数 λ ρ 进行了自适应优化。我们的惩罚回归的实现使用加速近似梯度算法,并容纳最小二乘和Huber目标函数(详见附录B.1)。

1.4 降维:PCR和PLS

惩罚线性模型使用收缩和变量选择来管理高维,方法是迫使大多数回归变量的系数接近或完全为零。当预测者高度相关时,这可能会产生次优预测。这个问题的一个简单例子是,所有的预测都等于预测目标加上独立同分布噪声项。在这种情况下,通过LASSO惩罚选择一个子集的预测不如采取一个简单的平均预测,并使用这个作为单变量回归的唯一预测器。

与预测器选择相反,预测器平均的思想是降维的本质。形成预测器的线性组合有助于减少噪声,更好地隔离预测器中的信号,并有助于解相关其他高度依赖的预测器。两种经典的降维方法是主成分回归(PCR)和偏最小二乘(PLS)。

PCR由两个步骤组成:

  1. 主成分分析(PCA)将回归因子组合成一个小的线性组合集,以最好地保持预测因子之间的协方差结构。
  2. 在标准的预测回归中使用了一些主要成分。PCR通过将低方差分量上的系数归零来正则化预测问题。

PCR的一个缺点是,它没有在降维步骤中纳入最终的统计目标:预测收益。主成分分析基于预测因子之间的协变将数据压缩成成分。这发生在预测步骤之前,没有考虑预测者如何与未来的回报相关联。

而偏最小二乘则直接利用预测因子与预测目标的协变进行降维 [11] 。PLS回归过程如下。对每个预测因子 j ,用OLS估计其单变量收益预测系数。这个系数表示为 \varphi_j ,它反映了对每个预测器 j 的返回的偏敏感性。接下来,将所有预测因子平均到一个聚合分量中,其权分别与 \varphi_j 成正比,将最高的权放在最强的单变量预测因子上,将最小的权放在最弱的单变量预测因子上。这样,PLS在进行降维时就考虑到了最终的预测目标。为了形成多个预测分量,目标和所有预测因子相对于先前构造的分量进行正交化,并在正交化后的数据集上重复上述过程。迭代直到所需的PLS组件的数量达到。

PCR和PLS的实现从方程(1)-(3)中的线性模型的矢量化版本开始。重新组织线性回归 r_{i,t+1} =z'_{i,t} θ +\epsilon_{i,t+1} 为:

\begin{align} R=Zθ +E \\ \tag{9} \end{align}
  • R r_{i,t+1} NT ×1 向量
  • Z 是堆叠预测子 z_{i,t} NT ×P 矩阵
  • E 是残差 \epsilon_{i,t+1} NT ×1 向量

PCR和PLS采用相同的通用方法来降低维数。它们都将P维的预测集合压缩为K个预测集合的线性组合。因此,两种方法的预测模型为:

\begin{align} R=(ZΩ_K)θ_K +\tilde{E} \\ \tag{10} \end{align}

Ω_K P ×K 矩阵,列为 w_1,w_2,\cdots,w_K 。每个 w_j 是用于创建第 j 个预测分量的线性组合权重集,因此 ZΩ_K 是原始预测集的降维版本。同样,预测系数 θ_K 现在是 K×1 矢量,而不是 P ×1

PCR递归地选择组合权重 Ω_K 。第 j 个线性组合的解为 [12]

\begin{align} w_j & = \mathop{\arg\max}\limits_{w} Var(Z_w) \\ {\rm s.t.} \ \ w'w = 1, \ \ &Cov(Z_w,Z_{w_l})=0,\ \ l=1,2,...,j-1 \\ \tag{11} \end{align}

直觉上,PCR寻找 Z K 个线性组合,最忠实地模仿完整的预测器集。该目标表明,组件的选择根本不是基于预测目标。相反,PCR的重点是在预测集中找到保留最可能的常见变异的成分。众所周知,方程(11)的解决方案通过 Z 的奇异值分解计算 Ω_K ,因此,从计算的角度来看,PCR算法是非常高效的。

与PCR相比,PLS目标寻找与预测目标有最大预测关联的 Z K 个线性组合。权重用来构造第 j 个PLS分量求解:

\begin{align} w_j & = \mathop{\arg\max}\limits_{w} {\rm Cov}^2(R, Z_w) \\ {\rm s.t.} \ \ w'w = 1, \ \ &Cov(Z_w,Z_{w_l})=0,\ \ l=1,2,...,j-1 \\ \tag{12} \end{align}

这一目标突出了PCR和PLS之间的主要区别。PLS愿意牺牲 ZΩ_K 近似 Z 的准确性,以找到具有更有效的回报可预测性的组件。方程(12)中的问题可以使用许多类似的例程有效地解决,其中最突出的是de Jong(1993)的SIMPLS算法。

最后,给出了 Ω_K 的一个解,通过 ZΩ_K R 的OLS回归,在PCR和PLS中估计了 θ_K 。对于两种模型, K 都是一个超参数,可以从验证样本自适应确定。

1.5 广义线性回归

线性模型在实践中很流行,部分原因是它们可以被认为是数据生成过程的一阶近似 [13] 。当真模型是复杂的非线性模型时,将函数形式限制为线性会引入由于模型不规范而产生的逼近误差。

  • g^★(z_{i,t}) 表示真实模型, g(z_{i,t};θ) 表示计量经济学家指定的函数形式。
  • g(z_{i,t};\hat{θ}) \hat{r}_{i,t+1} 表示拟合模型及其收益预测。

可以将模型的预测误差分解为:

\begin{align} r_{i,t+1}-\hat{r}_{i,t+1} = \underbrace{ g^★(z_{i,t}) - g(z_{i,t};θ) } _{{\rm{approximation \ error}}} + \underbrace{ g(z_{i,t};θ) -g(z_{i,t};\hat{θ}) } _{{\rm{estimation \ error}}} + \underbrace{ \epsilon_{i,t+1}} _{{\rm{intrinsic \ error}}} \\ \tag{12.1} \end{align}
  • 固有误差 (Intrinsic error)
    • 不可减少
    • 它是回报中真正不可预测的部分,与消息的到来和金融市场的其他随机来源相关
  • 估计误差 (Estimation error)
    • 由于抽样变异而产生,由数据决定
    • 通过增加新的观察结果,它可能是可以降低的,尽管这可能不在计量经济学家的控制之下
  • 近似误差 (Approximation error)
    • 由计量经济学家直接控制,通过引入更灵活的规范来提高模型近似真实模型的能力,可以潜在地减少误差
    • 但是额外的灵活性增加了过拟合和样本外模型不稳定的风险

在本节和接下来的小节中,我们引入了具有越来越多灵活性的 g(·) 非参数模型,每个模型都由正则化方法进行补充,以减少过拟合。

我们考虑的第一个也是最直接的非参数方法是广义线性模型。它在线性模型中引入了原始预测器的非线性变换作为新的附加项。因此广义线性模型是1.2节和1.3节中线性方法最接近的非线性对应。

我们所研究的模型采用简单的线性形式,通过加入 K 样条 (spline)级数展开的预测量:

\begin{align} g(z;θ,p(·))= \sum_{j=1}^P p(z_j)'θ_j \\ \tag{13} \end{align}

其中, p(·)=(p_1(·),p_2(·),...,p_K(·))' 是一个基函数的向量,参数是一个 K×N 矩阵 θ =(θ_1,θ_2,...,θ_N) 。样条函数有许多潜在的选择。我们采用二阶样条序列 (1,z,(z−c_1)^2,(z−c_2)^2,...,(z−c_{K−2})^2) ,结(knot)为 c_1, c_2, …c_{K-2}

因为高阶项是具有可加性的,所以可以使用1.2节中提到的相同的估计工具来进行广义线性模型的预测。特别地,我们的分析使用了一个最小二乘目标函数,有和没有Huber稳健性修正。由于级数扩展会迅速增加模型参数的数量,用惩罚来控制自由度。我们选择的惩罚函数是专门用于样条扩展设置,被称为 分组LASSO 。它的形式是:

\begin{align} \phi(θ;λ,K)=λ \sum_{j=1}^P \left( \sum_{k=1}^K \theta_{j,k}^2 \right)^{1/2} \\ \tag{14} \end{align}

顾名思义,分组LASSO选择与给定特征相关的所有 K 样条项,或者不选择。我们将这种惩罚嵌入方程(7)的一般目标中。分组LASSO适用于最小二乘或稳健Huber目标,它使用与弹性网相同的加速近端梯度下降。它有两个调谐参数 λ K [14]

1.6 增强回归树 BRT 和随机森林

方程(13)中的模型捕捉了个体预测者对预期收益的非线性影响,但没有考虑预测者之间的相互作用。增加交互的一种方法是扩展广义模型,使其包含多元预测函数。当用 K 个基函数扩展单变量预测器时,参数的数量乘以 K 个因子,多向交互会组合地增加参数化。如果没有相互作用的先验假设,广义线性模型在计算上就变得不可行 [15]

作为另一种选择,回归树已经成为一种流行的机器学习方法,用于合并多方向预测器交互。与线性模型不同,树是完全非参数的,并且具有与传统回归明显不同的逻辑。在基本层面上,树被设计用来发现行为类似的观察组。树是按顺序生长的。在每个步骤中,一个新的分支根据一个预测变量将前一步遗留的数据排序到一个容器中。这种顺序分支将预测器空间分割为矩形分区,并将每个分区内的结果变量的平均值近似于未知函数 g^★(·)

图1:回归树的例子

[图1:下图展示了回归树的图(左)及其在两个特征(size和b/m)空间中的等价表示(右)。树的终端节点用蓝色、黄色和红色表示。根据这两个特征的值,个股样本被分为三类。]

图片来源:Gu et al.(2020)

图1显示了一个带有两个预测器的示例,size和b/m。左面板描述了树如何根据预测值将每个观测值分配给一个分区。

  • 首先,观察结果按size排序。那些超过0.5的断点被分配到第3类。
  • 那些小的则按b/m进一步排序
    • size小且b/m小于0.3的观测值被归为第1类
    • 而b/m大于0.3的则归为第2类
  • 最后,将各分区观测值的预测定义为该分区各观测值之间结果变量值的简单平均值。

正式地,具有 K 个叶(终端节点)和深度 L 的树 \mathcal{T} 的预测可以写成:

\begin{align} g(z_{i,t};θ,K,L)= \sum_{k=1}^K \theta_k \bm{1}_{\{z_{i,t}\in C_k(L)\}} \\ \tag{15} \end{align}

其中 C_k(L) 是数据的 K 个分区之一。每一个分区都是预测因子的至多 L 个指标函数的乘积。与分区 k 有关的常数 θ_k 定义为分划内结果的样本平均值 [16] 。图1中的示例具有以下预测方程:

\begin{align} g(z_{i,t};θ,3,2) &= θ_1 \bm{1}_{\{{\rm size}_{i,t}<0.5\}} \bm{1}_{\{{\rm b/m}_{i,t}<0.3\}}\\ &+ θ_2 \bm{1}_{\{{\rm size}_{i,t}<0.5\}} \bm{1}_{\{{\rm b/m}_{i,t}\geq 0.3\}}\\ &+ θ_3 \bm{1}_{\{{\rm size}_{i,t}\geq0.5\}} \\ \tag{15.1} \end{align}

种一棵树就是要找到最能区分潜在结果的箱子(bin)。选择分支所基于的特定预测变量和分支分离的特定值是为了最小化预测误差。然而,树形结构的扩展阻碍了精确的优化。文献已经开发了一套复杂的优化启发式算法,以快速收敛于近似最优树。我们遵循Breiman et al.(1984)的算法,并在附录B.2中提供了详细的描述。其基本思想是在每个分支开始时对预测误差进行短视优化。在每一个新的层次上,我们从预测器集合和分割值中选择一个排序变量,以最大化每个箱子中平均结果之间的差异 [17] 。与一个分支 C 的预测误差相关的损失通常被称为“杂质(impurity)”,它描述了分裂两边相似的观察行为。我们为树的每个分支选择最常见的 l_2 杂质:

\begin{align} H(θ,C)= \frac{1}{|C|} \sum_{z_{i,t} \in C} (r_{i,t+1} - \theta)^2 \\ \tag{16} \end{align}

其中 |C| 表示集合 C 中的观测数。已知 C θ 的最优选择为:

\begin{align} θ= \frac{1}{|C|} \sum_{z_{i,t} \in C} r_{i,t+1} \\ \tag{16.1} \end{align}

这个过程等价于找到局部最小杂质的支路 C 。当叶子的数量或树的深度达到预先指定的阈值时,分支停止,该阈值可以使用验证样本自适应地选择。

树形模型的优点是,它对预测因子的单调转换是不变的,它自然地容纳了同一模型中的分类数据和数值数据,它可以近似潜在的严重非线性,深度为 L 的树可以捕捉 L - 1 方式的相互作用。它们的灵活性也是它们的局限性。树是最容易过拟合的预测方法之一,因此必须高度正则化。在我们的分析中,我们考虑了两个“集合”树正则化器,它们将来自许多不同树的预测合并成一个预测 [18]

第一个正则化方法是“boosting”,它递归地结合了许多过于简化的树的预测 [19] 。浅树本身是弱学习者,其预测能力微乎其微。促进理论表明,许多弱学习者,作为一个整体,可能由一个强学习者组成,比一个复杂的树更稳定。

我们的增强过程的细节,通常称为 梯度增强回归树 (GBRT),在附录B.2的算法4中进行了描述。它首先拟合一棵浅树(例如,深度 L=1 )。这个过度简化的树肯定是训练样本中具有较大偏差的弱预测器。接下来,使用第二棵简单树(具有相同的浅深度 L )拟合来自第一棵树的预测残差。这两棵树的预测结果相加形成结果的集合预测,但第二棵树的预测分量被压缩了一个因子 v\in (0,1) ,以防止模型对残差进行过拟合。在每一个新的步骤 b ,一个浅树拟合从模型的残差与 b-1 树,并将其残差预测加到总收缩权。这个过程会不断迭代,直到集合中总共有 B 棵树。因此,最终的输出是一个带有三个调优参数 (L,v,B) 的浅树叠加模型,我们在验证步骤中自适应地选择了这些参数。

和boosting一样,随机森林是一种综合方法,它结合了许多不同树木的预测。它是一种更普遍的程序的变体,被称为bootstrap aggregation,或“bagging”(Breiman 2001)。基线树bagging程序绘制数据的不同bootstrap样本,为每个样本拟合单独的回归树,然后对其预测进行平均。个体自助样本的树往往是深的和过拟合的,使他们的个体预测无效的变量。对多个预测进行平均可以减少这种变化,从而稳定树的预测性能。

随机森林使用了bagging设计的变异,以减少不同bootstrap样本中树木之间的相关性。例如,如果企业规模是数据中占主导地位的回报预测器,那么大多数bagging树将在规模上有低级的分裂,从而导致它们的最终预测之间存在实质性的相关性。森林方法使用一种称为“dropout”的方法来对树进行去相关(decorrelate),这种方法只考虑随机绘制的预测子集,以便在每个潜在分支上进行分割。这样做可以确保,在这个例子中,至少一些树的早期分支将在特征上而不是公司大小上分裂。这降低了预测之间的平均相关性,以进一步改善相对于标准bagging的方差减少。树的深度 L ,每次分裂的预测数和bootstrap样本数 B 是通过验证优化的调优参数。附录的算法3描述了我们的随机森林实现的精确细节。

1.7 神经网络

最后我们分析的非线性方法是人工神经网络。可以说是机器学习中最强大的建模设备,神经网络作为任何平滑预测关联的通用近似器具有理论基础(Hornik, Stinchcombe和White 1989;Cybenko 1989)。它们是目前处理复杂机器学习问题的首选方法,如计算机视觉、自然语言处理和自动游戏(如国际象棋和围棋)。它们的灵活性来自于缠绕非线性预测器交互的许多可伸缩层的能力,获得了“深度学习”的同义词。与此同时,神经网络的复杂性使其成为最不透明、最不易解释、参数化程度最高的机器学习工具之一。

我们的分析集中在传统的“前馈”网络。它们包括原始预测的“输入层”,相互作用并非线性转换预测的一个或多个“隐藏层”,以及将隐藏层聚合成最终结果预测的“输出层”。类似于生物大脑中的轴突,网络层代表一组“神经元”,每一层由“突触”连接,在不同层的神经元之间传递信号。图2显示了两个示例。

图2:神经网络

[图2:这个图提供了两个简单的神经网络的图表,右图有隐藏层。粉色圆圈表示输入层,深红色圆圈表示输出层。每个箭头都与一个权重参数相关联。在具有隐层的网络中,非线性激活函数 f 在将输入传递给输出之前对其进行转换。]

图片来源:Gu et al.(2020)

输入层中的单元数等于预测器的维度,在本例中我们将其设置为4,表示为 z_1,…,z_4 。左边的面板显示了没有隐藏层的最简单的网络。每个预测信号根据一个5维参数向量 θ 进行放大或衰减,该向量包括一个截距和一个权重参数。输出层将加权信号聚集到预测中, θ_0+ \sum\nolimits^4_{k=1}z_kθ_k 。最简单的神经网络是线性回归模型。

通过在输入和输出之间添加隐藏层,该模型合并了更灵活的预测关联。图2的右面板显示了一个包含五个神经元的隐藏层的例子。每个神经元从所有的输入单元线性获取信息,就像左边的简单网络一样。然后,每个神经元在将其输出发送到下一层之前,对其聚合的信号应用一个非线性“激活函数” f 。例如,隐藏层中的第二个神经元将输入转换为输出:

\begin{align} x^{(1)}_2 =f\left( θ^{(0)}_{2,0}+ \sum^4_{j=1}z_jθ^{(0)}_{2,j} \right) \\ \tag{16.2} \end{align}

最后,从每个神经元的结果线性聚集到最终输出预测:

\begin{align} g(z;θ)=θ^{(1)}_0 + \sum^5_{j=1}x_j^{(1)}\theta_j^{(1)} \\ \tag{16.3} \end{align}

因此,在这个例子中,总共有31=(4+1)×5+6个参数(5个参数达到每个神经元,6个权值将神经元聚集成单个输出)。

在构建神经网络时,人们要做出许多选择,包括隐藏层的数量、每层神经元的数量以及哪些单元是连接的。尽管前面提到的“普遍近似”结果表明单个隐藏层是足够的,但最近的文献表明,更深的网络通常可以用更少的参数达到相同的精度 [20]

另一方面,在小数据集中,只有几个层和节点的简单网络通常性能最好。训练一个非常深的神经网络是具有挑战性的,因为它通常涉及大量的参数,因为目标函数是高度非凸的,因为导数的递归计算(称为“反向传播”)容易出现爆炸性或消失的梯度。

通过交叉验证选择一个成功的网络架构通常是一项困难的任务。通过搜索无数个结构来寻找最优网络是不现实的,也是不必要的。相反,我们预先修复各种网络架构,并对每个架构进行评估。我们希望实现的是机器学习方法性能的合理下限。

我们考虑的架构有多达5个隐藏层。

  • NN1有1个隐藏层,有32个神经元,是最浅层的神经网络
  • NN2有2个隐藏层,有32、16个神经元
  • NN3有3个隐藏层,有32、16、8个神经元
  • NN4有4个隐藏层,有32、16、8、4个神经元
  • NN5有5个隐藏层,有32、16、8、4、2个神经元

根据几何金字塔规则,选择每一层神经元的数量(见Masters 1993)。所有的架构都是完全连接的,因此每个单元都能收到来自下一层所有单元的输入。通过比较NN1和NN5的性能,我们可以推断出网络深度在收益预测问题中的权衡 [21]

非线性激活函数有很多可能的选择,如sigmoid、hyperbolic、softmax。我们在所有节点使用相同的激活函数,并选择了最近文献中流行的函数形式称为 修正线性单元 (ReLU, rectified linear unit),定义为 [22]

\begin{align} ReLU(x) = \left\{ \begin{array}{rcl} 0 & {{\rm if \ } x <0}\\ x & {{\rm otherwise}} \end{array} \right. \\ \tag{16.4} \end{align}

这鼓励了活跃神经元数量的稀疏性,并允许更快的导数评估。

我们的神经网络模型有以下一般公式:设 K^{(l)} 表示每层神经元数量 l =1,…,L 。定义神经元 k l 层的输出为 x^{(l)}_k 。接下来,定义这个层的输出向量(扩充为包含一个常数 x^{(l)} _0 )为 x^{(l)} =(1,x^{(l)}_1,...,x ^{(l)}_{ K^{(l)}})' 。要初始化网络,可以类似地使用原始预测器定义输入层 x^{(0)} =(1,z_1,...,z_N)' ,则 l>0 层各神经元处神经网络的递归输出公式为:

\begin{align} x^{(l)}_k =ReLU \left( x^{(l-1)'}θ^{(l-1)}_k \right) \\ \tag{17} \end{align}

最终输出为:

\begin{align} g(z;θ)= x^{(l-1)'}θ^{(l-1)} \\ \tag{18} \end{align}

每个隐含层中权重参数的个数 l K^{(l)} (1+K^{(l-1)} ) ,加上了输出层的 1+K^{(l-1)} 权值。

我们通过最小化预测误差的 l_2 目标函数来估计神经网络的权值参数。与需要“贪婪”优化的基于树的算法不同,训练神经网络,原则上,允许在每个优化步骤中联合更新所有模型参数。这是神经网络相对于树的一个重大优势。然而,神经网络的高度非线性和非凸性,以及它们丰富的参数化,使得蛮力优化具有很高的计算强度(往往达到不可行的程度)。一种常见的解决方案是使用 随机梯度下降 (SGD, stochastic gradient descent)来训练神经网络。与在每次优化迭代中使用整个训练样本来评估梯度的标准下降法不同,SGD从数据的一个小随机子集来评估梯度。这种近似牺牲了精度,从而极大地加速了优化例程。

由于上述原因(严重非线性和重参数化),神经网络的正则化比上述方法需要更多的注意。除了权值参数的 l_1 惩罚,我们同时在我们的估计中使用了其他四种正则化技术:学习速率收缩、早期停止、批量归一化和集成。

SGD中一个关键的调优参数是学习率,它控制下降的步长。当梯度趋于零时,需要将学习率收缩到零,否则梯度计算中的噪声开始主导其方向信号。我们采用Kingma和Ba(2014)的 学习率收缩 (learning rate shrinkage)算法自适应控制学习率 [23] 。详见附录B.3的算法5。

其次, 早期停止 (early stopping)是一种通用的机器学习正则化工具。它从一个初始参数猜测开始,这个猜测强加了非常简约的参数化,即所有 θ 值都接近于零。在优化算法的每一步中,参数猜测都是逐步更新的,以减少训练样本中的预测误差。在每次新的猜测时,对验证样本也进行预测,当验证样本误差开始增加时,优化结束。这通常发生在训练样本中的预测错误最小化之前,因此被称为早期停止(参见附录B.3的算法6)。通过提前结束参数搜索,参数向初始猜测方向缩小。它是 l_2 惩罚 θ 参数的一种流行替代品,因为它以更低的计算成本实现了正则化 [24] 。早期停止可以单独使用,也可以与 l_1 正则化一起使用,就像我们在本文中所做的那样。

批处理归一化 (Batch normalization)(Ioffe和Szegedy, 2015)是一种简单的技术,用于控制网络不同区域和不同数据集的预测变量。它的动机是内部协变量移位现象,在这种现象中,隐藏层的输入遵循不同的分布,而不是它们在验证样本中的对应。这一问题是在拟合深度神经网络时经常遇到的,它涉及许多参数和相当复杂的结构。对于每个训练步骤(批)中的每个隐藏单元,算法对批输入进行横截面降格和方差标准化,以恢复单元的表示能力。

最后,我们采用了一种 集成 (ensemble)方法来训练我们的神经网络(参见Hansen和Salamon 1990;Dietterich 2000)。特别地,我们使用多个随机种子来初始化神经网络估计,并通过平均来自所有网络的预测来构建预测。这减少了预测方差,因为优化的随机性会导致不同的种子产生不同的预测 [25]

1.8 性能评估

为了评估个股超额收益预测的预测性能,我们计算样本外 R^2 为:

\begin{align} R^2_{\rm oos} =1 - \frac{ \sum_{(i,t)\in \mathcal{T}_3}(r_{i,t+1} - \hat{r}_{i,t+1})^2 }{ \sum_{(i,t)\in \mathcal{T}_3} {r}_{i,t+1}^2} \\ \tag{19} \end{align}

其中 \mathcal{T}_3 表示拟合只对测试子样本进行评估,其数据从未进入模型估计或调优。 R^2_{\rm oos} 将跨公司和随时间的预测错误汇集到每个模型的大面板级别评估中。我们的 R^2 度量的一个微妙但重要的方面是,分母是没有去均值化的超额收益的平方和。在许多样本外预测应用中,预测与历史平均回报进行比较。虽然这种方法对综合指数或多空投资组合是明智的,但在分析个股回报时就有缺陷。用历史平均水平来预测未来的超额股票回报,通常会大大低于对零的天真预测。也就是说,历史平均股票回报率太过嘈杂,它人为地降低了良好预测表现的门槛。我们通过将我们的 R^2 与预测值为零进行基准测试来避免这个陷阱。为了说明这一选择的重要性,当我们将模型预测与历史平均股票回报进行基准比较时,所有方法的样本外月度 R^2 上升了大约3个百分点。

为了对方法进行两两比较,我们使用Diebold和Mariano(1995)检验两个模型的样本外预测精度的差异 [26] 。虽然回报的时间序列依赖性足够弱,但由于横截面的潜在强依赖性,作为Diebold-Mariano检验基础的弱误差依赖性条件不太可能适用于我们的股票水平分析。通过比较每个模型的预测误差的横截面平均,而不是比较个人收益之间的误差,我们将Diebold-Mariano应用于我们的设置。更准确地说,为了检验方法(1)与方法(2)的预测性能,我们定义了检验统计量 DM_{12} = \bar{d}_{12}/\hat{σ}_{\bar{d}_{12 }} ,其中:

\begin{align} d_{12,t+1} = \frac{1}{n_{3,t+1}} \sum_{i=1}^{n_{3,t+1}} \left( \left(\hat{e}_{i,t+1}^{(1)}\right)^2- \left(\hat{e}_{i,t+1}^{(2)}\right)^2 \right) \\ \tag{20} \end{align}
  • \hat{e}_{i,t+1}^{(1)} \hat{e}_{i,t+1}^{(2)} 表示每种方法在 t 时刻股票收益 i 的预测误差
  • n_{3,t+1} 为检验样本中的股票数量(t +1年)
  • \bar{d}_{12} \hat{σ}_{\bar{d}_{12 }} 表示测试样本上 d_{12,t} 的平均值和Newey-West标准误

修正后的Diebold-Mariano检验统计量,现在基于误差差异较小的单个时间序列 d_{12,t+1} ,更有可能满足渐近正态性所需的轻度正则性条件,反过来为我们的模型比较检验提供了适当的 p 值。

1.9 变量的重要性和边际关系

我们在解释机器学习模型方面的目标是适度的。我们的目标是识别对预期收益横截面有重要影响的协变量,同时控制系统中的许多其他预测因素。我们根据变量重要性的概念对它们进行排序,从而发现有影响的协变量,我们将第 j 个输入变量表示为 VI_j 。我们考虑两种不同的重要性概念。首先是将所有预测器 j 的值设为零,同时保持其余模型估计为固定值,从而降低面板预测 R^2 (Kelly、Pruitt和Su 2019在降维的情况下使用)。第二种是Dimopoulos、Bourret和Lek(1995)在神经网络文献中提出的模型对每个输入变量 j 的偏导数平方和(SSD),总结了模型对该变量变化的敏感性。具体来说,SSD将第 j 个变量的重要性定义为 [27]

\begin{align} SSD_j = \sum_{i,t \in \mathcal{T}_1} \left( \frac{\partial g(z;\theta)}{\partial z_j} \Bigg|_{z=z_{i,t}} \right)^2 \\ \tag{20.1} \end{align}

作为我们分析的一部分,我们还追踪了预期收益和每个特征之间的边际关系。尽管有明显的局限性,但这样的图是一个有效的工具来可视化机器学习模型中协变量的一阶影响。

Latex附录(1)

公式1

\begin{align} 
r_{i,t+1}=E_t(r_{i,t+1})+ϵ_{i,t+1}
\\ \tag{1} 
\end{align}

公式2

\begin{align} 
E_t (r_{i,t+1})=g^★(z_{i,t})
\\ \tag{2} 
\end{align}

公式3

\begin{align} 
g(z_{i,t} ;θ)=z_{i,t}' θ
\\ \tag{3} 
\end{align}

公式4

\begin{align} 
\mathcal{L}(\theta) = \frac{1}{NT} \sum_{i=1}^{N}  \sum_{t=1}^{T} 
(r_{i,t+1} - g(z_{i,t}; \theta))^2
\\ \tag{4} 
\end{align}

公式5

\begin{align} 
\mathcal{L}_W(\theta) = \frac{1}{NT} \sum_{i=1}^{N}  \sum_{t=1}^{T} w_{i,t}
(r_{i,t+1} - g(z_{i,t}; \theta))^2
\\ \tag{5} 
\end{align}

公式6

\begin{align} 
\mathcal{L}_H(\theta) = \frac{1}{NT} \sum_{i=1}^{N}  \sum_{t=1}^{T} H
(r_{i,t+1} - g(z_{i,t}; \theta),\xi)
\\ \tag{6} 
\end{align}

公式6.1

\begin{align} 
H(x;\xi) = 
 \left\{
\begin{array}{lcl}
x^2, & {{\rm if \ } |x| \leq \xi}\\
2\xi|x|-\xi^2, & {{\rm if \ }  |x| > \xi}\\
\end{array} \right.
\\ \tag{6.1} 
\end{align}

公式7

\begin{align} 
\mathcal{L}(θ;·) = \mathcal{L}(θ)+\phi(θ;·)
\\ \tag{7} 
\end{align}

公式8

\begin{align} 
φ(θ;λ,ρ)=λ(1-ρ) \sum_{j=1}^P |\theta_j| + \frac{1}{2}λρ \sum_{j=1}^P \theta_j^2
\\ \tag{8} 
\end{align}

公式9

\begin{align} 
R=Zθ +E
\\ \tag{9} 
\end{align}

公式10

\begin{align} 
R=(ZΩ_K)θ_K +\tilde{E}
\\ \tag{10} 
\end{align}

公式11

\begin{align} 
w_j & =  \mathop{\arg\max}\limits_{w} Var(Z_w)  \\
{\rm s.t.}  \ \  w'w = 1, \ \ &Cov(Z_w,Z_{w_l})=0,\ \  l=1,2,...,j-1
\\ \tag{11} 
\end{align}

公式12

\begin{align} 
w_j & =  \mathop{\arg\max}\limits_{w} {\rm Cov}^2(R, Z_w)  \\
{\rm s.t.}  \ \  w'w = 1, \ \ &Cov(Z_w,Z_{w_l})=0,\ \  l=1,2,...,j-1
\\ \tag{12} 
\end{align}

公式12.1

\begin{align} 
r_{i,t+1}-\hat{r}_{i,t+1} = 
\underbrace{
g^★(z_{i,t}) - g(z_{i,t};θ) }
_{{\rm{approximation \ error}}}
\underbrace{
g(z_{i,t};θ) -g(z_{i,t};\hat{θ}) }
_{{\rm{estimation \ error}}}
\underbrace{
\epsilon_{i,t+1}}
_{{\rm{intrinsic \ error}}}
\\ \tag{12.1} 
\end{align}

公式13

\begin{align} 
g(z;θ,p(·))= \sum_{j=1}^P p(z_j)'θ_j
\\ \tag{13} 
\end{align}

公式14

\begin{align} 
\phi(θ;λ,K)=λ \sum_{j=1}^P 
\left( 
\sum_{k=1}^K \theta_{j,k}^2
\right)^{1/2}
\\ \tag{14} 
\end{align}

公式15

\begin{align} 
g(z_{i,t};θ,K,L)= \sum_{k=1}^K \theta_k \bm{1}_{\{z_{i,t}\in C_k(L)\}}
\\ \tag{15} 
\end{align}

公式15.1

\begin{align} 
g(z_{i,t};θ,3,2) 
&= θ_1 \bm{1}_{\{{\rm size}_{i,t}<0.5\}} \bm{1}_{\{{\rm b/m}_{i,t}<0.3\}}\\
&+ θ_2 \bm{1}_{\{{\rm size}_{i,t}<0.5\}} \bm{1}_{\{{\rm b/m}_{i,t}\geq 0.3\}}\\
&+ θ_3 \bm{1}_{\{{\rm size}_{i,t}\geq0.5\}}
\\ \tag{15.1} 
\end{align}

公式16

\begin{align} 
H(θ,C)= \frac{1}{|C|} \sum_{z_{i,t} \in C} (r_{i,t+1} - \theta)^2
\\ \tag{16} 
\end{align}

公式16.1

\begin{align} 
θ= \frac{1}{|C|} \sum_{z_{i,t} \in C} r_{i,t+1}
\\ \tag{16.1} 
\end{align}

公式16.2

\begin{align} 
x^{(1)}_2 =f\left(
θ^{(0)}_{2,0}+
\sum^4_{j=1}z_jθ^{(0)}_{2,j}
\right)
\\ \tag{16.2} 
\end{align}

公式16.3

\begin{align} 
g(z;θ)=θ^{(1)}_0 + 
\sum^5_{j=1}x_j^{(1)}\theta_j^{(1)}
\\ \tag{16.3} 
\end{align}

公式16.4

\begin{align} 
ReLU(x)
= \left\{
\begin{array}{rcl}
0 & {{\rm if \ } x <0}\\
x & {{\rm otherwise}}
\end{array} \right.
\\ \tag{16.4} 
\end{align}

公式17

\begin{align} 
x^{(l)}_k =ReLU \left(
x^{(l-1)'}θ^{(l-1)}_k
\right)
\\ \tag{17} 
\end{align}

公式18

\begin{align} 
g(z;θ)=
x^{(l-1)'}θ^{(l-1)}
\\ \tag{18} 
\end{align}

公式19

\begin{align} 
R^2_{\rm oos} =1 - 
\frac{
\sum_{(i,t)\in \mathcal{T}_3}(r_{i,t+1} - \hat{r}_{i,t+1})^2
\sum_{(i,t)\in \mathcal{T}_3} {r}_{i,t+1}^2}
\\ \tag{19} 
\end{align}

公式20

\begin{align} 
d_{12,t+1} = \frac{1}{n_{3,t+1}}
\sum_{i=1}^{n_{3,t+1}} \left(
\left(\hat{e}_{i,t+1}^{(1)}\right)^2-
\left(\hat{e}_{i,t+1}^{(2)}\right)^2
\right)
\\ \tag{20} 
\end{align}

公式20.1

\begin{align}