时间序列预测的贝叶斯方法

2025年3月3日 | 阅读18分钟

随着当前技术进步导致数据的大规模生产,可靠的预测变得更加必要。因此,基于时间序列预测等分析的决策,即基于历史记录对未来价值进行预测,在金融、经济、医疗保健和制造业等多个领域都具有重要意义。然而,传统的基于分解的时间序列预测模型未能适当地捕捉和建模真实世界数据所固有的复杂性。

将贝叶斯方法应用于时间序列预测通过将贝叶斯统计原理纳入研究而带来了革命。它将先验信息与新证据相结合来衡量风险,从而产生更清晰、更易于解释的预测。计算资源的可用性和增长在推广贝叶斯方法的使用方面发挥了巨大作用,因为该技术可应用于广泛的预测场景。

虽然有现代复杂的 H 方法,但像 SARIMA 和 Holt-Winters 系列的指数平滑等简单方法仍然非常有用。由于其基本和可操作的性质,这些传统方法有时可能比更复杂的模型表现出更优越的性能。同时,像 LSTM 神经网络和 Meta 的 Prophet 等新一代创新则使用更高级的功能,但也需要更多的计算能力。

贝叶斯预测通过用预测分布形式的概率预测取代点预测而区别于其他方法。与仅对未来值进行预测的回归模型不同,贝叶斯模型开发了一组可能的未来值以及与它们相关的风险水平。它们应优先于单一值使用,因为它们能更好地描绘可能的未来前景。

即使在使用贝叶斯方法的框架内,用户如果需要,也总可以选择进行点估计。在大多数情况趋于平均的情况下,预测的均值将是合适的应用,或者如果希望得到更“重尾”或“稳健”的预测,则预测的中位数将是合适的。正因为如此,用户可以根据他们想要的精确度以及他们对风险的承受能力进行调整。

频繁主义方法与贝叶斯方法的比较

  • 频繁主义方法:这些方法利用数据的长期统计特性,不纳入先验信息。它用于从数据中获取点估计而不估计不确定性。
  • 贝叶斯方法:这些方法在收到新数据后,会整合先前时间步的信息,并输出新的更新预测。它们提供了一系列可能的结果,从而更好地理解不确定性。

贝叶斯预测中的关键概念

  • 预测分布:反映了潜在未来值的分布,意味着它们提供了预测的变异性和不确定性。
  • 点预测提取:根据特定需求提供预测,抑制均值和中位数之间的控制。

传统预测与贝叶斯预测的比较

ARIMA 分析和指数平滑方法基于时间序列预测的固定点模型。这些模型仍被认为是从数据生成过程中估计一组固定参数,假设后者保持不变。例如,在 ARIMA 模型的情况下,预测是根据给定值的历史变化和预测误差分析计算的,这假设数据中的关系保持不变。像指数平滑技术一样,通过使用等权移动平均值来预测时间序列的未来值,其中过去观测值的权重是固定的。

然而,在大多数现实生活中,生成数据的过程不仅是随机的,而且更加复杂。它可能是非参数的,形式和行为会发生变化,并受到外部影响,这些都无法通过确定性方法建模。例如,金融市场和宏观经济变量的运动具有顽固且难以预测的不规则性,不适用于现有预测方法。

贝叶斯预测是另一种不同于时间序列预测的方法,它基于概率视图。相对于频繁主义方法,贝叶斯方法对模型参数存在不确定性,并将这些参数视为随机变量,其分布称为参数的先验分布。这些先验代表了在收到数据之前对参数的先验期望或先验信念。当收集到新数据时,这些先验与贝叶斯定理一起用于生成后验。这些被称为后验分布,包含新信息和对模型参数的更新判断。

结构时间序列模型

