ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

FORECAST

FORECASTコマンドは、直線傾向、指数的成長、Holt-Winters補外の3つの方法のいずれかによってデータを予測するコマンドです。FORECASTは、指定した方法に従って計算を実行し、オプションとしてその結果をアナリティック・ワークスペースの変数に格納します。

その後、FORECAST.REPORTを実行して予測の標準レポートを生成できます。また、INFOファンクションを使用して、独自にカスタマイズしたレポートまたはさらに詳細な分析に使用するために結果を部分的に取得することもできます。


ヒント:

大部分のアプリケーションは、FORECAST文を使用せずに予測コンテキストを使用してデータを予測します。詳細は、「予測プログラム」を参照してください。

構文

FORECAST [LENGTH n] -

     [METHOD {TREND|EXPONENTIAL|WINTERS PERIODICITY [argument...]}] -

     [TIME dimension] [FCNAME nametime-series

ここで、argumentは予測の特性を指定する次の句のいずれか1つ以上です。

     ALPHA n
     BETA n
     GAMMA n
     STSMOOTHED STSEASONAL n-series STTREND n
     FCSMOOTHED name
     FCSEASONAL name
     FCTREND name

パラメータ

LENGTH n

予測する時間間隔の数を指定します。デフォルトはゼロです。LENGTHを指定した場合、FCNAMEオプションも指定する必要があります。

METHOD TREND

(デフォルト)予測方法が履歴データの直線補外であることを指定します。

METHOD EXPONENTIAL

予測方法が期間から期間の定率成長を使用する履歴データの直線補外であることを指定します。

METHOD WINTERS

予測方法が、データにおける線形傾向および季節的変動の両方を考慮する補外法であるHolt-Winters法であることを指定します。Oracle OLAPは、最初に履歴データの各時間間隔に関して統計的に関連する3つの系列を構成します( 「Holt-Winters構成系列」 を参照)。(「Holt-Winters構成系列」を参照。)次にOracle OLAPは、指定された数の時間間隔に関するその3つの系列から将来への予測を生成します。

Holt-Winters予測の結果に影響を与える複数の引数を指定できます。PERIODICITYのみ必須です。他の引数については、Oracle OLAPは使用可能なデータに基づいて妥当な値を選択します。

PERIODICITY p

季節サイクルの長さで、pは、2以上のINTEGERを指定する式です。たとえば、分析するデータが月別の値である場合、pは12です。

METHOD WINTERSキーワードを使用する場合、PERIODICITYは必須です。

ALPHA n
BETA n
GAMMA n

Holt-Winters予測のために計算される最初の3系列に対する平滑化定数(「Holt-Winters構成系列」を参照)。ALPHAは平滑データ系列用、BETAは季節指数系列用、GAMMAは傾向系列用です。値nは、0より大きく1より小さい小数式です。各値はオプションです。省略した場合、Oracle OLAPはその系列に対して最適な平滑化定数を計算して、履歴期間における1つ先の時間間隔の平均絶対誤差率を最小限にします。

STSMOOTHED n STSEASONAL n-series STTREND n

STSMOOTHEDは、平滑データ系列の開始値を指定します(「Holt-Winters構成系列」を参照)。値nは、0より大きく1より小さい小数式です。STSMOOTHEDを指定した場合、STSEASONALおよびSTTRENDも指定する必要があります。この値を省略した場合、Oracle OLAPが開始値を計算します。

STSEASONALは、季節指数系列の開始値を指定します(「Holt-Winters構成系列」を参照)。n-seriesは、季節サイクルにおける時間間隔ごとに1つの値とする10進値の配列です。必要な値の数はPERIODICITYに指定する数と同じです(「Holt-Winters開始値」を参照)。STSEASONALを指定した場合、STSMOOTHEDおよびSTTRENDも指定する必要があります。この値を省略した場合、Oracle OLAPが開始値を計算します。

STTRENDは、傾向系列の開始値を指定します(「Holt-Winters構成系列」を参照)。Nは10進値です。STTRENDを指定した場合、STSMOOTHEDおよびSTSEASONALも指定する必要があります。この値を省略した場合、Oracle OLAPが開始値を計算します。

FCSMOOTHED name
FCSEASONAL name
FCTREND name

Oracle OLAPが平滑データ系列、季節指数系列および傾向系列用に計算したデータを格納する数値変数(「Holt-Winters構成系列」を参照)。nameによって指定される変数には、そのディメンションの1つとしてTIME dimensionがある必要があります。系列計算ではDECIMALの結果が生成されますが、Oracle OLAPはその値を格納する前にnameのデータ型に変換します。事前系列のいずれかまたはすべてを保存できます。系列を保存しない場合、Oracle OLAPは予測の完了後にその値を破棄します。

TIME dimension

時間ディメンションとしてみなされるディメンションの名前。dimensionの現行のステータスによって、予測の計算に使用される履歴データの時間間隔の数が決定されます。時間ディメンションのステータスは、逓増する連続的な値の範囲である必要があります。LENGTHが、この範囲を超えて隣接する、予測される値の数を指定します。

time-seriesが1つのみのディメンションである場合、時間ディメンションはデフォルトでそのディメンションに設定されます。time-seriesに複数のディメンションがあり、そのディメンションの1つがDAY、WEEK、MONTH、QUARTERまたはYEARの型である場合、時間ディメンションはデフォルトでその型に設定されます。それ以外の場合は、他のディメンションが単一の値に制限されるときでも、時間ディメンションを指定する必要があります。FORECASTは、時間ディメンション以外のディメンションではステータスにある最初の値のみを使用します。

FCNAME name

FORECASTによって計算される値を格納する数値変数の名前。nameは、時間ディメンションによってディメンション化されている必要があり、他のディメンションがあっても構いません。nameのデータ型が10進数でない場合、FORECASTはその値を適切なデータ型に変換します。

履歴データに対応する適合値は、時間ディメンションの現行のステータスに対してnameに格納されます。予測値は、LENGTHによって指定される時間間隔の数に対してnameに格納されます。その予測時間間隔は、時間ディメンションの現行のステータスの直後に続きます。

Holt-Winters法の場合、適合値は前の時間間隔で計算される1つ先の時間間隔の予測です。最終予測値は適合値から推定されます。

TRENDおよびEXPONENTIALの方法の場合、FORECASTは時間ディメンションの現行のステータスを通じて回帰方程式を評価することによって適合値を取得します。

time-series

予測される時系列を指定する式。Time-seriesは、時間ディメンションによってディメンション化される数式である必要があります。time-seriesに他のディメンションがある場合、FORECASTはその現行のステータスの最初の値のみを使用します。time-seriesは、FORECASTが適合値および予測値を計算する元の履歴データです。(FCNAMEの説明を参照してください。)

使用上の注意

多次元式の予測

多次元式のすべての値を予測するには、FORECAST文を1つ以上のFORループ内に入れたプログラムを使用して、式の残りのすべてのディメンションをループ処理します。

結果の一部の取得

INFO文を使用すると、独自のレポートまたはさらに詳細な分析のためにFORECASTの結果の一部を取得できます。

引数の順序

予測されるデータを指定する式であるtime-seriesが最後にくる必要があることを除き、FORECASTの引数を指定する順序は任意です。

Time-seriesデータの処理

各方法には、time-seriesに指定される入力データの処理に関してそれぞれの基準があります。

  • TREND -- NAではない値が最低2つ必要です。ゼロおよび負の値を受け入れます。NA値を無視します。

  • EXPONENTIAL -- 最低2つの正の値が必要です。ゼロ、負およびNA値を無視します。

  • WINTERS -- ゼロおよび負の値を受け入れます。加重移動平均を計算することによってNA値を埋めます。

ゼロ値

いずれの方法でも、time-seriesによって指定される履歴データにゼロ値を許可しますが、その時間間隔は平均絶対誤差率(MAPE)の計算から除外されます。

Holt-Winters構成系列

Holt-Winters予測法は、統計的に関連する3つの系列を構成して実際の予測に使用します。これらの系列は、次のとおりです。

  1. 平滑データ系列は、季節的影響および確率的誤差を除いた元データです。

  2. 季節指数系列は、各時間間隔の季節的影響です。ゼロより大きい値はその時間間隔のデータに季節的増加があることを表し、ゼロより小さい値はデータに季節的減少があることを表します。Holt-Winters法は、季節的影響が時間の経過とともに変化することを認めるので、すべての履歴期間に季節指数値があります。

  3. 傾向系列は、季節的影響および確率的誤差を除いた各時間間隔のデータにおける変化です。Holt-Winters法は、傾向影響が時間の経過とともに変化することを認めるので、すべての履歴期間に傾向値があります。

引数を省略したHolt-Winters

Holt-Winters法では、STSMOOTHED、STTRENDおよびSTSEASONAL句を省略した場合、AbrahamおよびLedolter著『Statistical Methods for Forecasting』のアルゴリズムを使用してOracle OLAPが必要な開始値を計算します。Holt-Winters予測に不慣れな場合は、Oracle OLAPで開始値を計算してください。

Holt-Winters開始値

開始値を指定した場合、Oracle OLAPは値を解読してリストを作成することによって、STSEASONAL開始値を取得します。そのリストには、PERIODICITYによって指定される数の値が少なくとも必要です。これより多い値は無視され、少ない場合はエラーが発生します。STSEASONAL式は多次元も可能であり、履歴データと同じディメンションを持つ必要がありません。(ディメンション化された式を解明する際のリストの順序については、UNRAVELファンクションを参照してください。)

計算された値の取得

Oracle OLAPがALPHA、BETA、GAMMAに対して計算する値、およびSTSMOOTHED、STSEASONAL、STTRENDに対して計算する値は、INFOファンクションを使用して確認できます。

予測のレポートの生成

FORECAST.REPORTプログラムは、FORECASTコマンドを使用して作成される予測の標準レポートを生成します。

レポートには、予測の計算式および平均絶対誤差率を含む予測のパラメータに続いて、予測値が示されます。このレポートを生成するには、次のように入力します。

FORECAST.REPORT

例9-139 EXPONENTIAL法の使用方法

次の文は、fcst.salesという名前の変数を作成し、sales変数のディメンションを制限し、EXPONENTIAL法を使用して1997年のChicago地区におけるスポーツウェアの売上を予測し、計算の結果をfcst.salesに格納します。

DEFINE fcst.sales DECIMAL <month>
LIMIT product TO 'Sportswear'
LIMIT district TO 'Chicago'
LIMIT month TO 'Jan95' TO 'Dec96'
FORECAST LENGTH 12 METHOD EXPONENTIAL FCNAME fcst.sales -
time month sales

ここでFORECAST.REPORTを実行すると、生成された値を表示できます。その予測に対してFORECAST.REPORTプログラムを実行すると、次のレポートが生成されます。

                     Forecasting Analysis
                     ====================
 
                 Variable to Forecast: SALES
                   Forecast dimension: MONTH
                      Forecast method: EXPONENTIAL
          Mean absolute percent error: 16.64%
 
        Forecast Equation: SALES = 87718.0009541883 *
                           (1.00553383457899 ** MONTH)
 
MONTH                   Actual Value    Fitted Value
--------------------    ------------    ------------
Jan95                      72,123.47       88,203.42
Feb95                      80,071.75       88,691.52
Mar95                      78,812.69       89,182.33
Apr95                      97,413.26       89,675.85
May95                      94,406.65       90,172.10
  ...                        ...               ...
Dec96                      72,095.02      100,140.38
  ...                        ...               ...

例9-140 WINTERS法の使用方法

次の文は、monthディメンションを制限し、WINTERS法を使用して季節的影響を考慮した予測を計算します。

DEFINE fcst.sales DECIMAL <montH>
LIMIT month TO year 'Yr95' 'Yr96'
FORECAST LENGTH 12 METHOD WINTERS -
PERIODICITY 12, ALPHA .5, BETA .5, GAMMA .5 -
time month, FCNAME fcst.sales, sales

ここでFORECAST.REPORTを実行すると、生成された値を表示できます。その予測に対してFORECAST.REPORTプログラムを実行すると、次のレポートが生成されます。

                     Forecasting Analysis
                     ====================
 
                 Variable to Forecast: SALES
                   Forecast dimension: MONTH
                      Forecast method: WINTERS
                                Alpha: 0.50
                                 Beta: 0.50
                                Gamma: 0.50
                          Periodicity: 12
          Mean absolute percent error: 0.20%
 
MONTH                   Actual Value    Fitted Value
--------------------    ------------    ------------
Jan95                      72,123.47       72,154.67
Feb95                      80,071.75       80,027.51
Mar95                      78,812.69       79,171.08
Apr95                      97,413.26       97,200.81
May95                      94,406.65       94,464.71
 ....                         ...             ...
Dec97                                      77,867.23