社区所有版块导航
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学习  »  机器学习算法

基于机器学习的公司基本面预测

灵度智能 • 3 月前 • 139 次点击  

1. 引言

公司基本面(CFs)是评估企业财务状况和整体成功与稳定性的关键指标,包括总收入、利润、资产等多项指标。CFs 在多个领域至关重要,例如投资和计量经济学。

CFs 在投资领域的应用:

  • 价值投资:  投资者寻找那些股价相对于其“内在价值”被低估的公司,而 CFs 是衡量内在价值的指标。
  • 因子投资:  根据预先设定的静态规则选择最佳资产,例如按企业价值与息税前利润(EV/EBIT)比例选择公司。

准确预测 CFs 对于提高投资决策的有效性至关重要。已有研究表明,如果能够提前获知 CFs,投资回报率将大幅提高。然而,机器学习模型在预测 CFs 方面的应用仍处于起步阶段。

本文研究动机:

  • 填补现有研究的空白,对 22 种确定性和概率性 CFs 预测模型进行全面的理论分析和实证评估。
  • 重点关注深度学习模型在不确定性估计方面的优势。
  • 将机器学习预测结果与人类分析师的预期进行比较,并探讨如何将领域专家知识融入模型以提高性能。

CFs 预测面临的挑战:

  • 数据多样性:不同地区和行业的公司表现出不同的动态。
  • 变量依赖性:不同变量反映不同的业务流程,彼此之间存在依赖关系。
  • 非平稳性:时间序列数据分布和变量依赖关系随时间变化。
  • 数据量有限:与许多深度学习数据集相比,CFs 数据集样本量较小,且时间跨度较短。
  • 协变量复杂:协变量包含大量信息且动态复杂,容易导致模型过拟合。

2. 相关工作

CFs 的应用:

  • 长期以来,CFs 被广泛应用于评估企业当前的成功和财务可持续性,并在因子投资中发挥着重要作用。
  • 然而,仅依靠基本面价值进行投资决策被认为过于简单和风险较高,需要结合新闻、社交媒体情绪等额外信号。

CFs 预测:

  • 已有研究尝试使用理想化的“水晶球”模型和 LSTM 模型进行 CFs 预测,并证明了基于 CFs 预测的 LFMs 可以提高投资组合回报率。
  • 然而,现有的机器学习模型在预测 CFs 方面的可靠性仍不足以对投资产生积极影响。

金融机器学习:

  • 现有综述大多集中在股票、外汇等资产的价格和走势预测方面。
  • 缺乏对 CFs 预测这一主题的实证比较研究。

3. 模型选择

本文选择了多种模型进行评估,涵盖了经典统计模型和现代深度学习模型,并考虑了模型的以下特性:

  • 局部模型 vs 全局模型:局部模型针对每个公司单独建模,全局模型则学习所有公司时间序列的共同表示。
  • 自回归模型:是否采用自回归方式预测未来值。
  • 预测变量数量:单变量模型 vs 多变量模型。
  • 协变量使用情况:是否使用协变量和静态变量。
  • 可逆实例归一化 (RevIN):是否应用 RevIN 来消除非平稳性和分布偏移。
  • 概率预测能力:是否能够提供概率预测。

局部模型:

  • 均值模型:预测训练集中每个变量的均值。
  • 自回归均值模型 (ARMean(p)):预测最近 p 个值的算术平均值。
  • 自回归移动平均模型 (ARMA(p,q)):结合自回归和移动平均成分进行预测。
  • 自回归综合移动平均模型 (ARIMA(p,d,q)):对数据进行 d 阶差分后进行 ARMA 建模。
  • VARIMA(p,d,q):ARIMA 的向量形式,用于建模多个变量之间的依赖关系。
  • AutoARIMA:自动选择 ARIMA 模型的最佳参数。
  • Theta 模型 (AutoTheta):对时间序列进行二阶导数建模,并自动优化参数。
  • Prophet:将时间序列分解为趋势、季节性、节假日和噪声成分进行建模。