STM 是推测性贝叶斯时间序列模型,旨在将时间序列分解为可理解的结构部分。这些模型被认为是用于时间序列数据分析和预测的灵活状态空间模型,因为每个分量都由随机过程建模。关键分量通常包括:这些元素可以是

  • 趋势:跟踪它以保持对任何趋势的跟踪或跟随数据中的“斜率”或变化谱,这可能说明长期的上升或下降。分解的斜率部分用于捕捉系列在某种程度上不如短期运动详细的整体运动。
  • 季节性:这是您应该将所有具有周期性(即以给定频率(例如每天、每月或每年)定期执行)的策略放置的组件。这种模式变化的类型相对较慢且周期性,与一年中的某些季节相关,例如每年或每两年一次的销售促销以及夏季光照的使用。
  • 周期性:前者与许多不同的时期相关联,而后者涵盖了中期商业周期的模型,这些模型不是永久性的,并且不会以相等的间隔发生。这些周期是在商业或经济层面发生的,并且以不同于季节但比一般商业周期更长的周期重复出现。
  • 不规则性:该组件以不平滑和不稳定的方式波动,无法通过趋势、季节性或周期预测。它量化了数据中剩余的噪声或随机变异或误差。

在 STM 中,这些组件中的每一个实际上都被认为是具有自己的一组参数的随机过程。这些参数使用一种称为贝叶斯推断的技术进行估计,该技术使科学家能够带入他们过去的知识和经验以及对派生估计中不确定性水平的评估。STM 中纳入的贝叶斯框架提高了模型的预测能力,并使用户能够获得预测精度的度量;因此,它们在时间序列分析的各个领域都有应用。

贝叶斯统计

贝叶斯定理是概率论和统计学中的主要原理之一。它描述了根据新信息更新对事件发生概率的信念的方法。它提供了一种以概率形式衡量信念程度的方法,这种概率被称为后验概率,符号为 P(A|B)。这是在事件 B 发生的情况下事件 A 发生的可能性。

该公式可以表示为以下公式形式

A Bayesian Approach to Time Series Forecasting

在这种情况下

  • P(A) 称为 A 的先验概率——表示我们在实际观察之前对 A 发生几率的初始感觉的量。
  • P(B|A) 是一个有用的定义,说明了如果 A 为真,如何获得观察 B 的概率度量。
  • P(B) 基本上是 B 的概率度量,或者它也被称为证据。它还充当归一化因子,以缩放值,使后验概率之和为一。

