[フォレストベースの予測 (Forest-based Forecast)] ツールでは、フォレストベースの回帰分析を使用して時空間キューブの将来時間スライスを予測します。1 次出力は、通知メッセージやポップアップ チャートと同様に最終予測時間ステップに関するマップです。追加済の予測値とともに元の時空間キューブからのデータを含む新しい時空間キューブも作成できます。
このツールは、回帰分析で使用するものと同じ基礎アルゴリズムを [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールとして使用します。フォレスト回帰分析モデル構築に使用するトレーニング データは、時空間キューブの場所ごとのタイム ウィンドウを使って構築されます。
フォレストベースの分類と回帰分析 (Forest-based Classification and Regression) の詳細
適用例
フォレスト回帰分析モデルでは、複数のコンテクストで使用するデータについていくつかの仮説を立てます。他の予測方法と比較して、これらの仮説は、データが複雑なトレンド、季節や、多項式、指数曲線、正弦波など共通の数学関数とは異なる変化を持つ場合に最も有効です。
たとえば、このツールは次のような用途に使用できます:
- 学校区では、このツールを使って区内の各学校において次の週の各曜日に欠席する生徒の数を予測できます。
- 公共事業管理者は、このツールを使って管轄区域の近隣における翌月の電力および水の需要を予測できます。
- 小売店では、このツールを使って個々の製品がいつ売れるか予測して在庫管理に役立てることができます。
予測と検証
このツールは各時系列を予測すると同時に 2 つのモデルを構築します。1 つ目は予測モデルです。これは将来時間ステップの値を予測するために使用します。2 つ目は検証モデルです。これは予測値の整合性を検証するために使用します。
予測モデル
予測モデルは、時空間キューブのそれぞれの場所に対する時系列の値を使ってフォレストを構築することで構築されます。このフォレストは次の時間スライスを予測するために使用します。新しい時間ステップにおける予測値はフォレスト モデルに含まれ、次の時間ステップが予測されます。この帰納的処理は、すべての将来時間ステップを通じて継続します。各時系列に対するフォレストの適合度は予測 RMSE (二乗平均平方根誤差) によって測定され、フォレスト モデルと時系列の値における平均自乗差の平方根と同等です。
時間ステップ数が T、フォレスト モデルの値が ct、時間 t における時系列の raw 値が rt の です。
次の画像は、時系列における raw 値と、2 つの将来時間ステップに対する予測とともに時系列に適合したフォレスト モデルを示します。[予測 RMSE] は、フォレストによる適合値と raw 時系列の値との差を測定します。
[予測 RMSE] は、raw 時系列の値に対するフォレスト モデルの適合度のみを測定します。予測モデルが将来値を予測する実際の精度については測定しません。フォレスト モデルの時系列に対する適合度が高い一方で外挿する場合の予測精度が高くないことは、一般に知られています。この問題は検証モデルによって解決します。
検証モデル
検証モデルは、各時系列の将来値に対する予測モデルの予測精度を決定するために使用します。このモデルは、各時系列における最終時間ステップをいくつか除外し、除外しなかったデータにフォレスト モデルを適合することで構築します。このフォレスト モデルは、保留しなかったデータの値を予測するために使用し、予測値は非表示の 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 つしかありません。1 つの時系列内に説明変数と従属変数のセットを複数作成する場合、複数のタイム ウィンドウが構築され、各タイム ウィンドウ内の時間ステップを説明変数として、そのタイム ウィンドウの次の時間ステップを従属変数として使用されます。たとえば、ある場所に 20 個の時間ステップがあり、タイム ウィンドウが 5 個の時間ステップで構成される場合、その場所に対するフォレストのトレーニングに使用される説明変数と従属変数が 15 セットあることになります。1 つ目のセットは説明変数として時間ステップ 1、2、3、4、および 5 を持ち、従属変数として時間ステップ 6 を持ちます。2 つ目のセットは説明変数として時間ステップ 2、3、4、5、および 6 を持ち、従属変数として時間ステップ 7 を持ちます。最後のセットは説明変数として時間ステップ 15、16、17、18、および 19 を持ち、従属変数として時間ステップ 20 を持ちます。各タイム ウィンドウ内の時間ステップ数は、[時間ステップ ウィンドウ] パラメーターを使用して指定します。タイム ウィンドウは、(各タイム ウィンドウ内の時間ステップが 1 つだけになるように) 1 まで小さくでき、その場所に対する時間ステップ数の 3 分の 1 を超えることはできません。
トレーニング済のフォレスト モデルを使用すると、その場所の最後の時間ステップが 1 つ目の将来時間ステップを予測するための説明変数として使用されます。その後、タイム ウィンドウ内の過去の時間ステップ (その中の 1 つが 1 つ目の予測値である) を使用して 2 つ目の将来時間ステップが予測されます。3 つ目の予測時間ステップも同様に、タイム ウィンドウ内の過去の時間ステップ (その中の 2 つが過去の予測時間ステップである) を使用します。この処理は、すべての将来時間ステップを通じて継続されます。
次の画像は、フォレスト モデルのトレーニングや最初の将来時間ステップ 7 個の予測に使用する説明変数と従属変数のセットを複数表示します:
季節性とタイム ウィンドウの選択
各時間ステップ ウィンドウ内の時間ステップ数を選択することは、フォレスト モデルにおいて重要性の高いことです。主な注意事項としては、特定の時間数にわたって自然周期パターンを繰り返す季節性が、時系列によって表示されるか否かという点があります。たとえば、温度はその年の季節に応じて年間の季節サイクルを表示します。タイム ウィンドウは関連付けされた説明変数と従属変数の構築に使用するため、説明変数間の季節の相関性を可能な限り小さくするためにこれらの説明変数がすべて同じ季節サイクルのものである場合に最も有効です。時間ステップ ウィンドウの長さに対して自然季節の時間ステップ数を使用することをお勧めします。データが複数の季節を表示する場合、最も長い季節の長さを使用することをお勧めします。
データ内の 1 つの季節に対応する時間ステップの数を把握している場合、[時間ステップ ウィンドウ] パラメーターで指定できます。また、この値は時空間キューブのすべての場所で使用します。季節の長さを把握していないか季節の長さが場所ごとで異なる場合、パラメーターの値は空白のままとなることがあります。また、最適な季節の長さはスペクトル密度関数を使用して場所ごとに推定します。この関数の詳細については、「参考資料」セクションでご確認ください。
それぞれの場所において、スペクトル分析によって決定された最適な季節の長さが 1 より大きくその場所の時間ステップの数の 3 分の 1 より小さい場合、時間ステップ ウィンドウはこの最適値に設定されます。それ以外の場合、場所はその場所における時間ステップ数の 25 パーセント (切り捨ての値) を時間ステップ ウィンドウに対して使用します。これによって、少なくとも 1 つの時間ステップがウィンドウ内にあり、少なくとも 3 つの完全な季節サイクルが説明変数として使用されるようになります。場所に対して使用される時間ステップの値は、出力フィーチャの Time Window フィールドに保存されます。出力フィーチャの Is Seasonal フィールドは、時間ステップ ウィンドウがスペクトル分析を使用して決定された場合に値 1 を持ち、それ以外の場合に 0 を持ちます。このワークフローは、次の画像に要約されています。
予測方法
フォレストをトレーニングするために使用する説明変数と従属変数の値を表す方法は 4 通りあります。これらのオプションは [予測方法] パラメーターを使用して指定します。
1 つ目のオプションは、[値によってモデルを構築] です。このオプションでは、説明変数と従属変数に対して時空間ビンの raw 値を使用します。このオプションを選択した場合、予測値は従属変数の範囲内に含まれるため、データが、将来予測の際に値が増大または減少し続けると予想されるトレンドを持つ場合はこのオプションを使用すべきではありません。以下の画像に表示されている変数セットは、各行に説明変数と関連付けされた従属変数のセットが表示されている単一の場所に対するモデルをトレーニングするために使用されます。時空間キューブの時間ステップ数は T、各時間ステップ ウィンドウの時間ステップ数が W、時間 t における時系列の raw 値が Xt で表されます。
2 つ目のオプションは、[トレンド除去後に値によってモデルを構築] です。これがデフォルトのツール オプションです。このオプションは、場所ごとの時系列全体で一次 (線形) トレンドを除去します。これら除去された値は説明変数と従属変数として使用します。このオプションを使用すると、予測がこの将来トレンドに従い、予測値が従属変数の範囲外で推定できるようになります。以下の画像に表示されている変数セットは、各行に説明変数と関連付けされた従属変数のセットが表示されている単一の場所に対するモデルをトレーニングするために使用されます。時空間キューブの時間ステップ数は T、各時間ステップ ウィンドウの時間ステップ数が W、時間 t における時系列の除去された値は Dt で表されます。
3 つ目のオプションは、[残差値によってモデルを構築] です。このオプションは、各時間ウィンドウ内の説明変数に基づき従属変数を予測する OLS (最小 2 乗) 回帰分析モデルを作成します。この回帰分析モデル (OLS 予測と従属変数の raw 値との差) の残差値は、フォレストをトレーニングする際の従属変数を表すために使用します。以下の画像に表示されている変数セットは、各行に説明変数と関連付けされた従属変数のセットが表示されている単一の場所に対するモデルをトレーニングするために使用されます。時空間キューブの時間ステップ数は T、各時間ステップ ウィンドウの時間ステップ数は W、時間 t における時系列の raw 値は Xt、そして時間 t における OLS によって推定した値は X^t (Xt-hat) で表されます。
最後のオプションは、[トレンド除去後の残差によってモデルを構築] です。このオプションは、はじめに場所の時系列全体で一次 (線形) トレンドを除去します。このオプションは、各時間ウィンドウ内のトレンド除去された説明変数に基づきトレンド除去された従属変数を予測する OLS 回帰モデルを構築します。この回帰モデル (OLS 予測と従属変数のトレンド除去された値との差) の残差はフォレストをトレーニングする際の従属変数を表すために使用します。以下の画像に表示されている変数セットは、各行に説明変数と関連付けされた従属変数のセットが表示されている単一の場所に対するモデルをトレーニングするために使用されます。時空間キューブの時間ステップ数は T、各時間ステップ ウィンドウの時間ステップ数は W、時間 t における時系のトレンド除去された値は Dt、そして時間 t における OLS によって推定した値は D^t (Dt-hat) で表されます。
信頼区間の構築
ツールは、[出力フィーチャ] 内にフィールドとして表示される各予測時間ステップに対する信頼区間の 90 パーセントを計算して、次のセクションで説明するポップアップ チャートに表示します。1 つ目の予測時間ステップに対する信頼区間の上下限は、分位数ランダム フォレスト回帰分析を使用して計算します。将来時間の値を予測する場合、ツリーの各リーフでの観測をあわせて平均化します。ただし、分位数回帰分析では各リーフの個々の観測が使用され、これによって 1 つ目の時間ステップにおける予測値が分布されることになります。信頼区間の 90 パーセントはこの分布の 5 番目から 95 番目の分位数を使用して構築されます。
2 つ目の予測における信頼区間も同様の方法で計算しますが、1 つ目の予測における信頼区間を考慮して調整します。分位数回帰分析はさらに、2 つ目の予測時間ステップにおける分布を作成するために使用されます。この際、1 つ目の予測時間ステップを単一の値として扱い、5 番目から 95 番目の分位数の分布が計算されます。2 つ目の予測における実際の信頼区間は、両方の予測における信頼限界の長さを加えて計算されます。2 つ目の予測の上限は 1 つ目の予測の上限長さに 2 つ目の予測の信頼上限の長さ (1 つ目の予測が分布ではなく単一の値であると仮定して計算) を加えたものと同等です。下限についても、同様に信頼下限の長さを加えて計算します。3 つ目の予測時間ステップにおける信頼区間は、分位数回帰分析を再度行って 3 つの予測すべての誤差限界を加えることで計算します。すべての時間ステップが予測されるまで、この処理が繰り返されます。このような方法で誤差限界を加えることで、投影座標において誤差が前方向に伝播されて、信頼バンドの長さが時間の進みとともに増加するようになります。
メモ:
2 つ目以降の時間ステップにおける信頼限界は、過去の予測の誤差を加えることで控えめに計算します。これらの区間の実際の信頼レベルは少なくとも 90 パーセントですが、実際にはさらに高い信頼レベルになることもあります。
ツールの出力
このツールの 1 次出力は、フィールドとして保存されたその他の全時間ステップの予測を使った最終予測時間ステップによってシンボル化された [入力時空間キューブ] にそれぞれの場所を表示する 2D フィーチャクラスです。場所ごとの予測は空間リレーションシップを考慮せずに個別に実施されますが、類似の時系列を持つエリアの空間パターンがマップに表示される場合があります。
ポップアップ チャート
[マップ操作] のナビゲーション ツールを使ってマップ上のフィーチャをクリックすると、適合フォレスト モデルとともに時空間キューブの値を示し、各予測における信頼区間 90 パーセントとともに予測値を示す [ポップアップ] ウィンドウ内に、チャートが表示されます。時空間キューブの値が青色で表示され、青色の線で結ばれます。適合値はオレンジで表示され、オレンジの破線で結ばれます。予測値はオレンジで表示され、フォレスト モデルの予測を表すオレンジの実線で結ばれます。薄赤色の信頼限界が各予測値の周辺に描画されます。チャート内のポイントにカーソルを置いてポイントの日付と値を確認できます。
メモ:
出力フィーチャがシェープファイルとして保存された場合、ポップアップ チャートは作成されません (*.shp)。加えて、信頼区間がチャート外にはみ出した場合、[全データ範囲を表示] ボタンがチャートの上に表示されます。このボタンによって信頼区間全体が表示されるようチャートを拡張できます。
ジオプロセシング メッセージ
このツールは、ツールの実行情報に関する複数のメッセージを提供します。メッセージは 3 つのメイン セクションで構成されています。
[入力時空間キューブの詳細] セクションには、入力時空間キューブのプロパティが時間ステップの数、場所の数、時空間ビンの数に関する情報とともに表示されます。この 1 つ目のセクションに表示されるプロパティは入力時空間キューブの元の作成方法に依存しているため、情報もキューブごとに変化します。
[解析の詳細] セクションには、予測結果のプロパティが予測時間ステップの数、検証で除外された時間ステップの数、スペクトル分析によって季節性が検出された場所の割合、および予測時間ステップに関する情報とともに表示されます。[時間ステップ ウィンドウ] パラメーターに対して値が提供されていない場合、推定した時間ステップ ウィンドウの長さのサマリー統計情報は最小値、最大値、平均値、中央値、および標準偏差を含めて表示されます。
[位置全体の精度のサマリー] セクションには、すべての場所における予測 RMSE および検証 RMSE のサマリー統計情報が表示されます。それぞれの値について、最小値、最大値、平均値、中央値、および標準偏差が表示されます。
メモ:
ジオプロセシング メッセージは、ツールの実行中に [ジオプロセシング] ウィンドウの下部に表示されます。このメッセージにアクセスするには、[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタン をクリックするか、メッセージ セクションを展開します。ジオプロセシング履歴を使用して、以前に実行したツールのメッセージにアクセスすることもできます。
出力フィーチャのフィールド
[オブジェクト ID]、ジオメトリ フィールド、およびポップアップ チャートを含むフィールドに加えて、[出力フィーチャ] には次のフィールドがあります:
- [ロケーション ID] (LOCATION) - 時空間キューブの対応する場所のロケーション ID です。
- [(時間ステップ) の (解析変数) の予測] (FCAST_1、FCAST_2など) - 各将来時間ステップにおける予測値です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは各予測時間ステップに対して作成されます。
- [(時間ステップ) の (解析変数) の区間の上限] (HIGH_1、HIGH_2など) - 各将来時間ステップにおける予測値に対する信頼区間 90 パーセントの上限です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは各予測時間ステップに対して作成されます。
- [(時間ステップ) の (解析変数) の区間の下限] (LOW_1、LOW_2など) - 各将来時間ステップにおける予測値に対する信頼区間 90 パーセントの下限です。フィールド エイリアスは [解析変数] の名前と予測日を表示します。このタイプのフィールドは各予測時間ステップに対して作成されます。
- [予測二乗平均平方根誤差] (F_RMSE) - 予測 RMSE です。
- [検証二乗平均平方根誤差] (V_RMSE) - 検証 RMSE です。検証で除外した時間ステップがない場合、このフィールドは作成されません。
- [タイム ウィンドウ] (TIMEWINDOW) - 場所に対して使用する時間ステップのウィンドウです。
- [季節性] (IS_SEASON) - 場所の時間ステップ ウィンドウがスペクトル密度によって決定されているかを示す Boolean 変数です。値 1 は季節性がスペクトル密度によって検出されていることを示し、値 0 は季節性が検出されていないことを示します。[タイム ウィンドウ] パラメーターで値が指定された場合、すべての場所でこのフィールドの値が 0 になります。
- [予測方法] (METHOD) - フォレスト モデルのパラメーター (ランダムなシード、ツリーの数、サンプルのサイズ、予測手法、および時間ステップ ウィンドウがユーザーによって指定またはツールによって決定されたかを含む) を表示するテキスト フィールドです。このフィールドは結果を再現するために使用し、[位置による予測評価 (Evaluate Forecasts By Location)] ツールで使用しているモデルを特定できます。
出力時空間キューブ
[出力時空間キューブ] を指定した場合、出力キューブは、入力時空間キューブからの元の値のすべてを、追加された予測値と共に含みます。新しい時空間キューブは、[時空間キューブを 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 のいずれかを使用して、位置ごとに最適な予測を識別します。
ベスト プラクティスおよび制限事項
このツールがデータに対して適切か否か、どのパラメーターを選択すべきか決定する際、いくつかの点を考慮すべきです。
- このツールは、[時系列予測] ツールセット内の他の予測ツールと比べて複雑ですが、データに関する仮説の数は最も少なくなります。形状とトレンドが複雑で、単純または平滑化の数学関数によってモデル化することが難しい時系列に対して使用することをお勧めします。また、他の方法の仮説が不十分な場合にもお勧めします。
- 検証で除外する時間ステップの数を決定することは重要なポイントです。除外する時間ステップを増やすと、検証モデルを推定する時間ステップが少なくなってしまいます。ただし、除外した時間ステップが少なすぎる場合、検証 RMSE は少ないデータ量を使用して推定を行うため、間違いやすくなります。検証モデルを推定するために十分な数の時間ステップを維持しつつ可能な限り多くの時間ステップを除外することをお勧めします。また、時空間キューブに十分な時間ステップがある場合は、少なくとも予測する時間ステップ数と同じ数の検証における時間ステップを保留することをお勧めします。
- このツールは、ある時系列で同じ値が何度も繰り返される場合に不安定または信頼性の低い予測を行うことがあります。同じ値が繰り返される一般的な原因は、データがカウント数を表し、多くの時間ステップで値が 0 になるゼロインフレーションです。
参考資料
このフォレスト モデルの詳細については、次の参考文献をご参照ください:
- Breiman, Leo. (2001). "Random Forests." Machine Learning 45 (1): 5-32. https://doi.org/10.1023/A:1010933404324.
- Breiman, L., J.H. Friedman, R.A. Olshen, and C.J. Stone. (2017). Classification and regression trees. New York: Routledge. Chapter 4.
フォレスト モデルの参考資料と参考文献については、「フォレストベースの分類と回帰分析の機能」をご確認ください。
タイム ウィンドウの長さを推定するために使用するスペクトル密度関数の詳細については、次の参考文献の 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.
フォレスト回帰分析モデルによる信頼区間構築の詳細については、次の参考文献をご参照ください:
- Meinshausen, Nicolai. "Quantile regression forests." Journal of Machine Learning Research 7. Jun (2006): 983-999.