Predicting Future Earnings Changes Using Machine Learning and Detailed Financial Data 论文阅读
Abstract
- 使用机器学习方法和高维详细财务数据来预测一年后的收益变化方向。
- 我们的模型显示出显著的样本外预测能力:受试者操作特征曲线(ROC)下的面积(AUC)在67.52%到68.66%之间,这明显高于随机猜测的50%。
- 根据我们模型预测形成的对冲组合的年度规模调整后收益在5.02%到9.74%之间。
- 我们的模型优于两种传统模型,这两种传统模型使用逻辑回归和少量的会计变量,并且也优于专业分析师的预测。
- 相对于传统模型的优越性既来自于回归所忽略的非线性预测变量相互作用,也来自于机器学习利用了更详细的财务数据。
最近的很多机器学习相关的文献,都将模型的优势归因于模型所具有的非线性预测能力。
Methodology
- 预测未来的收益水平和收益变化量(未来收益减去已知当前收益)是困难的
- 收益变化的可变性太大,无法与给定解释变量条件下预期收益变化的可变性进行比较。他们建议通过将收益变化量转化为收益变化的方向来减少这种可变性,而预测方向更加可行。
- 预测收益变化的符号在经济上有意义且可操作,因为大量的研究是基于收益变化方向构建投资组合
- 使用了两种基于决策树的被广泛接受的机器学习方法:随机森林和随机梯度提升树
- 为了获得机器可读格式的详细财务数据,我们使用了以可扩展商业报告语言(XBRL)提交的财务报告。
- 自2012年起,所有美国上市公司必须在其10-K报告的财务报表和脚注中的定量数据使用XBRL标签。商业数据聚合商对这些带有XBRL标签的详细财务数据覆盖非常有限,特别是在脚注披露方面。
Data
X样本处理
- 样本包括了从2012年到2018年的超过8,000份XBRL申报文件。这些申报文件包含了在我们整个样本期间内常见的标准标签下超过4,000种不同的财务项目。我们将所有项目按总资产进行标准化处理,并计算年度百分比变化,这样就得到了超过12,000个解释变量(即,4,000项乘以3,分别代表当前值、滞后值和百分比变化)
- 使用I/B/E/S报告的每股收益(EPS)来计算年度收益变化。在将XBRL文档与I/B/E/S的备考收益合并后,我们获得了10,073份提交文件。我们要求这些公司拥有来自CRSP的股价数据,从而得到8,381份提交文件。
- 要求XBRL文档中的总资产非零,导致样本量为8,358份提交文件。我们通过保留截至财年结束后三个月内的最新财务数据来利用XBRL提交的时间点性质,最终得到8,149份提交文件。
下表按日期与行业报告了XBRL文档的数量:
将预测变量分为六个类别:资产负债表、损益表、现金流量表、综合收益表、股东权益表和脚注披露。(4,627个标签中的4,503个进行分类。剩下的124个标签被映射到多个财务报表。我们手动将它们分配给最适合的报表)
下表报告了按类别划分的预测变量个数与前10个最常见的变量:
最后,按照总资产对当前和滞后的预测变量进行缩放(除了总资产本身和按股份计算的项目)
Y样本处理
遵循预测收益变化方向文献的方法(Freeman等人 [1982]; Ou和Penman [1989]),本文通过从当前EPS变化中减去过去四年EPS变化的平均值来调整公司特定的趋势。此过程帮助我们实现三个目标:
- 由于收益增长通常多于收益下降,去除漂移项缓解了类别不平衡问题(Freeman等人 [1982, 645]; Japkowicz和Stephen [2002])
- 由于一些收益变化是由于趋势预期导致的,预测去趋势后的收益变化方向对于投资决策更有用。
- 趋势调整使得我们的模型可以直接与文献进行比较(例如,Ou和Penman [1989])
不过,本文的结果在不进行去趋势处理的情况下也是稳健的
模型设置
- 调参方面就是在默认值周围调,没有很详尽地调参
- 与金融领域时间序列预测的其他文章一样,本文使用了一个滚动样本分割方案,其中训练集和验证集随时间逐渐向前移动,但每个样本中的年份数量保持不变。
- 测试期(2015年至2018年)中的每一年(例如2015年),模型在前两年(例如2012-2013年)中进行训练,并在前一年(例如2014年)中进行验证以调优参数
- 训练样本始终在前两年重新开始(就是模型不再复用过去的历史信息)
Results
我们使用两种度量标准来评估模型的样本外性能
- AUC(若随机抽取一个阳性样本和一个阴性样本,分类器正确判断阳性样本的值高于阴性样本的概率,AUC越高越好,0.5表示随机猜测,低于0.5表示模型预测能力是反向的但优于随机猜测)
- 对冲组合的超额回报
- 当预测增长概率大于0.5时,long;当预测减少概率大于0.5时,short
- 时间是财年末三个月开始(因为这时候才公布财报),每年调整,持有到下一个财报公布
- $SAR_i = \prod_{t=1}^{12}(1+R_{it}) - \prod_{t=1}^{12}(1+R_{st})$,其中$R_{it}$表示组合i第t个月的收益率,$R_{st}$表示市值加权组合在第t个月的收益率,$SAR_i$表示的超额回报率。
- AUC(受试者工作特征曲线下面积)在不同方法(随机森林或随机梯度提升)和样本(全部样本或pr ≥ 0.6和pr ≤ 0.4的样本)下的范围从67.52%到68.66%,显著高于随机猜测的50%。
- Carpenter和Bithell(2000)的方法,我们构建了一个用于检验我们AUC与50%差异的bootstrap p值。具体来说,我们使用与原始测试样本相同大小的bootstrap样本计算bootstrap AUC,并重复此过程10,000次。p值是10,000次bootstrap AUC中低于50%的比例。所有p值均小于0.01,表明我们的模型预测能力不太可能是随机的结果。
- 类似地,对于每个模型,我们采用有放回抽样的方式随机抽取与对冲组合中long和short相同数量的股票,计算这个伪对冲组合的12个月规模调整后回报,并重复此过程10,000次。对于随机森林和随机梯度提升模型的回报(分别为5.02%和6.57%),p值均小于0.01,表明这些回报不太可能是随机结果。
- 当排除边缘案例,并对pr > 0.6(pr ≤ 0.4)的股票采取long(short)时,规模调整后回报更为显著:随机森林模型为9.43%,随机梯度提升模型为9.74%。
与benchmark对比
- Ou和Penman [1989]。 我们使用前三年的数据来估计一个逻辑回归模型,然后将其应用于测试年份。他们的变量选择方法包括三个步骤:
- 对每个变量执行单变量逻辑回归,并保留仅在10%显著性水平上显著的变量。
- 使用所有剩余变量同时估计一个逻辑回归模型。所有系数在10%显著性水平上不显著的变量被删除。
- 对于剩余的变量,逐步删除在10%显著性水平上不显著的变量,直到所有解释变量都有统计显著的系数为止。
最终的逻辑回归模型称为OP/Logit。为了更好地理解我们的随机森林(XBRL/RF)和随机梯度提升(XBRL/SGB)模型与OP/Logit之间的差异,我们也应用机器学习方法到这65个变量上,并将这两个模型称为OP/RF和OP/SGB。
如上图Panel B所示,我们的模型在很大程度上显著优于OP/Logit。OP/RF(OP/SGB)模型的AUC分别为66.63%(66.87%),这显著高于OP/Logit,并且略低于XBRL/RF(XBRL/SGB)。
DuPont Analysis Nissim和Penman [2001]基于杜邦分析提出了八个驱动收益的因素。这八个驱动因素分别是销售利润率、资产周转率、其他项目与净经营资产之比、财务杠杆、净借款成本、净经营资产回报率、经营负债杠杆和少数股东权益
- 对于2015-2018年测试期中的每一年,我们使用前三年的数据来估计一个逻辑回归模型,利用这八个变量的水平和变化来预测一年后的收益变化方向(扣除趋势)。随后将估计的系数应用于测试年份。由此得到的预测结果展示了一个AUC为57.96%和年度规模调整后回报率为1.90%,这显著低于我们模型的结果。
- 由于逻辑回归模型不能容纳杜邦分析的乘积性质(例如,利润率和资产周转率),我们将机器学习方法应用于这八个驱动因素的水平和变化(DuPont/RF和DuPont/SGB)。DuPont/RF(DuPont/SGB)的AUC为61.51%(61.15%),规模调整后回报率为2.73%(2.12%),这显著高于DuPont/Logit的所有bootstrap p值<0.01,并且低于XBRL/RF(XBRL/SGB)的所有bootstrap p值<0.01。这些结果突显了在收益预测中使用机器学习和详细财务信息的有效性。
分析师的预测
- Panel B显示,分析师对收益增长的预测AUC为65.09%,显著低于我们的模型(bootstrap p值<0.01)。对于分析师预测收益增长(下降)>0.5(≤0.5)的股票构建的对冲组合产生了规模调整后回报率为3.38%,低于我们模型的回报率。这些结果突显了即使在专业预测者的存在下,机器学习技术和详细财务信息在收益预测中的有效性,专业预测者可能在处理详细财务数据方面的能力有限。
下图报告了机器学习模型和基准的ROC曲线(ROC曲线围成的面积就是AUC):
将Compustat作为详细财务信息的替代来源
Compustat提供了883个财务项目,我们取这些项目的当前值、滞后值和百分比变化,结果得到2,649个预测变量。下表报告了来自Compustat的详细财务信息的预测能力,类似于XBRL标记的数据,使用Compustat数据的模型继续优于三个基准模型。
预测收益水平及收益变化幅度
我们在主要分析中考察了收益变化的方向,因为预测未来收益的水平和变化幅度(未来收益减去已知的当前收益)是困难的,但是,(还是要作一下),我们使用两种机器学习方法来预测收益水平和收益变化幅度,我们观察到使用随机森林(随机梯度提升)预测一年后收益水平的样本外R²为5.3%(6%),低于简单随机游走模型的样本外R² 7.5%。我们还观察到预测一年后收益变化幅度的样本外R²为8%(5.8%)。
对于预测收益变化大于零(小于或等于零)的股票构建的对冲组合,规模调整后的回报率为0.10%(p值=0.47)对于随机森林,以及0.11%(p值=0.46)对于随机梯度提升。这些结果表明,专注于收益变化的方向有助于我们机器学习模型的成功。
变量重要性分析
我们通过计算当某个变量被随机打乱时预测性能的下降来估计每个变量的重要性。由于每个测试年份都会训练和验证一个模型,因此每个预测变量在每种方法(随机森林或随机梯度提升)下都有四个重要性值(对应于2015-2018年的每一个测试年份)。
- 我们计算了所有预测变量在连续两年间的重要性值的相关性(即N=13,881)。对于三对连续年份(2015 vs. 2016,2016 vs. 2017,2017 vs. 2018),随机森林的相关系数分别为0.98、0.98和0.98,而对于随机梯度提升,相关系数分别为0.82、0.75和0.85。
- 这些结果表明,预测一年后收益变化方向时,变量的重要性随着时间高度稳定。因此,我们对每个预测变量的四个重要性值进行平均。
下表为最重要的前十名变量,大多数变量与收益有关,例如“NetIncomeLoss”和“EarningsPerShareBasic”。
对变量进行聚类
我们的模型包含了许多可能具有多重共线性的财务项目。虽然这对建立预测模型并不是一个问题,但我们可能会低估多重共线性预测变量的个体重要性。(因为存在多重共线性,打乱某个变量可能不会影响结果)
为了解决这个问题,我们遵循Pedregosa等人的[2011]方法,具体步骤如下:
- 对预测变量的Spearman等级顺序相关性进行层次聚类;
- 设置0.8的阈值以获得8,993个簇;
- 从每个簇中随机选取一个预测变量保留在模型中。
我们观察到新的随机森林(随机梯度提升)模型的AUC为67.46%(67.06%),接近原模型的AUC。
更重要的是,我们在新模型中估计随机选择的预测变量的重要性,并将该重要性分配给同一簇中的所有其他预测变量,然后计算新模型与原模型之间所有预测变量(即N=13,881)的重要性值之间的相关性。两个重要性值之间的相关系数分别为0.93(0.80)对于随机森林(随机梯度提升)。这些结果表明,多重共线性不太可能对预测变量重要性排名产生显著影响。
按类别的重要性分析
上图显示了按类别汇总的变量重要性总和。总体而言,注释披露在预测一年后收益变化方向方面贡献最大,其次是资产负债表、损益表和现金流量表。综合收益表和股东权益表对预测能力的贡献最小。有几点可能原因
- 注释披露包含最多的标签(4,627个中的2,443个),这可以解释其整体上的重要性
- 在注释披露的前十大列表中有许多与税收相关的项目(例如,“DeferredTaxAssetsValuationAllowance”),这与税收项目携带未来应税收入的重要信息是一致的(例如,Miller和Skinner [1998]手动收集了200家公司的递延税资产的估值准备金,并发现它与未来的应税收入呈负相关。)
- 财务报表中的项目平均来说比注释中的项目起着更重要的作用,但后者的重要性仍然显著。
进一步研究,注释中的顶级预测因子与pr(收益变化方向)之间
- A面板显示了在随机森林模型下,递延税资产的估值准备金(注释中的顶级预测因子)与pr之间存在非线性的负相关关系
- B面板中观察到了交互效应:当估值准备金较低且滞后经营收入(随机森林下的顶级预测因子)较高时,pr变得更高
- C面板展示了在随机梯度提升模型下,与员工股票期权行使相关的税收优惠与pr之间的非线性负相关关系。
- D面板显示了交互效应:当税收优惠和滞后留存收益都较高时,pr变得更低。
结论
使用机器学习技术和大量详细财务信息的模型优于使用逻辑回归和少量会计变量的传统模型以及专业分析师的预测。分析表明,相对于传统模型的优越性既源于回归遗漏的非线性预测变量相互作用,也源于更多详细财务数据的使用。这些结果突显了在预测收益变化方向中使用机器学习和详细财务信息的有效性。