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

サマリー

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

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

指数平滑法予測 (Exponential Smoothing Forecast) ツールの図
[指数平滑法予測 (Exponential Smoothing Forecast)] ツールは、将来の時間ステップの値を予測するために使用されます。

使用法

  • このツールでは、[ポイントの集約による時空間キューブの作成 (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 は少量のデータを使用して推定されることになり、誤解を招きやすくなります。 検証モデルの評価に十分な時間ステップを維持しながら、できる限り多くの時間ステップを除外することをお勧めします。 また、時空間キューブに十分な時間ステップが存在するなら、最低でも予測に使用する時間ステップと同じ数の時間ステップを検証用に保持することをお勧めします。

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

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

パラメーター

ラベル説明データ タイプ
入力時空間キューブ

将来の時間ステップについて予測する変数を含む 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
分析変数

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

String
出力フィーチャ

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

Feature Class
出力時空間キューブ
(オプション)

入力時空間キューブの値を含み、予測された時間ステップが追加された、新しい時空間キューブ (.nc ファイル)。 [時空間キューブ レイヤーの作成 (Make Space Time Cube Layer)] ツールを使用して、時空間キューブ レイヤーを作成し、観測および予測されるすべての値を同時に表示できます。

File
予測する時間ステップ数
(オプション)

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

Long
季節の長さ

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

Long
検証から除外する時間ステップ数
(オプション)

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

Long
外れ値オプション
(オプション)

統計的に有意な時系列外れ値が特定されるかどうかを指定します。

  • なし外れ値は特定されません。 これがデフォルトです。
  • 外れ値の特定一般化 ESD 検定を使用して、外れ値が特定されます。
String
信頼度
(オプション)

時系列外れ値のテストで使用する信頼度を指定します。

  • 90%テストに使用される信頼度は 90 パーセントです。 これがデフォルトです。
  • 95%テストに使用される信頼度は 95 パーセントです。
  • 99%テストに使用される信頼度は 99 パーセントです。
String
外れ値の最大数

各場所で外れ値を宣言できる時間ステップの最大数。 デフォルト値は、入力時空間キューブの時間ステップ数の 5 パーセント (端数切り捨て) に相当します (1 以上の値が必ず使用されます)。 この値は、時間ステップ数の 20 パーセントを超えることはできません。

Long

arcpy.stpm.ExponentialSmoothingForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, season_length, {number_for_validation}, {outlier_option}, {level_of_confidence}, maximum_number_of_outliers)
名前説明データ タイプ
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 ファイル)。 [時空間キューブ レイヤーの作成 (Make Space Time Cube Layer)] ツールを使用して、時空間キューブ レイヤーを作成し、観測および予測されるすべての値を同時に表示できます。

File
number_of_time_steps_to_forecast
(オプション)

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

Long
season_length

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

Long
number_for_validation
(オプション)

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

Long
outlier_option
(オプション)

統計的に有意な時系列外れ値が特定されるかどうかを指定します。

  • NONE外れ値は特定されません。 これがデフォルトです。
  • IDENTIFY一般化 ESD 検定を使用して、外れ値が特定されます。
String
level_of_confidence
(オプション)

時系列外れ値のテストで使用する信頼度を指定します。

  • 90%テストに使用される信頼度は 90 パーセントです。 これがデフォルトです。
  • 95%テストに使用される信頼度は 95 パーセントです。
  • 99%テストに使用される信頼度は 99 パーセントです。
String
maximum_number_of_outliers

各場所で外れ値を宣言できる時間ステップの最大数。 デフォルト値は、入力時空間キューブの時間ステップ数の 5 パーセント (端数切り捨て) に相当します (1 以上の値が必ず使用されます)。 この値は、時間ステップ数の 20 パーセントを超えることはできません。

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,
                                        "IDENTIFY", "90%", 4)
# Create a feature class visualizing the forecasts.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Temp_NONE_ZEROS", 
                                    "VALUE", "Analysis.gdb/ForecastsFC")