全局模型:

  • 线性回归:对每个预测值进行多元线性回归。
  • 随机森林:由多个回归树组成的集成模型。
  • DLinear & NLinear:简单的线性回归模型,用于长期时间序列预测。
  • 循环神经网络 (RNN, LSTM & GRU):使用 LSTM 或 GRU 单元进行序列建模。
  • 块循环神经网络 (Block RNN将时间序列作为“块”输入网络。
  • 时空卷积网络 (TCN):将卷积和残差连接应用于时间序列。
  • Transformer:使用自注意力机制进行序列到序列建模。
  • 时空融合 Transformer (TFT):结合 LSTM 和 Transformer 的优势进行多步预测。
  • N-BEATS:将时间序列分解为一系列更容易的任务进行建模。
  • N-HITS:N-BEATS 的扩展,适用于长序列预测。
  • 时间序列密集编码器 (TiDE):使用编码器-解码器架构进行预测。

第四章:评估

本章详细评估了不同模型在公司基本面(CF)预测任务中的应用性,并通过实证研究在多个设置和不同时间尺度上进行了测试。此外,本章还探讨了将预测应用于自动化股票选择的潜在好处。

4.1 预测性能

数据质量对于准确的预测至关重要。因此,研究投入了大量工作来策划预测的目标和协变量,并清理数据,以提供一个一致的数据库。这使得模型能够捕捉不同公司之间公司基本面的共同时间动态。

4.1.1 选定指标

基于可靠性和可用性以及专家经验,选择了20个指标作为预测公司未来基本面最相关的。这些指标被用作上下文,以预测其中的五个目标变量:总收入(LTM)、营业利润(LTM)、净利润(LTM)、经营活动产生的现金流量(LTM)和总股本。

4.1.2 数据准备

主要季度公司基本面数据是通过整合S&P Global的几个商业数据源获得的。需要大量的手动预处理,以将来自资产负债表、损益表和现金流量表的信息整合到一个格式中。所有值都转换为欧元,以便于比较。公司被包括在内,如果它们在整个期间都是公开交易的,并且至少有一次在时间跨度内市值达到10亿欧元。更小的企业被排除在外,因为它们通常与大型企业表现出不同的动态。由于高度非典型行为,另外19家公司被移除。这留下了2009年第一季度至2023年第三季度期间的2527家公司。

适当的数据表示和归一化在机器学习应用中至关重要。在CFs的特定情况下,必须抵消指标之间的不同数量级,以确保数据的数值范围更加相似。因此,提出了针对特定领域的有效归一化。对于每个公司,所有来自损益表的变量都通过总收入进行归一化,所有来自资产负债表的变量都通过总资产进行归一化。总收入和总资产分别除以对方。这被证明比通用的Yeo-Johnson幂变换更有效。最后,数据被归一化,使得每个特征在所有时间步长和公司中的平均值为零,方差为单位。

4.1.3 结果

使用模拟历史预测评估了先前描述的模型,其中在样本内(IS)数据上训练并在未见过的样本外(OOS)时间步上进行评估。这表明模型能否泛化到未来未见数据——时间序列预测中的关键属性。为了获得最真实的基准场景,使用2009年第一季度作为固定起点,并从最初的四年(16个季度)不断扩展训练数据,到结束时的13.75年(55个季度)。评估了所有模型在所有公司和指标上的每个40个模拟历史预测块,每个块包括IS回溯数据、IS培训预测和OOS测试预测。

为了搜索超参数并验证深度学习模型的训练成功,通过从训练中排除10%的公司创建了验证分割(但不从测试中排除)。模型配置和超参数见附录A.3。由于数值不稳定性,无法可靠地拟合ARIMA(4, 1, 4)或VARIMA(4, 0, 4)模型,因此它们从以下分析中排除。

确定性预测:由于先前应用的数据归一化,不同特征的尺度现在比原始数据更具可比性。然而,值的分布高度偏斜,我们希望产生相对于预测数据特定尺度正确的预测。因此,主要使用对称平均绝对百分比误差(sMAPE)和训练标准均方误差(MSE)比较确定性预测:

其中y是目标值,(\hat{y})是预测值,ε是为数值稳定性添加的小常数。此外,还提供了平均绝对误差(MAE)、均方根误差(RMSE)、平均绝对百分比误差(MAPE)、均方根误差(RSE)和决定系数(R²)的结果。概率nCRPS(对于确定性模型简化为MAE)将在后面介绍。

模型比较如图1和表2所示。两种指标下,模型表现差异显著。总体而言,全局模型在MSE方面表现更好,而在sMAPE方面则更为多样。特别是,一元局部模型ARMA(4, 4)和Prophet未能提供一致的预测,其高MSE和相当大的方差暗示了一些重大的误预测。尽管在MSE方面,两种深度学习RNN模型(LSTM和GRU)给出了最佳结果,但简单的局部模型ARMean(1)在sMAPE方面最好,这令人惊讶。这突出了不仅准确而且可靠的预测的必要性。因此,现在将转向概率预测。

概率预测:为了评估预测器的可靠性,评估了它们正确量化不确定性的能力。并非所有模型都能估计不确定性,如表1所示。通过不同方式获得采样预测。例如,可以在ARMA、ARIMA和AutoARIMA模型的状态空间中引入噪声,或在Prophet模型的趋势组件中引入噪声,这类似于深度学习模型中的蒙特卡洛dropout。其余模型可以直接估计概率分布的参数。因此,为了公平比较,所有剩余模型执行分位数回归,回归某些分位数的边界。请注意,这些模型是单独训练的,即使在表2中与确定性设置的模型一起表示。我们从每个概率模型中抽取了100个样本,并使用连续排名概率分数(CRPS)评估了得到的实证分布与已知测试数据。直观地,首先定义一个辅助累积分布函数1{x≥y},该函数在标量值y处从零变为一。然后CRPS测量这个辅助函数和真实分布E(x)之间的积分平方差。它定义为:

其中E是实证预测分布(即样本),y是真实的目标值,1{x≥y}是一个指示器,如果条件满足则为1,否则为0。这个单变量指标然后平均在所有时间步和特征上。选择展示那个分数的否定,记作“nCRPS”,以使其与前面提到的指标一致,较低的值更好。

结果如图2和表2所示。可以清楚地看到,所有深度学习模型在估计不确定性方面比其他模型表现得更好,尽管它们在测试之前没有看到10%的公司。这表明它们通过学习许多公司的时间序列,从而能够很好地泛化并校准方差。再次,RNN变体LSTM和GRU是最好的,紧随其后的是TiDE。

4.2 实际市场评估

为了研究开发的高质量预测是否转化为改进的投资性能,将它们应用于在现实市场情况下回测的因子模型,类似于Alberg和Lipton(2018)的LFMs。为了简洁,本研究以GRU作为第4.1节中确定的最佳模型进行研究。

实验设计

基于CF预测构建了模拟投资组合,考虑了几种不同的策略。首先,考虑了两种不同的代理来识别好股票,即四季度后最高的营业利润或最高的总收入,每个都由公司当前的企业价值标准化。其次,每个季度或每年初重新平衡投资组合。除了第4.1.2节中的标准外,由于特殊的报告语义,排除了房地产和金融行业。为确保方法不仅仅利用当前的行业特定表现,确保分配复制MSCI世界参考指数的行业组成。同样,尽可能接近其地区分布。投资组合每组由50只股票组成,每只股票固定占资本的2%。在每次重新平衡步骤中,根据上述标准选择最佳公司,并买卖股票以反映重新评估。将方法与参考指数和另外两种投资策略进行比较:首先,复制基于相同选择标准的Clairvoyant投资组合,但使用通常无法知道的确切未来真实值(Alberg和Lipton,2018)。其次,将使用我们的预测的投资组合与基于可用的人类分析师对总收入的预期的投资组合进行比较。

发现

基于CF预测的投资组合及其基线的绩效如表3所示。首先,对于营业利润,每年重新平衡优于每季度,反之亦然,对于总收入,可能是由于财务报告的特殊年度周期,也在图6中可见。其次,可以确认假设的Clairvoyant模型是投资组合优化的有效工具,进一步激发了改进CF预测的追求。第三,人类分析师的预测对投资非常有效,可能通过自我实现的预言和反馈循环得到加强(Sant & Zaman, 1996; Mauboussin, 2002)。这证实了Guerard等人(2015)的实证发现。最后,基于自动化GRU预测的投资组合对投资有用,使用营业利润并在每年重新平衡时,最终投资组合价值比参考指数在大约十年后高出10个百分点。尽管波动性和Beta预期比参考指数高,但与其他策略持平。详细检查整个时间段揭示了该方法在描述的设置中一致地找到比参考指数更好的股票,除了从2020年第二季度开始的 pandemic effects 到2020年底。同样,增加的波动性在很大程度上源于2019年以后的时间,而在此之前的年份相对较低。这再次与图5中的发现相匹配,其中从2019年第二季度开始,pandemic uncertainty 泄露回预测。这强烈激发了超越迄今为止执行的概率预测,研究方法以在这样不稳定的时期保持合理的性能。

5. 可解释性、解释和领域专业知识

在构建模型时,利用领域专家的知识通常是值得的。因此,本文概述了哪些模型可以合理地利用这些信息。

局部模型:

  • ARMA(p,q)、ARIMA(p,d,q) 和 AutoARIMA 模型:
    • 可以利用领域知识,例如,假设长期均值可能不如短期均值信息量大,因此设置 p > q,从而有效地约束 vi = 0。
    • 如果模型自动确定了某些参数值,则可能有助于理解潜在的动力学机制。
    • 例如,一个主要关注过去四个季度数据的模型可能表明数据具有年度季节性。
    • 同样,如果已经确定某个成分是平稳的,则可以设置 d = 0。
  • Theta 模型:
    • 虽然不如上述模型直观,但可以利用其与指数平滑模型 (SES-d) 的关系。
  • Prophet 模型:
    • 专为人类参与建模而设计。
    • 时间序列被分解为趋势、季节性、节假日和残差成分,每个成分都可以单独建模,并可以纳入专家见解。
    • 例如,可以指定趋势类型,手动定义线性趋势变化的转折点,或为具有饱和增长的趋势提供容量。
    • 季节性成分允许多个周期,节假日日期可以根据区域习俗进行设置。

全局模型:

  • 线性回归:
    • 虽然可以约束特定权重,但这并不理想,因为该模型很少被用作基准。
  • 其他全局模型:
    • 专家参与的机会有限
    • 然而,像 SHAP 或 Integrated Gradients 这样的通用黑盒可解释性方法适用于所有深度学习模型。
  • 一些模型提供了特定的白盒方法来深入了解预测结果:
    • Transformer 系列模型(如 TFT):
      • 可以检查注意力图,了解模型“关注”的内容以及注意力图何时异常。
      • 还可以检查输入变量的重要性。
    • N-BEATS 和 N-HiTS 模型:
      • 允许在不同的堆栈中建模不同的任务特定基函数,并检查回溯结果。
      • 可以定义去趋势和去除季节性成分的模块,并检查和验证其行为。

  • 综上所述,所有这些方法都允许解释模型的决策并解释其输出。
  • 为了最终改进模型,可以使用人类参与的方法(如 XIL),帮助构建更好、更可靠的预测模型。

6. 结论

本文论证了从定性和定量角度对 CFs 预测模型进行深入比较的必要性。这不仅对金融领域具有重要意义,而且也是机器学习和计量经济学的一个案例研究。

主要研究内容:

  • 对 CFs 数据进行了深入分析,并提出了解决其特定挑战的解决方案。
  • 探索了 22 种经典统计模型和现代机器学习模型的适用性,并确定了它们的特性和功能。
  • 证明了识别最佳整体模型需要进行细致的分析:
    • 在确定性预测方面,超越简单基线具有挑战性。
    • 然而,可以通过 AutoARIMA 或任何深度学习模型获得更有用的概率预测。
    • 这些全局模型可以从许多公司的时序数据中学习,从而有效地估计更合适的分布。
    • 向数据中添加静态上下文几乎没有好处,这表明关键的预测模式已经潜伏在协变量和目标变量中。
    • 根据应用领域和感兴趣的变量,应选择截然不同的模型。例如,在 COVID-19 大流行之前、期间和之后,不同的模型组合表现最佳。
  • 自动预测的质量与人类分析师的预测相似。
  • 将最佳自动预测应用于因子模型,以评估其在投资中的实际应用价值:
    • 发现它们可以在十年内超越参考指数,并且在金融稳定性较高的情况下收益最大。
  • 探讨了解释模型行为和生成预测解释的可能性:
    • 这反过来又使领域专家能够提高和验证预测质量,并最终改进模型。


论文下载见星球,QuantML星球内有各类丰富的量化资源,包括数百篇论文代码,QuantML-Qlib框架,研报复现,研报分享项目等,星球群内有许多大佬,包括量化私募创始人,公募jjjl,券商研究员,顶会论文作者,github千星项目作者等,星球人数已经500+欢迎加入交流


我们的愿景是搭建最全面的量化知识库,无论你希望查找任何量化资料,都能够高效的查找到相关的论文代码以及复现结果,期待您的加入。





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