将来値の予測

この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はデータベースを一巡して次の計算を実行します。

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

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

  3. 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