[指数平滑化予測 (Exponential Smoothing Forecast)] ツールでは、ホルト-ウィンターズ指数平滑化法を使用して時空間キューブの場所における時系列を季節性およびトレンドのコンポーネントに分解し、場所ごとの将来時間ステップを効果的に予測します。主な出力は、最終的に予測された時間ステップのマップ、情報メッセージ、およびポップアップ チャートです。追加された予測値と共に元のキューブからのデータを含んでいる新しい時空間キューブを作成することもできます。また、各時系列の外れ値を検出するオプションがあり、時系列の他の部分のパターンおよび傾向から著しく逸脱する位置と時間を特定することもできます。
適用例
指数平滑化は、長年にわたり最も研究されてきた時系列の予測方法の 1 つです。この方法は、時系列の値が漸進的なトレンドに従い、値が任意の時間ステップ数を通じて連続する周期パターンに従う季節ごとの動作を表示する際に最も有効です。
たとえば、このツールは次のような用途に使用できます:
- 都市部のヘルスプランナーはこのツールを使用して時間ごとの都心温度を予測し、酷暑中の熱に関連した疾患に備えることができます。
- 小売チェーンはこのツール使用して次の週の各曜日における各項目の需要を予測することができます。
予測および検証
このツールは、各時系列を予測するときに、2 つのモデルを構築します。1 つ目は予測モデルです。これは将来時間ステップの値を予測するために使用します。2 つ目は検証モデルです。これは予測値の整合性を検証するために使用します。
予測モデル
予測モデルは、時空間キューブのそれぞれの場所に対する時系列の値を指数的に平滑化することで構築されます。このモデルは将来時間ステップを予測するためにも使用されます。各時系列に対する指数平滑化モデルの適合度は予測 RMSE (二乗平均平方根誤差) によって測定され、指数平滑化モデルと時系列の値における平均自乗差の平方根と同等です。
時間ステップ数が T、指数平滑化による適合値が ct、時間 t における時系列の raw 値が rt の です。
次の画像は、時系列における raw 値と、2 つの将来時間ステップに対する予測とともに時系列に適合した指数平滑化モデルを示します。予測 RMSE は、モデルによる適合値と raw 時系列の値との差を測定します。
予測 RMSE は、raw 時系列の値に対する指数平滑化モデルの適合度のみを測定します。予測 RMSE は、予測モデルが未来の値を実際にどの程度良く予測するかを計測しません。モデルの時系列に対する適合度が高い一方で外挿する場合の予測精度が高くないことは、一般に知られています。この問題は検証モデルによって解決します。
検証モデル
検証モデルは、各時系列の将来値に対する予測モデルの予測精度を決定するために使用します。このモデルは、各時系列における最終時間ステップをいくつか除外し、除外しなかったデータに指数平滑化モデルを適合することで構築します。このモデルは、保留しなかったデータの値を予測するために使用し、予測値は非表示の raw 値と比較されます。デフォルトでは、時間ステップの 10 パーセントが検証で保留されますが、この数は [検証で除外する時間ステップ数] パラメーターを使用して変更できます。除外した時間ステップ数は時間ステップの 25 パーセントを超えることはなく、0 が指定された場合は検証は実施されません。予測精度は、検証 RMSE の統計情報を計算することで測定します。これは、除外した時間ステップの予測値と raw 値における平均自乗差の平方根と同等です。
時間ステップ数が T、検証で保留した時間ステップ数が m、1 つ目の T-m 時間ステップにおいて予測した値が ct、時間 t における検証で保留した時系列の raw 値が rt の です。
次の画像は、時系列の前半に適合して時系列の後半を予測するために使用する指数平滑化モデルを示します。検証 RMSE は、予測値と保留された時間ステップにおける raw 値との差を測定します。
検証モデルは、予測値と raw 値を直接比較して指数平滑化モデルの予測精度を測定する際に役立ちます。検証モデルは、予測するために実際には使用されず、予測モデルを正当化するために使用されます。
メモ:
時系列予測における検証も同様ですが、相互検証という共通テクニックとは異なるものです。予測における検証では常に検証で最終時間ステップを除外しますが、相互検証ではデータのランダムなサブセットまたは各値を順番に除外します。
解釈
予測 RMSE および検証 RMSE の値を解釈する際には、いくつかの注意事項があります。
- これらの RMSE 値は、異なるもの計測するため、互いに直接比較できません。予測 RMSE は raw 時系列値に対するモデルの適合度を測定し、検証 RMSE は将来値に対するモデルの予測精度を測定します。予測 RMSE は検証 RMSE よりも多くのデータを使用し、また外挿しないため、通常は検証 RMSE よりも小さくなります。
- 両方の RMSE 値は、データの単位を使用します。たとえば、データが摂氏温度計測値 の場合、検証 RMSE の 50 は、予測値が真の値から平均で約 50 度違うことを意味するため、非常に高い値です。ただし、データが大規模な小売店における米ドルの日割り収益の場合、同じ検証 RMSE の 50 は、予測した日割り収益は真の値から一日平均 $50 だけ異なることを意味するため、非常に低い値です。
指数平滑化モデルの構築
指数平滑化にはいくつもの種類がありますが、いずれも時系列を複数のコンポーネントに分けることで機能します。各コンポーネントの値は、各時間ステップの影響が時間の進みとともに指数的に減少するように、過去の時間ステップにおけるコンポーネントを指数的に重み付けすることで推定します。各コンポーネントは状態空間モデル手法によって帰納的に定義されます。また、各コンポーネントはその他すべてのコンポーネントに依存しています。すべてのパラメーターは最大尤推定法を使用して推定します。
このツールでは、予測モデルが個々のコンポーネントを合算するように、すべてのコンポーネントが加算されます。季節性コンポーネントを使用する場合、ツールはホルト-ウィンターズ減衰季節性手法を使用します。季節性コンポーネントを使用しない場合、ツールは減衰トレンド手法を使用します。これらのコンポーネントおよび状態空間モデルを定義する式の詳細については、「その他の参考」セクション内のテキストをご確認ください。
トレンド コンポーネント
指数平滑化モデルの 1 つ目のコンポーネントはトレンド コンポーネントです。このコンポーネントは、時系列の値における漸進的および規則的な変更をモデル化するために使用します。このコンポーネントは、各時間ステップの値を、その値と過去の時間ステップの値との差によって指数的に重み付けすることで推定します。トレンド コンポーネントは、モデルによって検出された前回のトレンドを使って予測する場合に直接使用します。ただし、予測が最終トレンドに追従しつづけることのないように、トレンドを減衰して時間の進みとともに徐々に平坦化します。各時間ステップのトレンド値の勾配を指数的に減少する値に乗算することで、トレンドの減衰を平坦化します。減衰度はモデルごとに推定します。これによって、さらに遠い将来について予測する場合に、いくつかのモデルではトレンドをより速くまたはより遅く平坦化します (もしくは、最も極端なケースではまったく平坦化しません)。
季節性コンポーネント
指数平滑化の 2 つ目のコンポーネントは季節性コンポーネントです。これは、任意の時間ステップ数を通じて繰り返されるデータのパターンをモデル化するために使用します。各季節におけるパターンの形状と度合は時間とともに変化します。ただし、1 つの季節の期間は時系列全体で同じである必要があります。たとえば、温度は夜間の最低気温と日中の最高気温によって日中と夜間に対応する季節性の動作を表示します。日の出時間は年間を通して変動可能ですが (それによって 1 日あたりの温度パターンの形状と度合が変動可能ですが)、季節の期間は常に 1 日です。
トレンド コンポーネントを使用すると、過去の時間ステップの季節性の値を指数的に重み付けすることで任意の時間ステップの季節性コンポーネントが決定します。ただし、この場合は、直近の時間ステップを使用する代わりに、季節周期の同じポイントに対応する過去の時間ステップに重み付けします。たとえば、1 つの季節の長さは 4 つの時間ステップで構成されており、季節性コンポーネントは 4 つ前、8 つ前、12 個前、さらに前の時間ステップなどの値を指数的に重み付けします。
データ内の 1 つの季節に対応する時間ステップの数を把握している場合、[季節の長さ] パラメーターで指定できます。また、この値は時空間キューブのすべての場所で使用します。季節の長さを把握していないか季節の長さが場所ごとで異なる場合、パラメーターの値は空白のままとなることがあります。また、最適な季節の長さはスペクトル密度関数を使用して場所ごとに推定します。この関数の詳細については、「参考資料」セクションでご確認ください。
それぞれの場所において、スペクトル分析によって決定された最適な季節の長さが 1 より大きくその場所の時間ステップの数の 3 分の 1 より小さい場合、季節の長さはこの最適値に設定されます。それ以外の場合、場所は季節性コンポーネントを使用しません。場所に対して使用される季節の長さは、出力フィーチャの [季節の長さ] フィールドに保存されます。季節性コンポーネントが使用されない場合、このフィールドの値は 1 です。このワークフローは、次の画像に要約されています。
レベル コンポーネント
指数平滑化のレベル コンポーネントは、季節性とトレンドを考慮した時系列のベースライン値を表します。予測モデルを入力時空間キューブに適合する場合、時間ステップのレベルは、季節性とトレンドを考慮しつつ過去のレベルを指数的に重み付けすることで計算されます。将来予測の場合、そのレベル コンポーネントは最後に計測した時間ステップのレベル コンポーネントと同等でありつづけますが、実際の予測はトレンドと季節性コンポーネントによって実行されます。
残差コンポーネントと信頼区間
最後のコンポーネントは残差 (または誤差) コンポーネントです。このコンポーネントは真の値とその他すべてのコンポーネントによって推定した値との差です。これは、トレンド、季節性、およびレベル コンポーネントがモデル化された後データ内に残った不確実性と誤差を表します。このコンポーネントは信頼区間の基準として役立ちます。
それぞれの予測時間ステップにおいて、ツールは予測値の信頼区間 90 パーセントの上限および下限を算出します。各時間ステップにおける予測値は将来値についての単一の最良推定を表しますが、信頼区間は不確実性と将来値の予想範囲を視覚化するために使用できます。上限および下限はフィールドとして保存され、[出力フィーチャ] のポップアップ チャートに表示されます。
信頼区間は、モデルの残差コンポーネントが個別にまた等しく正常に分布しているという想定に基づき推定されます。 信頼区間の式はこの想定に基づいて導かれます。これらの式と導出については、「その他の参考」セクションのテキストでご確認ください。
コンポーネントの視覚化
出力時空間キューブを作成することで、指数平滑化モデルのコンポーネントを視覚化できます。このキューブは、[時空間キューブを 3D で視覚化 (Visualize Space Time Cube in 3D)] ツールで、[表示テーマ] パラメーターの [予測結果] オプションを使ってご使用ください。出力フィーチャのチャートが作成されます。指数平滑化モデルの各種コンポーネントは、[チャート プロパティ] ウィンドウでオン/オフを切り替えることができます。これらのコンポーネントがあわせて追加されると、予測モデルと将来時間ステップの予測が構築されます。次の画像には、本トピックの画像 1 に表示された指数平滑化モデルのコンポーネントが個別に表示されています。
時系列の外れ値の特定
時系列データの外れ値は、その時系列の他の値のパターンおよび傾向と著しく異なる値です。たとえば、休日前後のオンラインショッピングや豪雨時の交通事故の高い件数は、時系列の外れ値として検出される可能性があります。数値の小数部分の欠落などの単純なデータ入力エラーも、よくある外れ値の原因の 1 つです。時系列予測における外れ値の特定は重要です。外れ値は、将来値の予測に使用される予測モデルに影響するからです。ある場所の時系列の少数の外れ値であっても、予測の精度と信頼性を著しく損なう可能性があります。外れ値の位置、特に時系列の最初または最後の方にある外れ値は、誤った予測になる可能性があります。そのような位置の特定は、各位置の予測値をどう信頼するかを判断する助けになります。
外れ値は、単に raw 値によって判定されるのではなく、予測モデルの適合値からの逸脱の程度によって判定されます。つまり、値が外れ値であると判定されるか否かは状況に依存し、場所と時間によって異なります。予測モデルは、時系列全体に基づいて予測値を定義します。外れ値は、このベースラインから著しく外れた値です。たとえば、年平均気温の時系列について考えてみましょう。この数十年で平均気温は上昇しているので、気温の適合予測モデルも、この上昇を反映して上昇します。これは、1950 年に典型的と見なされて外れ値とは判定されない気温が、2020 年には外れ値と見なされる可能性があるということです。つまり、1950 年の典型的な気温は、2020 年の基準では非常に低いと見なされます。
各場所の時系列の外れ値は、[外れ値の特定] パラメーターを使用して検出することができます。このパラメーターを指定すると、各位置で Generalized ESD (Extreme Studentized Deviate) テストが実行され、時系列の外れ値が検査されます。テストの信頼度は、[信頼度] パラメーターで指定でき、デフォルトでは 90% が使用されます。Generalized ESD テストは、各位置で、1 つの外れ値、2 つの外れ値、3 つの外れ値、というように繰り返され、[外れ値の最大数] パラメーターの値 (デフォルトは時間ステップの 5%、端数切り捨て) に達するまで検査を行い、結果として統計的に有意な外れ値の最大数を返します。各場所の外れ値の数は、出力フィーチャの属性テーブルで確認できます。また個々の外れ値は、次のセクションで説明する時系列のポップアップ チャートで確認できます。
ツールの出力
このツールの 1 次出力は、フィールドとして保存されたその他の全時間ステップの予測を使った最終予測時間ステップによってシンボル化された [入力時空間キューブ] にそれぞれの場所を表示する 2D フィーチャクラスです。各位置は独立して予測され、空間リレーションシップは考慮されませんが、マップは、類似する時系列と共に、エリアの空間パターンを表示することができます。
ポップアップ チャート
[マップ操作] のナビゲーション ツールを使ってマップ上のフィーチャをクリックすると、適合指数平滑化モデルとともに時空間キューブの値を示し、各予測における信頼区間 90 パーセントとともに予測値を示す [ポップアップ] ウィンドウ内に、チャートが表示されます。時空間キューブの値は青色で表示され、青色のラインで接続されます。適合値はオレンジで表示され、オレンジの破線で結ばれます。予測値はオレンジで表示され、モデルの予測を表すオレンジの実線で結ばれます。薄赤色の信頼限界が各予測値の周辺に描画されます。チャート内のいずれかのポイントの上にポインターを置き、そのポイントの日付および値を参照することができます。さらに、時系列の外れ値を検出するよう選択した場合、外れ値は大きな紫色の点で表示されます。
メモ:
出力フィーチャがシェープファイル (*.shp) として保存された場合、ポップアップ チャートは作成されません。
ジオプロセシング メッセージ
このツールは、ツールの実行に関する情報を含む複数のメッセージを提供します。これらのメッセージは、3 つのメイン セクションを含んでいます。
[入力時空間キューブの詳細] セクションには、入力時空間キューブのプロパティが時間ステップの数、場所の数、時空間ビンの数に関する情報とともに表示されます。この 1 番目に表示されるプロパティは、キューブが最初にどのように作成されたかによって決まるため、キューブごとに情報が変わります。
[解析の詳細] セクションには、予測結果のプロパティが予測時間ステップの数、検証で除外された時間ステップの数、季節性を持つ場所の割合、および予測時間ステップに関する情報とともに表示されます。[季節の長さ] パラメーターに対して値が提供されていない場合、推定した季節の長さのサマリー統計情報は最小値、最大値、平均値、中央値、および標準偏差を含めて表示されます。
[位置全体の精度のサマリー] セクションには、すべての場所における予測 RMSE および検証 RMSE のサマリー統計情報が表示されます。それぞれの値について、最小値、最大値、平均値、中央値、および標準偏差が表示されます。
[外れ値オプション] パラメーターを使用して時系列の外れ値を検出するよう選択すると、[時系列の外れ値サマリー] セクションが表示されます。このセクションには、外れ値を含む場所の数とパーセンテージ、最も多く外れ値を含む時間ステップ、位置別および時間ステップ別の外れ値の数のサマリー統計などの情報が表示されます。
メモ:
ジオプロセシング メッセージは、ツールの実行中に [ジオプロセシング] ウィンドウの下部に表示されます。このメッセージにアクセスするには、[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタン をクリックするか、メッセージ セクションを展開します。ジオプロセシング履歴を使用して、以前に実行したツールのメッセージにアクセスすることもできます。
出力フィーチャのフィールド
[Object ID]、ジオメトリ フィールド、およびポップアップ チャートを含んでいるフィールドに加えて、[出力フィーチャ] は以下のフィールドを含みます。
- [ロケーション ID] (LOCATION) - 時空間キューブの対応する場所のロケーション ID です。
- [(時間ステップ) の (解析変数) の予測] (FCAST_1、FCAST_2など) - 各将来時間ステップにおける予測値です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは、予測される時間ステップごとに作成されます。
- [(時間ステップ) の (解析変数) の区間の上限] (HIGH_1、HIGH_2など) - 各将来時間ステップにおける予測値に対する信頼区間 90 パーセントの上限です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは、予測される時間ステップごとに作成されます。
- [(時間ステップ) の (解析変数) の区間の下限] (LOW_1、LOW_2など) - 各将来時間ステップにおける予測値に対する信頼区間 90 パーセントの下限です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは、予測される時間ステップごとに作成されます。
- [予測二乗平均平方根誤差] (F_RMSE) - 予測 RMSE です。
- [検証二乗平均平方根誤差] (V_RMSE) - 検証 RMSE です。検証で除外した時間ステップがない場合、このフィールドは作成されません。
- [季節の長さ] (SEASON) - 場所の各季節に対応する時間ステップの数です。このフィールドにおける値 1 は季節性がないことを意味します。
- [予測方法] (METHOD) - 場所に対して使用するモデルを表示するテキスト フィールドです。このツールでは、値は常に [指数的に平滑化] されます。このフィールドでは、[位置による予測評価 (Evaluate Forecasts By Location)] ツールで使用しているモデルを特定できます。
- [モデル適合外れ値の数] (N_OUTLIERS) - その場所の時系列で検出された外れ値の数。このフィールドは、[外れ値オプション] パラメーターを使用して外れ値を検出するよう選択した場合のみ表示されます。
出力時空間キューブ
[出力時空間キューブ] を指定した場合、出力キューブは、入力時空間キューブからの元の値のすべてを、追加された予測値と共に含みます。新しい時空間キューブは、[時空間キューブを 2D で視覚化 (Visualization Space Time Cube in 2D)] ツールまたは [時空間キューブを 3D で視覚化 (Visualize Space Time Cube in 3D)] ツールを使用して表示することができ、[時空間ホット スポット分析 (Emerging Hot Spot Analysis)]、[時系列クラスタリング (Time Series Clustering)] などの [時空間パターン マイニング] ツールボックスのツールへの入力として使用できます。
複数の予測された時空間キューブを、[位置による予測評価 (Evaluate Forecasts by Location)] ツールを使用して比較し、マージすることができます。これにより、さまざまな予測ツールとパラメーターを使用して複数の予測キューブを作成できます。ツールは、予測または検証 RMSE を使用して位置ごとに最適な予測を特定します。
ベスト プラクティスおよび制限
このツールが自分のデータに適しているかどうか、およびどのパラメーターを選択するべきかを判断する場合、いくつかのことを考慮する必要があります。
- [時系列予測] ツールセット内の他の予測ツールと比較すると、このツールは緩やかなトレンドと強い季節性の動作を示すデータに対してお勧めします。指数モデルでは季節性の動作とトレンドが区別されていると想定されており、時間の経過とともにトレンドが漸進的に変化すると同時に一貫した季節パターンに従っているデータに対して最も有効です。モデルの季節性コンポーネントは任意のコンポーネントのため、このツールは季節性を表示しないデータに対しても使用できます。ただし、強い季節性の動作に対して最も効果を発揮します。
- 検証で除外する時間ステップの数を決定することは重要なポイントです。除外する時間ステップを増やすと、検証モデルを推定する時間ステップが少なくなってしまいます。ただし、除外した時間ステップが少なすぎる場合、検証 RMSE は少ないデータ量を使用して推定を行うため、間違いやすくなります。検証モデルを推定するために十分な数の時間ステップを維持しつつ可能な限り多くの時間ステップを除外することをお勧めします。また、時空間キューブに十分な時間ステップがある場合は、少なくとも予測する時間ステップ数と同じ数の検証における時間ステップを保留することをお勧めします。
参考資料
状態空間手法を使用した指数平滑化による予測の詳細については、次のテキストをご確認ください:
- Hyndman R, Koehler A, Ord K, and Snyder R (2008 年) 「Forecasting with Exponential Smoothing. The State Space Approach」 https://doi.org/10.1007/978-3-540-71918-2
季節の長さを推定するために使用するスペクトル密度関数の詳細については、次の参考文献の findfrequency 関数をご確認ください:
- Hyndman R, Athanasopoulos G, Bergmeir C, Caceres G, Chhay L, O'Hara-Wild M, Petropoulos F, Razbash S, Wang E, and Yasmeen F (2019 年) 「Forecasting functions for time series and linear models」 R パッケージ バージョン 8.7、https://pkg.robjhyndman.com/forecast
- Hyndman RJ and Khandakar Y (2008 年) 「Automatic time series forecasting: the forecast package for R」 Journal of Statistical Software, 26(3), pp. 1–22. https://www.jstatsoft.org/article/view/v027i03.