Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 

前言


之前的文章中,我们向您介绍了预测计划的“影响因素”功能,以利用影响因素来提高预测的准确性。在那篇文章的末尾我们提到,当使用一些不受控制的影响因素时,因为您不能确定未来的值,您必须根据不同的场景生成多个预测。听起来很熟悉吗?您可能已经想到了假设模拟(What-If Simulation)。

假设模拟在计划环境中使用,以根据不同的假设业务场景确定KPI的值。

  • 如果我的折扣和去年一样,我今年的收入会是多少?如果我不打折呢?

  • 如果新冠病毒疾病继续传播,我的费用会收到什么样的影响?如果取消隔离限制又会怎样?

  • 如果营销预算减少了怎么办?这将如何影响我的销售业绩?

  • 如果明天不下雨,我所在城市的自行车出租量会是多少?如果下雨怎么办?


在这篇文章中,我们将向您展示如何利用SAP 分析云预测计划的预测功能来执行预测性“假设模拟”。

预测与假设模拟的关系


模拟模型


为了理解“预测假设模拟”与传统假设模拟的区别,我们需要快速了解假设模拟背后的方法。我们要执行假设模拟,需要:

  • 一些业务变量:业务变量是与您的业务相关联的KPI(关键绩效指标)。

  • 一些场景:这些场景是您想要测试的不同业务假设。每个场景对应于一组您想要测试的业务变量值,以查看它如何影响要估计的KPI。“如果我明年将广告预算增加10%,并保持相同的折扣”将是一种情况,“如果我明年将广告预算减少10%,且不打折”将是另一种情况。

  • 模拟模型:模拟模型表示业务变量之间存在的关系。这是您业务的简化表现。


通常,模拟模型是计划模型本身,在计划模型中(通过创建层次结构或计算)明确表示度量/账户(业务变量)之间存在的关系。但该方法仅适用于以下情况:

  • 必须知道业务变量和待估计结果之间的关系,并且必须在计划模型中正确表达;

  • 业务变量和结果之间的关系不会随着时间而改变。


预测模型可以找到业务变量和要预测的KPI之间的关系,这些关系可能无法在计划模型中表达。此外,每次重新训练预测模型时,都会重新评估这些关系。预测模型可以作为补充,在业务变量和KPI之间提供额外的关系,从而获得更好的模拟模型。

实例


假设您是一名汽车销售,您想预测下一年的收入。您有一个具有以下KPI 的计划模型:

  • 收入(您希望通过模拟估算的KPI)

  • 售出的单位数量

  • 单价

  • 折扣

  • 广告预算


在计划模型中,收入明确表示为售出单位数量、单价和折扣的函数(收入 = 售出单位数量*单价*折扣)。因为这种关系在计划模型中明确存在,所以您可以很容易地模拟折扣和单价的变化对收入的影响。

但这个计划模型也包含一些没有明确表达的关系。我们可以假设,折扣和广告预算会影响售出的单位数量(这通常就是为什么要进行折扣和广告)。但这些关系通常不会在计划模型中表达出来,因此在模拟中有一些不完全正确的地方:更改折扣和广告预算的值不会影响售出的单元数。

因此,为了修复模拟,您可以使用时间序列预测模型,以广告预算和折扣作为影响因素来预测售出的单元数。通过这种方式,缺失的关系被建模,并可用作规划模型中存在的关系的补充。

这些新关系可以带来两个好处:

  • 您可以考虑之前在模拟中未考虑的变量的影响,例如广告预算;

  • 运行模拟时,对于不受您控制的变量,不必给出确定的值,例如售出的单位数。对于受控制的变量,您可以给定相应的值,例如单价和广告预算。


场景


假设您在一家共享单车公司工作。您有一个计划模型,其中包含一个BikeHires测量值,表示每天的使用人数,以及与天气相关的几个测量值。您想基于预测计划来预测未来31天租用的自行车数量。如果要重新创建此示例,可以下载此数据集。请注意,列BikeHires, Temp.Min, Temp.Max, Temp.Mean, Humid.Min, Humid.Max, Humid.Mean 和 Rain将作为度量,其他列应视为维度。

步骤


模拟场景


之前的一篇文章中,我们已经看到共享单车租赁的数量受到一些与天气有关的条件的影响。但我们希望得到未来30天的预测。我们可能会有一些相当精确的天气预报,我们可以用来预测明天,甚至可能是未来一周的天气预报,如果精确性不太重要的话……但我们不可能得到任何可信的的未来30天的天气预报。在这些情况下,我们都会使用不可靠的输入来生成预测。

那么,我们该怎么办?我们应该进行预测性的“假设”模拟,即根据不同的假设查看预测输出,知道它们只是假设。因为预测是基于本身不可预测的输入,所以我们不会对未来做出假设。相反,我们看的是在这样或那样的情况下会发生什么。

我们将使用3个简单场景(“假设”)进行假设模拟:

  • 一种中间情景,可以根据天气的一些标准假设生成预测;

  • 一种悲观情景,允许根据对天气的悲观假设生成预测(天气状况往往会降低自行车租用数量);

  • 一个乐观的情景,可以根据对天气的乐观假设(天气状况往往会增加自行车租用数量)生成。


设置场景


每个模拟场景都将表示为一个计划版本,因此我们需要创建3个私有版本。但要创建这些版本,我们需要考虑SAP 分析云预测计划的局限性:不可能一次训练一个模型并将其应用于多个版本。这意味着我们每次必须使用相同的训练数据训练3个不同的模型。因此,我们将通过复制actual版本的数据来创建3个版本。






为了简单起见,我们假设一个月内每天最高温度恒定,每天降雨量恒定。您也可以创建更复杂的场景。这些值是如何得到的呢?在过去几年中,9月的平均温度为15℃,最低平均温度为12℃,最高平均温度为18℃。因此,我们将15℃作为中间假设,12℃作为悲观假设,18℃作为乐观假设。

同样,9月的平均日降雨量为1.5英寸,而在天气非常潮湿的月份,平均日降雨量约为5英寸。所以,我们用1.5英寸表示中间情景,5英寸表示悲观情景,0英寸表示乐观情景(完全没有降雨)。



训练预测模型


现在我们将创建一个时间序列预测场景。



让我们使用以下设置为中间场景创建第一个预测模型:





其余两个预测模型将使用相同的设置。因为需要参考其他输入版本,所以我们将使用“克隆”功能。


创建另外两个预测模型,仅更改输入版本和描述,并训练这些模型。



现在我们有3个已训练的模型,可以为3个不同的场景生成预测。


我们只需要将每个模型的预测写入不同的版本。为了避免版本冲突,我们将把每个模型的预测写入用于训练模型的计划版本。点击“保存预测”按钮。




结果可视化


现在,我们准备将模拟结果可视化为一个故事。


我们可以看到,在三种假设的情况下,9月份的自行车租用量可能是多少。

结语


在这篇文章中,您了解了如何利用影响因素来执行计划模拟。除了预测未来天气对共享单车租用量的影响,您也可以利用您在这篇文章中学到的知识来确定明年的最佳广告预算(如果广告预算对您的销售有影响的话)。

如果您喜欢这篇文章,欢迎留下评论并点赞,非常感谢。

原作者:David Serre

更多关于SAP 分析云的产品介绍,您可以进入SAP 分析云官网查看。

如果您想了解更多关于SAP 分析云的操作,请关注话题标签:SAP Analytics Cloud

想要了解SAP 分析云即将到来的更新,欢迎进入Roadmap Explorer查看。

您也可以点击试用我们的产品。

想要全面了解如何使用SAP Analytics Cloud 进行预测计划,欢迎阅读中文官方指南:SAP Analytics Cloud 中文帮助手册