予測将来値

この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つのメンバーをカンマ区切りのリストとしてグループ化し、そのリストを他のパラメータとは別に保管します。

@リスト(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)を結合して、メンバー・リストを作成します。

@リスト(6,7,8,9,10,11,12)

XforecastList、つまり予測のシーク対象の基礎となる変数値を表します。この例では、6月から12月の値を連続して予測します。このため、値は6,7,8,9,10,11,12となります。

6月:12月

YforecastList、つまり予測値が配置されるメンバー・リストを表します。この例では、1月、3月および4月の値に基づいて6月から12月の値を予測します。

LR

線形回帰法を指定します。

Essbaseでは、データベース内を循環して、次の計算が実行されます:

  1. YlistおよびXlistパラメータで指定されたとおりに、トレンドの基になる既知のデータ値(Sales for Jan、Mar、Apr)を検索します。

  2. 線形回帰を使用してトレンド線を計算し、YforecastListパラメータで指定されたとおりに、線形回帰を使用してトレンド線を計算し、その結果をJun-Decに置きます。

  3. Jan、MarおよびAprのデータ値に対するトレンド線の適合度を計算し、その結果をそれぞれの月のErrorLRに置きます。

    たとえば、1月のErrorLR値(4.57)は、Essbaseによってトレンド線が計算された結果、1月のSales値(2339)とトレンド線上の1月の値の間の差異が4.57であることを意味します。2月と5月の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