指数平滑法予測 (Exponential Smoothing Forecast) (時空間パターン マイニング)

概要

Holt-Winters 指数平滑法を使用し、各場所のキューブの時系列を季節的とトレンドの成分に分解して、時空間キューブの各場所における将来の値を予測します。

指数平滑法予測の動作の詳細

指数平滑法予測
指数平滑法予測は、将来の時間ステップの値を予測するために使用されます。

使用法

  • このツールでは、[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツール、[定義済みのフィーチャから時空間キューブを作成 (Create Space Time Cube From Defined Features)] ツール、および [多次元ラスター レイヤーから時空間キューブを作成 (Create Space Time Cube from Multidimensional Raster Layer)] ツールによって作成された netCDF ファイルを使用できます。

  • 時系列予測ツールセットの他の予測ツールと比べて、このツールは動向が中程度で、季節的動作が強いデータに推奨されます。指数平滑法のモデルでは、季節的な動作とトレンドが分離可能なものと想定するため、トレンドが次第に変化しながら、長期的に一貫した季節的パターンに従うデータで最も有効です。

  • [位置による予測評価 (Evaluate Forecasts by Location)] ツールを使用すると、予測された複数の時空間キューブを比較および結合できます。これによって、別々の予測ツールやパラメーターを使用して複数の予測キューブを作成し、予測 RMSE (二乗平均平方根誤差) または検証 RMSE を使用して場所ごとに最適な予測をツールで判定できます。

  • このツールは、[入力時空間キューブ] のそれぞれの場所について、異なる目的を果たす 2 つのモデルを構築します。

    • 予測モデル - このモデルは、時系列の値に指数平滑法を適用し、その平滑化を将来の時間ステップまで延長して外挿し、時空間キューブの将来の値を予測するため使用されます。予測モデルが時空間キューブの値にどの程度適合しているかは、予測 RMSE 値により測定されます。
    • 検証モデル - このモデルは、予測モデルを検証し、将来の値をどの程度正確に予測できるかをテストするために使用されます。[検証から除外する時間ステップ数] パラメーターに 0 より大きい数値が指定された場合、このモデルは除外されない時間ステップに当てはめられ、除外された時間ステップの値を予測するため使用されます。これにより、選択したモデルが将来の値をどれだけ的確に予測できるかを確認できます。予測される値が除外された値とどの程度適合しているかは、検証 RMSE 値により測定されます。

    予測モデル、検証モデル、RMSE 統計の詳細

  • [出力フィーチャ][コンテンツ] ウィンドウに追加され、最終的に予測された時間ステップに基づいてレンダリングされます。

  • このツールは、ジオプロセシング メッセージとポップアップ チャートを作成するので、予測結果の理解と視覚化に役立ちます。メッセージには、時空間キューブの構造と、RMSE 値および季節の長さの統計情報サマリーに関する情報が含まれます。[マップ操作] ナビゲーション ツールを使用してフィーチャをクリックすると、その場所の時空間キューブ、適合フォレスト値、予測値、信頼区間などの値を表示した [ポップアップ] ウィンドウに、ライン チャートが表示されます。

  • 検証のとき、どの程度の時間ステップを除外するかは重要な選択です。除外する時間ステップが多いほど、検証モデルを推定するため残る時間ステップは少なくなります。ただし、除外する時間ステップが少なすぎると、検証 RMSE は少量のデータを使用して推定されることになり、誤解を招きやすくなります。検証モデルを推定するため十分な時間ステップを残しながら、できるだけ多くの時間ステップを除外することをお勧めします。また、時空間キューブに十分な時間ステップが存在するなら、最低でも予測に使用する時間ステップと同じ数の時間ステップを検証用に保持することをお勧めします。

  • このツールは、指数平滑法モデルのすべての成分が加法的かつ線形的であると想定します。常に減衰されたトレンドが使用され、加法的な季節性はサポートされますが必須ではありません。モデルの残差は加法的なものと想定され、通常は分散されて信頼区間の計算に使用されます。

    指数平滑法モデルの成分の詳細

構文

ExponentialSmoothingForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, season_length, {number_for_validation})
パラメーター説明データ タイプ
in_cube

将来の時間ステップについて予測する変数を含む netCDF キューブ。このファイルは、*.nc ファイル拡張子が付加され、[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツール、[定義済みの場所から時空間キューブを作成 (Create Space Time Cube From Defined Locations)] ツール、または [多次元ラスター レイヤーから時空間キューブを作成 (Create Space Time Cube from Multidimensional Raster Layer)] ツールで作成されている必要があります。

File
analysis_variable

将来の時間ステップについて予測される、netCDF ファイル内の数値変数。

String
output_features

フィールドに予測値が格納された時空間キューブ内のすべての位置の出力フィーチャクラス。レイヤーには最終時間ステップの予測と、各位置の時系列、予測、および 90% の信頼区間を示すポップアップ チャートが表示されます。

Feature Class
output_cube
(オプション)

入力時空間キューブの値を含み、予測された時間ステップが追加された、新しい時空間キューブ (*.nc ファイル)。[時空間キューブを 3D で視覚化 (Visualize Space Time Cube in 3D)] ツールを使用して、観測および予測されたすべての値を同時に参照できます。

File
number_of_time_steps_to_forecast
(オプション)

予測する時間ステップ数を指定する正の整数。この値は、入力時空間キューブの合計時間ステップ数の 50% より大きくできません。デフォルト値は 1 時間ステップです。

Long
season_length

各場所での 1 つの季節に対応する時間ステップ数。データに複数の季節が存在する場合、最も信頼性の高い結果を得るため、最も長い季節を使用することをお勧めします。このパラメーターを空白のままにすると、場所ごとにツールによりスペクトル密度関数を使用して季節の長さが推定されます。

Long
number_for_validation
(オプション)

各時系列の最後で、検証のため除外する時間ステップ数。デフォルト値は入力時間ステップ数の 10% (端数切り捨て) で、この値は時間ステップ数の 25% より大きくできません。値 0 を指定すると、時間ステップは一切除外されません。

Long

コードのサンプル

ExponentialSmoothingForecast (指数平滑法予測) の例 1 (Python ウィンドウ)

次の Python スクリプトは、[ExponentialSmoothingForecast] ツールの使用方法を示します。

import arcpy
arcpy.env.workspace = "C:/Analysis"
# Forecast four time steps using exponential smoothing.
arcpy.stpm.ExponentialSmoothingForecast("Temperature.nc","Temp_NONE_ZEROS", 
                                        "Analysis.gdb/Forecasts", 
                                        "outForecastCube.nc", 4, 2, 5)
ExponentialSmoothingForecast (指数平滑法予測) の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、[ExponentialSmoothingForecast] ツールを使用して温度を予測する方法を示します。

# Forecast temperature using exponential smoothing.
# Import system modules.
import arcpy
# Set property to overwrite existing output.
arcpy.env.overwriteOutput = True
# Set workspace.
workspace = r"C:\Analysis"
arcpy.env.workspace = workspace
# Forecast three time steps.
arcpy.stpm.ExponentialSmoothingForecast("Temperature.nc","Temp_NONE_ZEROS", 
                                        "Analysis.gdb/Forecasts", 
                                        "outForecastCube.nc", 3, 2, 5)
12345678901234567890123456789012345671234567890123456789012345678901234567890890
# Create a feature class visualizing the forecasts.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Temp_NONE_ZEROS", 
                                    "VALUE", "Analysis.gdb/ForecastsFC")

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック