文章
Covid-19对许多未能适应潜在需求模式的巨大、突然变化的预测过程和系统提出了挑战。随着日常业务的消失,自我学习模式经常崩溃,因为以前测试过的模式和过去数据中的相关性不再能够预测下一个销售期会发生什么。
在一场使需求模式失去平衡的旷日持久的危机期间,一种更有效的方法着眼于整体预测,包括数据、模型中的算法和过程。
增加新的外部数据来源,比如在线搜索、智能手机移动数据和社交媒体帖子,也可以捕捉到对预测更有用的信号。
预测过程也是如此。企业可以通过创建场景,研究飓风等类似情况,并部署人类的判断,来更新和改进预测。这篇评论讨论了如何重新平衡专家判断和模型之间的依赖程度,利用动态方法得出的见解。它回答了这样一个问题:我们如何使预测模型适应新常态?
当预测模型失败时
我们首先考虑常见模型的弱点。一个典型的统计预测模型将使用过去的数据来估计未来的结果。它对如何形成数据模式施加了限制,包括外部因素的影响,并利用可能包含或与影响需求或销售趋势的未知因素信息相关的过去数据。
通常,企业使用这些模型来预测需求。这样的模型在突然变化的情况下很可能会失败,这种情况有两种:
- 需求的冲击这会导致基线水平突然上升或下降。冲击与模型中的输入无关,包括价格、营销组合或其他解释变量。它可能是永久性的、暂时的,也可能是不断演变的,比如在大流行早期突然囤积,然后疫情就会缓解。这是由模型的本地级组件捕获的。
- 需求动态的变化。这种变化可能是需求及其驱动因素之间关系的性质或程度。例如,消费者对价格或促销的预期行为可能会因新情况而突然改变。这将改变对某一特定数量产品的需求。这些更改由模型的外部因素组件捕获。
这两种类型的变化可能同时发生,而且是突然发生的,这可能会使模型更加复杂,以正确地归因所发生的影响,或准确地预测需求。
固定的模型
一旦我们理解了这两种情况,我们就可以重新审视现有的模型,以评估它们在应对新环境方面的局限性。然后我们可以用更合适的模式选择来替换它们,或者改进它们以更好地应对变化。
为了说明这一点,考虑三种流行的预测模型:自回归综合移动平均与解释变量(ARIMAX),静态贝叶斯结构时间序列(BSTS),其中包括流行的实现,如Facebook的先知,和动态BSTS(见图1)。但由于它们的结构不同,表现也不同。
三种流行的预测模型有不同的优点
一个区别在于“静态”和“动态”的概念。动态BSTS包括一个动态回归或时变参数组件,它代表了我们的动态模型概念。动态模型允许根据时间有效而灵活地重新估计参数,这有助于识别需求及其驱动因素随时间的变化。
相比之下,其他两个模型是静态的,因为它们对整个时间段内的每个参数进行单一估计,这可能会产生更稳定的结果。
一般来说,对于任何统计或机器学习模型来说,在结构的灵活性与稳定性和不确定性之间都存在权衡。有时,适应性更强的方法将适应未知或未检测到的更改,而有时,更稳定的方法将产生更一致和准确的输出。在实践中,大多数用于操作的预测模型都是静态模型。
对于静态算法,引入额外的外部数据可能有助于预测需求动态的冲击;例如,客流量数据可以反映出外出消费的下降。然而,静态算法不会预测需求动态的变化,比如折扣增加销售的有效性的下降。
为了使我们的模型适应变化,有几个选择,取决于情况、数据和手头的见解:
- 纳入更多的数据,这可能有助于缓解扭曲投入和产出关系的某些影响。
- 缩短模型的估计窗口,如果动态变化是随着时间的推移而平稳地趋势发展,而不是突然倾斜,那么这将有效。
- 结合由动态估计生成的特性和见解。如果我们在动态估计的输入-输出关系中检测到突然中断,我们可以通过在模型中创建二元交互或其他新的或修改的特征,将它们纳入我们的模型中。
- 切换到更适合的模型以适应动态变化,例如STAR之类的模式切换模型,或者dynamic BSTS本身。如果仔细使用,它们可以提高预测的准确性,并提供更深入的见解。
动态方法弥补了这一差距
为了说明Dynamic BSTS的一个潜在用例,请考虑大流行期间的失业索赔数据。我们基于某些在线关键字搜索建立了一个预测失业索赔的模型,并使用Dynamic BSTS探索了这些搜索如何随着时间的推移变得越来越相关。之后,我们利用所学知识,在静态模型中构建二元信号,预测关键词的效果何时可能发生变化,并重新评估这些模型,以了解它们的预测性能如何变化。
我们分析了动态BSTS模型对失业申请与其驱动因素变化关系的估计的一个样本输出(见图2)。图中的红线显示了静态模型的估计在什么水平上。阴影序列是动态估计在时间上放置效果的水平(带有不确定性区间)。黄线表示零或零效果。阴影序列表明,在时间序列的末尾,一些之前不相关的驱动因素现在出现了;特别是到2020年,关键词相关性效应会发生突变。如果我们使用一个静态模型,我们最终会错过这些最近的变化,因为过度依赖过去的信息阻止了模型的适应。
随着时间的推移,搜索关键词和失业索赔之间的关系会发生变化
例如,我们看到关键字H(“失业办公室”的搜索滞后一周)在估计期结束时变得更加相关,并捕捉到由于疫情而导致的搜索动态的突然变化,以及其他随时间而改变行为的搜索关键字。
我们可以依赖Dynamic BSTS的估计模型进行预测。然而,当公司倾向于更稳定的结果或已经有一个静态预测模型时,我们可以结合两种方法的优势:一种收集洞察力,另一种以稳定的方式建模。为此,我们在静态模型中标记任何可能发生的潜在更改,并让评估验证这些更改是否重要(参见图3)。
用动态建模见解更新模型的方法
在将BSTS见解纳入模型之前,负责的分析师可以通过专家判断或更多的因果研究来验证BSTS见解。动态BSTS或相关工具被证明有助于产生探索性的见解,并帮助支持先前的理论。模型的预测性能通常受益于这种方法。
我们比较了使用Dynamic BSTS(蓝线)之前的见解更新的静态模型ARIMAX和Prophet的预测与不使用这些见解的相同模型(灰线)(见图4)。使用这种方法可以看到模型的预测性能的差异。动态模型捕获图2中搜索词相关性的变化,并帮助静态模型在应用该方法后更好地反映该系列的新动态。其中Prophet算法的改进幅度最大,部分原因是该算法采用了灵活的趋势估计方法。
使用BSTS洞见更新静态模型后,预测精度提高
这段经历引出了两个关键点:
- 动态方法可以更好地从不断变化的环境中获取洞察,并在这些情况下产生更好的性能。
- 以前的建模方法和精度可以通过从动态方法获得的见解进行微调来提高。
在应对Covid-19等突然变化或系统功能的其他突然中断时,这一点尤为重要。
适合的目的
“所有的模型都是错误的,但有一些是有用的”是分析领域中一个熟悉的格言。为了保持我们的模型有用,我们必须选择最适合特定需要的模型,并不断监测预测的有效性。现有的预测模型可能需要重新审视,使用Dynamic BSTS这样的工具可以帮助公司了解潜在的变化,以便学习如何最好地重新评估现有模型。
请记住,建模只是预测系统中的一个组成部分。业务领导者应该全面地评估他们的预测过程,包括数据源、模型、平台、流程、反馈循环和有针对性的实验,重点关注将产生最大业务价值的组件的调整。