预测未来值

Essbase 计算脚本示例使用线性回归预测方法生成以所选前几个月的已知数据值开头的趋势或行,并根据已知值继续预测值。

趋势使用 @TREND 计算。此示例还显示了如何检查趋势的结果以“适合程度”与已知数据值相符。在这种情况下,计算脚本预测 6 月至 12 月的销售数据,假设数据当前仅存在到 5 月。

假设度量维包含一个附加子项 ErrorLR,其中放置了拟合度结果。

示例脚本:

Sales
(@TREND(@LIST(Jan,Mar,Apr),@LIST(1,3,4),,
  @RANGE(ErrorLR,@LIST(Jan,Mar,Apr)),
    @LIST(6,7,8,9,10,11,12),
      Jun:Dec,LR););

下表介绍了预测计算脚本中使用的参数:

表 24-1 用于预测未来值的计算脚本示例的参数

Parameter (参数) 说明

@LIST(1 月、3 月、4 月)

表示 Ylist 或包含已知数据值的成员。

@LIST 函数将三个成员分组为逗号分隔的列表,并将列表与其他参数分开。

@LIST(1,3,4)

表示 Xlist 或底层变量值。由于跳过 Feb 和 May,因此 EssbaseYlist 值编号为 1,3,4。

,

Xlist 参数后面的多余逗号指示跳过参数 (weightList)。

此示例使用默认权重 1。

@RANGE(ErrorLR,@LIST(Jan,Mar,Apr)

表示 errorList 或成员列表,其中将趋势线拟合良好的结果放置到 Ylist

errorList 中的值是 Ylist 中的数据点与生成的趋势线上的数据点之间的差异。

@RANGE 函数将 ErrorLR 成员与 Ylist(Jan、Mar、Apr)组合,以生成成员列表。

@LIST(6,7,8,9,10,11,12)

表示要查找预测的 XforecastList 或底层变量值。此示例连续预测 Jun – Dec 的值,因此值为 6,7,8,9,10,11,12。

六月:十二月

表示要在其中放置预测值的 YforecastList 或成员列表。此示例根据 Jan、Mar 和 Apr 的值预测 Jun – Dec 的值。

LR

指定线性回归方法。

Essbase 会循环使用数据库,执行以下计算:

  1. 根据 YlistXlist 参数指定,查找要基于其趋势的已知数据值(1 月、3 月、4 月的销售额)。

  2. 使用线性回归计算趋势线,并将结果放置在 YforecastList 参数指定的 Jun – Dec 销售中。

  3. 计算 1 月、3 月和 4 月数据值的趋势线拟合度,并将这些月的结果置于 ErrorLR 中。

    例如,1 月 (4.57) 的 ErrorLR 值表示 Essbase 计算趋势线后,1 月 (2339) 的“销售”值与趋势线上的“1 月”值之间的差异为 4.57。Feb 和 May 的 ErrorLR 值为 #MISSING,因为这些月份不是 Ylist 的一部分。

计算脚本的结果:


      100 West Actual
      Sales     ErrorLR
Jan   2339      4.57
Feb   2298      #MI
Mar   2313      -13.71
Apr   2332      9.14
May   2351      #MI
Jun   2315.14   #MI
Jul   2311.29   #MI
Aug   2307.49   #MI
Sep   2303.57   #MI
Oct   2299.71   #MI
Nov   2295.86   #MI
Dec   2292      #MI