20 指数平滑法
指数平滑法アルゴリズムについて学習します。
- 指数平滑法とは
指数平滑法は、時系列データの予測手法です。移動平均法の一種であり、過去の観測に対して指数関数的に減少する重みを割り当てます。 - 指数平滑法モデルのデータの準備
入力データ、集計方法およびモデル構築パラメータを指定することで、指数平滑法用のデータを準備します。
関連項目
親トピック: アルゴリズム
20.1 指数平滑法とは
指数平滑法は、時系列データの予測手法です。移動平均法の一種であり、過去の観測に対して指数関数的に減少する重みを割り当てます。
指数平滑法は、半世紀にわたり予測に広く使用されています。予測は、履歴データおよびパターンに基づいて作成されます。preItには、戦略、戦術および運営レベルのアプリケーションがあります。たとえば、戦略的レベルでは、投資利益率、つまり革新による成長率や効果を見積るために予測が使用されます。戦術的レベルでは、コスト、在庫要件、顧客満足を見積るために予測が使用されます。運営レベルでは、ターゲットを設定し、品質や基準への準拠を予想するために予測が使用されます。
最も単純な形式の指数平滑法は単一パラメータを使用した移動平均法であり、この手法では、将来の値に対する過去のレベルの影響の指数関数的な減少をモデル化します。指数平滑法は、様々な拡張によって、Box-Jenkins自己回帰和分移動平均(ARIMA)法などの、他のよく知られた方法よりも幅広いクラスのモデルを扱います。Oracle Machine Learning for SQLは、理論上の利点とパフォーマンス上の利点を提供する単一の誤差原因(SSOE)の仮定を組み込んだ、最先端の状態空間法を使用する指数平滑法を実装しています。
-
誤差の種類(加算または乗算)、傾向(加算、乗算、なし)、季節性(加算、乗算、なし) を組み合せて一致させるモデルのマトリックス。
-
減衰傾向のモデル。
-
不規則な時系列や欠損値のある時系列を直接処理するモデル。
-
複数時系列モデル
- 指数平滑法モデル
指数平滑法モデルは、直観的で柔軟性が高く、拡張性のある幅広いクラスの予測モデルです。 - 単純指数平滑法
単純指数平滑法では、データは、傾向や季節性のパターンのない定常平均を中心に変動すると想定されています。 - 傾向はあるが季節性はないモデル
加算(線形)傾向の望ましい形式は、Holt法または二重指数平滑法と呼ばれることがあります。 - 季節性はあるが傾向はないモデル
時系列の平均が時間の経過とともに変化しない(固定)が、季節変動の影響は受ける場合、適切なモデルは季節性パラメータを持ちますが、傾向は持ちません。 - 傾向と季節性のあるモデル
HoltとWintersは、指数平滑法モデルに傾向と季節性の両方を導入しました。 - 予測間隔
予測間隔を計算するために、指数平滑法モデル(ESM)は3クラスに分割されます。
関連項目:
Ord, J.K.他共著『Time Series Forecasting: The Case for the Single Source of Error State Space Approach, Working Paper』(モナシュ大学、計量経済統計学科、VIC3800、オーストラリア、2005年4月2日)。
親トピック: 指数平滑法
20.1.1 指数平滑化モデル
指数平滑法モデルは、直観的で柔軟性が高く、拡張性のある幅広いクラスの予測モデルです。
このクラスのメンバーには、以前のレベルと現在のショックの線形結合として将来を予測する、単純な単一パラメータのモデルが含まれます。拡張機能には、線形または非線形の傾向、傾向減衰、単純または複雑な季節性、関連シリーズ、予測方程式での様々な非線形性、および不規則な時系列の扱いに関するパラメータなどを含めることができます。
指数平滑法では、系列は過去に無限に広がっていると想定されますが、将来に対する過去の影響は、平滑かつ指数関数的な速度で減衰します。減衰の平滑率は、1つ以上の平滑化定数によって表されます。平滑化定数は、モデルによって推定されるパラメータです。過去の履歴に基づく現在のレベルの推定値、および現在の条件のみに依存するその推定値対するショックの観点からのみ表される等価な再帰的定式化を使用することで、実世界のデータをモデル化するための有用な仮定が行われます。この手順では、過去のすべての履歴を含む、最初の観測の直前の期間に対する推定値が必要になります。この最初の観測は、モデリング手順によって値が推定される追加のモデル・パラメータです。
傾向や季節性の拡張機能などのESM構成要素には、加算または乗算の形式を使用できます。より単純な加算モデルでは、ショック、傾向、季節性は再帰的定式化において線形効果と見なされます。
Parent topic: 指数平滑法とは
20.1.2 単純指数平滑法
単純指数平滑法では、データは、傾向や季節性のパターンのない定常平均を中心に変動すると想定されます。
単純指数平滑法モデルでは、各予測(平滑化された値)は以前の観測の加重平均として計算され、加重は平滑化定数αの値に応じて指数関数的に減少します。平滑化定数αの値が1に近いと、ほとんどすべての重みが最近の観測値に付加されます。αの値が0に近いと、遠い過去の観測値が大きな影響力を持つことになります。
Parent topic: 指数平滑法とは
20.1.3 傾向はあるが季節性はないモデル
加算(線形)傾向の望ましい形式は、Holt法または二重指数平滑法と呼ばれることがあります。
傾向を持つモデルでは、平滑化パラメータγと、オプションで減衰パラメータφが追加されます。減衰パラメータは、過去の線形傾向が将来のレベルの推定値に及ぼす影響を平滑に減衰させ、多くの場合、精度を向上させます。
Parent topic: 指数平滑法とは
20.1.4 季節性はあるが傾向はないモデル
時系列の平均が時間の経過とともに変化しない(固定)が、季節変動の影響は受ける場合、適切なモデルは季節性パラメータを持ちますが、傾向は持ちません。
季節変動では、長さmの期間にわたって一定性が保たれると想定されます。mは季節の数であり、たとえば、m=4は、入力データが四半期ごとに集計される場合に使用できます。加算誤差を含むモデルの場合、季節パラメータの和は0である必要があります。乗算誤差を含むモデルの場合、季節パラメータの積は1である必要があります。
Parent topic: 指数平滑法とは
20.1.5 傾向と季節性のあるモデル
HoltとWintersは、指数平滑法モデルに傾向と季節性の両方を導入しました。
Holt-Wintersまたは三重指数平滑化としても知られる元のモデルでは、加算的な傾向と乗算的な季節性を考慮していました。拡張機能には、傾向減衰の有無にかかわらず、加算的および乗算的な傾向、季節性、誤差の様々な組合せを使用したモデルが含まれます。
Parent topic: 指数平滑法とは
20.1.6 予測間隔
予測間隔を計算するために、指数平滑法モデル(ESM)は3クラスに分割されます。
最も単純なクラスは、単純なESM、Holt法、Holt-Winters加法が含まれる線形モデルのクラスです。クラス2のモデル(乗算誤差、加算成分)は、正規性仮定の違反に対して近似的な補正を行います。クラス3のモデルは、単純なシミュレーション手法を使用して予測間隔を計算します。
Parent topic: 指数平滑法とは
20.2 指数平滑法モデルのデータの準備
入力データ、集計方法およびモデル構築パラメータを指定することで、指数平滑法用のデータを準備します。
ESMモデルを構築するには、次の情報を指定する必要があります。
-
入力データ
-
ケースIDが日付型である場合は、集計レベルと方法
-
データがパーティション化されている場合は、パーティション化列
また、作成プロセスをより詳細に制御するために、モデル作成パラメータを任意に指定できます。これらのパラメータは、すべて次のデフォルト値を持っています。
-
モデル
-
誤差タイプ
-
最適化基準
-
予測期間
-
予測範囲の確信度
-
欠損値の処理
-
入力系列が等間隔であるかどうか
- 入力データ
時系列分析では、順序付けされた入力データが必要です。したがって、各データ行は[インデックス, 値]のペアで構成される必要があり、インデックスで順序を指定します。 - 累積
日付型の列に累積プロシージャを使用して、等間隔の時系列データを生成します。 - 欠損値
時系列データでの欠損値を効率的に処理して、信頼できる指数平滑化モデルになるようにします。 - 予測
正確な予測を生成するために、指数平滑化モデルの予測期間を指定します。 - パーティションによる並列性
効率的なモデル作成のためにパーティショニングを使用して、時系列データを並列で処理することでパフォーマンスを高めます。 - 初期値の最適化
長い季節サイクルについて初期値を最適化して、パフォーマンスを高めます。
関連項目:
使用可能なモデル設定のリストおよび説明は、DBMS_DATA_MINING - アルゴリズムの設定: 指数平滑法モデルを参照してください。
ノート:
モデル設定と同じ意味でハイパーパラメータという用語も使用されます。親トピック: 指数平滑法
20.2.1 入力データ
時系列分析では、順序付けされた入力データが必要です。したがって、各データ行は[インデックス, 値]のペアで構成される必要があり、インデックスで順序を指定します。
CREATE_MODEL
またはCREATE_MODEL2
プロシージャを使用して指数平滑化(ESM)モデルを作成する場合、CASE_ID_COLUMN_NAME
およびTARGET_COLUMN_NAME
パラメータを使用して、それぞれ入力インデックスと観測時系列値の計算に使用する列を指定します。時間列には、Oracleの番号、またはOracleの日付、タイムスタンプ、タイムゾーン付きのタイムスタンプ、またはローカル・タイムゾーン付きのタイムスタンプが格納されます。ケースID列の型がOracle NUMBER
の場合、モデルは入力時系列が等間隔であるとみなされます。序数位置のみが重要であり、数値が小さいほど後の時間を示します。特に、入力時系列はcase_id
(時間ラベル)の値に基づいてソートされます。case_id列に欠損値を含めることはできません。ギャップを示すために、値列にはNULL
の欠損値を指定できます。隣接する時間ラベル間の差の大きさは関係なく、間隔やギャップ・サイズの計算には使用されません。CASE_ID
として渡される整数値は、非負数とみなされます。
ESMはパーティション化モデルもサポートしています。そのような場合、入力表にはパーティションを指定する追加の列が含まれています。同じパーティションIDを持つすべての[インデックス, 値]ペアは、1つの完全な時系列を形成します。すべてのモデルで同じモデル設定が使用されますが、指数平滑法アルゴリズムでは、パーティションごとに個別にモデルが作成されます。
データ・プロパティによって警告通知が発生するか、設定が無視される可能性があります。ユーザーが乗法的傾向と乗法的季節性のいずれかまたは両方を使用してモデルを設定し、データに値Yt<= 0が含まれている場合、モデル・タイプはデフォルトに設定されます。系列に含まれている値が、ユーザー指定の季節数より少ない場合、季節性の指定は無視され、警告が発行されます。
ユーザーがパラメータEXSM_SERIES_LIST
を使用して一連の予測子系列を選択した場合は、入力データに最大20列の追加の時系列を含めることもできます。
親トピック: 指数平滑法モデルのデータの準備
20.2.2 累積
日付型の列に累積プロシージャを使用して、等間隔の時系列データを生成します。
指数平滑法アルゴリズムでは、列が日付型(date
、datetime
、timestamp
、timestamp with timezone
、またはtimestamp with local timezone
)である場合に累積の手順が適用されます。ケースIDはNUMBER
型の列にできます。この列のソート・インデックスは、時系列の値シーケンス内での各値の位置を表します。ケースID列は、日付型にすることもできます。日付型は、ユーザーが指定した累積期間に従って蓄積されます。型を問わず、ケースIDは列を等間隔の時系列に変換するために使用されます。NUMBER
型のケースIDには累積は適用されません。たとえば、販促イベント関する時系列を考えてみましょう。時間列には各イベントの日付が含まれているものの、各日付は等間隔でない場合があります。ユーザーは、蓄積された、または変換された等間隔の時系列の間隔を指定する必要があります。この例では、ユーザーが間隔を月単位に指定すると、元の時系列から、等間隔の時系列が各カレンダー月の利益付きで生成されます。EXSM_INTERVAL
の設定は、間隔を指定するために使用されます。ユーザーは、EXSM_ACCUMULATE
にも値(EXSM_ACCU_MAX
など)を指定する必要があります。この場合、等間隔の月次系列は、観測された時系列値として、その次のすべてのイベントにわたる最大利益が含まれることになります。
親トピック: 指数平滑法モデルのデータの準備
20.2.3 欠損値
時系列データでの欠損値を効率的に処理して、信頼できる指数平滑化モデルになるようにします。
NULL
エントリは、欠損値を示します。時間列の型がdatetimeの場合、累積プロシージャが欠損値を取り込む可能性もあります。EXSM_SETMISSING
の設定は、欠損値の処理方法を指定するために使用できます。特殊値EXSM_MISS_AUTO
は、系列に欠損値が含まれている場合に、不規則な時系列として処理されることを示します。
ノート:
欠損値処理の設定は、モデル設定と互換性がある必要があります。互換性がない場合は、エラーがスローされます。
親トピック: 指数平滑法モデルのデータの準備
20.2.4 予測
正確な予測を生成するために、指数平滑化モデルの予測期間を指定します。
EXSM_PREDICTION_STEP
の設定は、予測期間を指定するために使用できます。予測期間は、時間列がdatetime型の場合は、間隔の数(EXSM_INTERVAL
の設定)の単位で表されます。時間列が数値である場合は、予測期間は予測するステップの数です。時系列が規則的か不規則的かを問わず、EXSM_PREDICTION_STEP
は予測期間を指定します。
関連項目:
使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。ノート:
モデル設定と同じ意味でハイパーパラメータという用語も使用されます。親トピック: 指数平滑法モデルのデータの準備
20.2.5 パーティションによる並列性
効率的なモデル作成のためにパーティショニングを使用して、時系列データを並列で処理することでパフォーマンスを高めます。
たとえば、ユーザーは1つのパーティション列としてPRODUCT_ID
を選択し、モデル作成で様々な製品の予測を生成できます。パーティションごとに個別の平滑化モデルが作成されますが、すべてのパーティションで同じモデル設定が共有されます。たとえば、EXSM_MODEL
がEXSM_SIMPLE
に設定されている場合、すべてのパーティション・モデルが単純指数平滑法モデルになります。異なるパーティションの時系列を異なるプロセスに分散し、並列に処理できます。各時系列のモデルは、連続的に作成されます。
親トピック: 指数平滑法モデルのデータの準備
20.2.6 初期値の最適化
長い季節サイクルについて初期値を最適化して、パフォーマンスを高めます。
これは、誤差を最小限に抑えるために最適化プロセス中に初期値が調整される標準のESM最適化とは対照的です。初期値ではなくレベル、傾向および季節性パラメータのみを最適化すると、パフォーマンスが大幅に向上し、最適化の収束が速くなります。特定分野の知識により、長期の季節変動が正確な予測への大きな要因になることが示されている場合は、このアプローチが適切です。パフォーマンス上の利点があるとしても、モデルの過剰適合および信頼性の低い信頼限界につながる可能性があるため、一般的な短い季節サイクルの初期値の最適化を無効にすることはお薦めしません。
親トピック: 指数平滑法モデルのデータの準備