預測未來值
此 Essbase 計算指令碼範例使用線性迴歸預測方法來產生從所選上個月的已知資料值開始的趨勢或線,然後根據已知值繼續進行預測值。
趨勢使用 @TREND 來計算。此範例也顯示如何將趨勢的結果「適合度」檢查為已知的資料值。在此情況下,計算指令碼會預測 6 月至 12 月的銷售資料,假設資料目前只存在到 5 月。
假設 Measures 維度包含額外的子項 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 (Jan,Mar,Apr) |
代表 Ylist,或包含已知資料值的成員。 @LIST 函數會將這三個成員分組為以逗號分隔的清單,並將清單與其他參數分開。 |
|
@ 清單 (1,3,4) |
代表 Xlist 或基礎變數值。因為會略過 2 月和 5 月,所以 Essbase 會將 Ylist 值編號為 1,3,4。 |
|
, |
Xlist 參數之後的額外逗號表示已略過參數 (weightList)。 此範例使用預設加權 1。 |
|
@RANGE (ErrorLR,@LIST (1 月,3 月,4 月) |
代表 errorList,或將趨勢線適合度結果放到 Ylist 的成員清單。 errorList 中的值是 Ylist 中的資料點與所產生趨勢線上的資料點之間的差異。 @RANGE 函數會將 ErrorLR 成員與 Ylist (1 月、3 月、4 月) 結合,以產生成員清單。 |
|
@ 清單 (6,7,8,9,10,11,12) |
代表 XforecastList,或尋找預測的基礎變數值。此範例會連續預測 6 月至 12 月的值,因此值為 6,7,8,9,10,11,12。 |
|
六月:十二月 |
代表 YforecastList,或將預測值放置在其中的成員清單。此範例會根據 Jan、Mar 和 Apr 的值預測 Jun-Dec 的值。 |
|
流動性風險 |
指定「線性迴歸」方法。 |
Essbase 會循環資料庫,執行下列計算:
-
依據 Ylist 和 Xlist 參數指定,尋找要作為趨勢基礎的已知資料值 (一月、三月、四月的銷售)。
-
使用「線性迴歸」計算趨勢線,並將結果置於 6 月至 12 月的「銷售」,如 YforecastList 參數所指定。
-
針對 1 月、3 月及 4 月的資料值,計算趨勢線的適合度,並將這些月份的結果置於 ErrorLR 中。
例如,Jan 的 ErrorLR 值 (4.57) 表示在 Essbase 計算趨勢線之後,Jan 的 Sales 值 (2339) 與趨勢線上的 Jan 值之間的差異為 4.57。二月和五月的 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