将来値の予測
この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 将来値を予測するための計算スクリプト例で使用されるパラメータ
パラメータ | 説明 |
---|---|
@LIST(Jan,Mar,Apr) |
Ylist、つまり既知のデータ値を含むメンバーを表します。 @LIST関数は、3つのメンバーをカンマ区切りのリストとしてグループ化し、そのリストを他のパラメータとは別に保管します。 |
@LIST(1,3,4) |
Xlist、つまり基になる変数値を表します。2月と5月はスキップされるため、EssbaseではYlist値を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、つまり予測のシーク対象の基礎となる変数値を表します。この例では、6月から12月の値を連続して予測します。このため、値は6,7,8,9,10,11,12となります。 |
Jun:Dec |
YforecastList、つまり予測値が配置されるメンバー・リストを表します。この例では、1月、3月および4月の値に基づいて6月から12月の値を予測します。 |
LR |
線形回帰法を指定します。 |
Essbaseはデータベースを一巡して次の計算を実行します。
-
YlistおよびXlistパラメータで指定されたとおりに、トレンドで基になる既知のデータ値(Jan、Mar、AprのSales)を検索します。
-
YforecastListパラメータで指定されたとおりに、線形回帰を使用してトレンド線を計算し、その結果をJunからDecのSalesに置きます。
-
Jan、MarおよびAprのデータ値に対するトレンド線の適合度を計算し、その結果をそれぞれの月のErrorLRに置きます。
たとえば、1月のErrorLR値(4.57)は、Essbaseによってトレンド線が計算された結果、1月のSales値(2339)とトレンド線上の1月の値の間の差異が4.57であることを意味します。2月と5月はYlistに含まれていないため、そのErrorLR値は#MISSINGです。
計算スクリプトの結果:
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