贝叶斯定理使我们能够计算新的评估或估计,鉴于新信息或证据(数据 B)的可用性,改进了第一个估计(先验 P(A);或者简单地说:贝叶斯定理是:P(A|B) = (P(B|A) * P(A)) / P(B)。因此,通过使用贝叶斯定理,乐观的先验概率 P(A) 被转换为更接近和更真实的后验概率 P(A|B)。这种更新的信念在统计学、机器学习和决策制定等包含某种风险的学科中有效运作。

直观解释:简而言之,贝叶斯思维绝对代表了根据你现在所知,估算你现在想要达到的概率或合理性程度的过程。第一次估计是借助先验和当前观点进行的——它可能是先验经验和假设。

贝叶斯统计相关术语

  • 先验分布:先验分布提出了待估计参数或变量的先验概率分布,无论是来自先验信息还是先验经验。该分布包含先验信息、领域特定信息或过去数据。先验可以是信息性的,这表明高度自信,这是由于先验经验,或者是非信息性的,这表明对先验知识几乎没有信心。通常,先验分布以数值尺度表示对估计参数的假定初始信念,并能够定量地指定构成后续计算初始视角的先验视图。
  • 似然:似然函数表示了在给定参数值的情况下观察到此类数据的可能性有多高的工作模型。它变得很重要,可以将观测数据和模型参数关联起来。与概率分布相比,似然被视为参数的函数,但涉及固定数据。它构成了可以对参数信念进行调整的基础,并指示了给定参数集在解释观测数据方面的有效性。
  • 后验分布:后验分布可以解释为在将数据考虑进先验分布后对参数的信念分布。它是使用贝叶斯定理推导出来的,该定理将先验分布与对参数的先验信念以及观测数据的似然联系起来。后验分布通过将先验信息与新的经验结果相结合,提供了对参数更具体的视角,从而改进了贝叶斯框架中的预测和推断。后验显示了在考虑了关于参数的所有已知和相信信息之后,关于参数的更新真相。

贝叶斯预测的应用

时间序列预测中通常采用两种方法论,即贝叶斯方法,它根据问题的性质和数据特点,为模型拟合和分布整形提供了非常通用和高度灵活的方法。贝叶斯预测不同于其他只提供单一预测点的方法,它通过为未来值包含概率分布形式的不确定性。这种方法基于贝叶斯理论,其中先验知识与新知识混合,以做出更好的近似。

使用贝叶斯预测的一些好处包括:通过先验分布轻松融入先验知识,在新数据到来时灵活更新预测,以及能够为结果分配概率。这些特点使得贝叶斯方法在不确定性是一个重要因素且涉及实际应用的情况下特别有用,例如金融市场预测、需求分析或环境建模。

因此,像点估计、方差和可信区间这样的指标是使用未来概率分布计算的,该分布通过贝叶斯方法的三步获得,即先验规范(定义参数的先验信念)、似然和模型(识别统计模型的似然函数),以及MCMC或变分推断等算法用于估计后验分布。随后的预测不是单一的点,而是一组可能的未来值以及置信区间,这有助于在大量风险条件下采取更合适的解决方案。

DGLM:捕捉时间序列预测中的动态依赖关系

在 PyBATS 中,随着数据模式的变化,时间序列的预测基于 DGLM(一种概率模型)生成的预测。DGLM 具有一些显著的优势,使其在动态环境中特别有效:DGLM 具有一些可以在动态模型中有效应用的特性,如下所示:

  1. 自适应系数:如上所述,DGLM 可以对随时间变化的系数(更具体地说是参数 θₜ)进行建模,这使得它能够与其它标准不同地估计变化的系数。此功能有助于将 DGLM 定位在创建新的趋势、季节性分量和数据中的急剧变化。这些系数也随时间变化,而时间序列随着模型进展中包含的新数据而不断变化;这使得它们与其它类型的预测相比,成为一种非常敏感且更易于管理的预测类型。
  2. 分布灵活性:动态广义线性模型 (DGLM) 允许对观测数据使用多种概率分布,包括正态分布、泊松分布、伯努利分布和二项分布。这使得 DGLM 能够灵活地根据数据集的特定性质和统计特征进行调整,从而使其适用于不同领域的大多数预测形式。
  3. 线性框架:DGLM 的核心是一个可靠的线性预测方程,它以简单的线性公式涉及模型系数 θt 和潜在预测因子 Ft。仍然遵循线性结构以方便模型的评估和计算也是一个额外的优势。当进入预测器方程的因素得到很好的解释时,就更容易识别每个因素对预测的贡献,并且可以准确地做出进一步的决策和预测原因的知识。

模型剖析

动态广义线性模型(DGLM)的核心在于线性预测器(λt)的计算,它构成了模型预测的基础:动态广义线性模型(DGLM)的核心在于线性预测器(λt)的计算,它构成了模型预测的基础

  • λt:被用作所选模型参数的组合,它概述了模型试图获得的一般信号。这是因为它显示了纳入预测的因素的影响。
  • θt:当谈到状态向量时,可以命名构成预测的几个分量。这些因素通常包括趋势、回归系数、季节性以及其他因素,例如预期会影响结果的假期/其他事件。状态向量本质上也是动态的,并随时间段变化,以捕捉预测因子和目标变量之间的动态行为。
  • Ft:回归向量,与状态向量每个元素的权重或系数相关联。这些权重表示每个组件在生成相关变量预测中的重要性。

折扣因子:平衡信息

因此,DGLM 家族成员具有对模型至关重要的折扣因子,用于调节最近观测值比旧值获得多少权重。状态向量 (θt) 中的每个组件都由一个特定的折扣因子控制:状态向量 (θt) 中的每个组件都由一个特定的折扣因子控制

  • 最新信息:与小折扣因子相关的部分使模型偏向当前数据,这意味着模型学习新趋势或变化非常快。
  • 历史稳定性:具有大 d 值的项目必须更多地依赖过去的值,因此没有波动,因为它对短期运动不敏感。

技术见解

DGLM 因其在广义线性模型中对参数的适应能力而被描述,因此它们是时间序列预测的良好候选者,因为它们可以捕捉各种行为。它们在如何将不同的分析组件集成到预测模型中同时处理不同的概率分布方面非常稳健;因此,这些方法在许多预测设置中具有适用性。

以下是 DGLM 的突出之处

  • 灵活的结构:在 DGLM 中,很容易在预测中包含多个元素,包括趋势、季节性、外部变量等。这使得模型能够提供考虑中的时间序列的完整和最新的图片。此外,模型还通过采用正态、泊松或二项式类型来适应所使用的数据类型。
  • 定制分布:DGLM 与许多 SMs 一样,设计成可以根据您的数据特征进行拟合,这使得 DGLM 比 Gils 预测更稳定可靠。很高兴看到一个模型可以用于不同类型的问题,例如回归、UDF 或分类问题,其中输出可以是连续值、计数或二元是/否类型答案。
  • 利用折扣因子平衡信息:DGLM 的另一个决定性特征是预测方法使用所谓的折扣因子来调和对近期数据的依赖和趋势分析。“因此,这五个因素使模型能够在对新事件的反应性以及从过去接收到的数据的连续性之间取得平衡。” 这使得预测具有动态性,可以随时根据条件进行更改。

实施贝叶斯模型

代码

输出

A Bayesian Approach to Time Series Forecasting

说明

代码首先导入必要的库:用于计算的 numpy,用于数据操作的 pandas,以及通常用于数据分析的 matplotlib.pyplot 用于绘图,statsmodels.pybats 模块用于贝叶斯时间序列分析和预测以及数据集和统计模型的 API。然后它从 statsmodels 库加载 AirPassengers 数据集,该数据集捕获了每月航空旅客流量。数据集中的“time”列使用年份格式转换为日期时间,如下所示。为清晰起见,列也更改为“Month”和“Passengers”。然后将“Month”列选为索引,这将使 DataFrame 中的数据按日期组织。

变量 Y 被分配为从数据框中提取的乘客计数。有用于预测的识别参数,包括预测期的起点和终点以及每个预测的提前步数 (k)。它利用贝叶斯方法进行时间序列分布预测,该预测基于泊松分布。最后但同样重要的是,它估计预测样本的中点,并准备绘制实际值和预测值。

后验样本和点估计

PyBATS 中的分析函数返回两个输出:拟合的 mod、一组样本和后验分布的样本。这些是根据贝叶斯评估的视角展示不同风险水平的后验示例。为了说明这一点,估计函数 median(samples),如上式所示,用于获取样本。这个特定函数提供每个预测区间获得的后验样本的中点,以提供平均预测的近似值。

技术亮点

PyBATS 不提供许多创建不同模型的选项,但它可以用一些模型必须规定的参数集构建。为了合并此代码片段,里程将采取以下步骤:为泊松动态广义线性模型 (DGLM) 创建几个重要因素。此模型中设置的关键参数包括:此处还定义了以下与系统相关的参数

  • 先验长度:影响模型先验分布规范中包含的样本量的方式,该模型是给定统计模型固有的。
  • 折扣因子:模型根据以前数据进行估计的方法中,趋势和设计组件缺失。
  • 随机效应扩展 (rho):提出了依赖性概念和未在公式化模型中考虑的随机性来源。
  • 预样本期:图中第一条平坦带是指所谓的“预热”期,在此期间模型根据 prior_length 的点固定其先验分布。在此阶段,不涉及预测创建,但会提交有关稍后将做出的决策的资源。
  • 模型评估:分析函数用于衡量开发中模型的局部特性和参数修改。但是,如果一个人想要获得正确的预测,则使用专门为此目的设计的函数,例如 forecast_marginal 和 forecast_path。

根据阿姆斯特朗和科尔皇帝的说法,尽管为清晰起见最恰当地称之为预测,但输出实际上是样本内预测而非样本外预测。该数据集的结构是显而易见的,忽略了不一致的波动,这有助于改进预测。

在时间序列中,短期预测总是比长期预测更准确;例如,一步预测通常比多步预测更准确。然而,预测的这种可靠性通常受到预测时间范围增加的规则的制约。这是因为随着时间的推移,性能偏离趋势的风险和变异性增加。这就是为什么作为可能提供有用信息的分析的长期预测在长期预测范围内不会产生很好的结果。

PyBATS 的未开发功能

PyBATS 提供了一系列超出本次演示所涵盖基础的高级功能。如本次演示所示,PyBATS 还有许多超越下面解释的基础功能。

  • 纳入节假日和特殊事件:PyBATS 的独特之处在于,可以将节假日和事件作为外生变量纳入模型。模型排除或包含影响数据(例如节假日或重要事件)日期的能力,通过在给定情境下提供最佳预测,使该模型独一无二。
  • 结合多个动态广义线性模型 (DGLM):该框架还支持模拟一个以上的 DGLM,尽管这种方法的可行性和有效性仍有待确定。它还表明,通过应用各种模型,用户可以捕捉数据中关系的不同方面,从而获得更有效的预测。
  • 利用潜在因素:PyBATS 还提供了可扩展性,允许将潜在因素用于预测目的。例如,航空机票平均成本等指标可能包含旅客人数的更深层含义。这使得可以更真实地感知数据中正在发生的事情,以期增强预测。

技术重点

它在整个过程中使用精确的技术术语并保持正式的语气

关键概念清晰定义,包括换句话说,在当前工作中对所考虑的主要概念进行了定义

  • 预热期:这是模型的参数被调整的第一个步骤时期,以便建立一个能够提供准确和全面预测的模型。
  • 样本内预测:它或多或少指的是在用于开发模型的数据领域内的预测类型,而不是预测样本。
  • 预测范围:这与预测的时间范围有关。在这个特定概念中,频率是用于进行预测的时间范围。本文中观察预测与实际销售模型之间差异的原因是:如果我们比较和分析本文中考虑的模型,得出的基本观察结果是,给定预测的时间范围越长,其中包含的不确定性水平就越高。

优势

  • 可信区间:PyBATS 能够生成经过良好校准的预测分布,这有助于提供预测带来的不确定性程度。它超越了预测的点估计,无疑提供了预测变异的可信区间。
  • 模型探索:在 PyBATS 中,有一个分析函数,用户可以通过它分析模型的内部部件。这意味着必须查看趋势、季节性方面以及有时被称为回归效应的事物。因此,这种详细的探索有助于分析模型的行为并寻找改进的机会。

注意事项

  • 计算成本:如果一个人试图考虑超出额外一步的预测,计算时间可能会受到显著影响。这个因素带来了可扩展性问题,特别是当模型使用大型数据集时,因此可能会产生一些效率和性能问题。

结论

贝叶斯时间序列预测相对复杂,但它是一种非常丰富、高度可扩展、非常准确且易于解释的预测技术。基于设置先验概率并使用贝叶斯统计更新这些概率的框架,这种方法考虑了过去的知识和可变性,并处理了数据复杂性。这在需要一个通用框架来分析依赖于时间的时间数据时很有帮助,因为它有助于无论何时发生,都能进行时间数据分析。