カーブ フィット予測 (Curve Fit Forecast) (時空間パターン マイニング)

サマリー

カーブ フィットを使用して時空間キューブの各場所における値を予測します。

このツールは、[入力時空間キューブ] パラメーター値の各場所にパラメーター曲線をフィッティングし、その曲線を将来の時間ステップに延長して外挿することで、時系列を予測します。 カーブは、線形、放物線、S 字型 (ゴンペルツ)、または指数のいずれかです。 時空間キューブの各位置で同じ曲線タイプを使用することも、各位置に最も合う曲線タイプをツールによって設定することもできます。

カーブ フィット予測の動作の詳細

カーブ フィット予測ツールの図
4 つの曲線タイプを示しています。

使用法

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

  • 時系列予測 (Time Series Forecasting)」ツールセットの他の予測ツールと比べて、このツールは最も単純明快で、強い季節性が示されない予測可能な動向に従う時系列に最適です。 データが複雑な動向に従う、または強い季節性サイクルが示されている場合は、他の予測ツールを使用してください。

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

  • [入力時空間キューブ] パラメーター値の各場所について、ツールは異なる目的に対応する次のようなモデルを構築します。

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

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

  • [曲線タイプ] パラメーターの [自動検出] オプションは、各場所で 4 つの曲線タイプすべてにフィットし、検証 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
出力フィーチャ

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

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

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

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

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

Long
曲線タイプ
(オプション)

入力時空間キューブの値を予測するため使用される「曲線タイプ」を指定します。

  • リニア時系列は時間とともに線形的に増加または減少します。
  • 放物線時系列は時間につれて放物線または二次曲線を描きます。
  • 指数時系列は時間とともに指数的に増加または減少します。
  • S 型 (ゴンペルツ)時系列は時間とともに S 字を描いて増加または減少します。
  • 自動検出それぞれの場所について、4 種類の曲線すべてが実行され、検証 RMSE の最も小さいモデルが提供されます。 検証でタイム スライスが除外されていない場合、予測 RMSE が最も小さいモデルが使用されます。 これがデフォルトです。
String
検証から除外する時間ステップ数
(オプション)

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

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

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

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

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

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

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

Long

arcpy.stpm.CurveFitForecast(in_cube, analysis_variable, output_features, {output_cube}, {number_of_time_steps_to_forecast}, {curve_type}, {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

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

Feature Class
output_cube
(オプション)

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

File
number_of_time_steps_to_forecast
(オプション)

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

Long
curve_type
(オプション)

入力時空間キューブの値を予測するため使用される「曲線タイプ」を指定します。

  • LINEAR時系列は時間とともに線形的に増加または減少します。
  • PARABOLIC時系列は時間につれて放物線または二次曲線を描きます。
  • EXPONENTIAL時系列は時間とともに指数的に増加または減少します。
  • GOMPERTZ時系列は時間とともに S 字を描いて増加または減少します。
  • AUTO_DETECTそれぞれの場所について、4 種類の曲線すべてが実行され、検証 RMSE の最も小さいモデルが提供されます。 検証でタイム スライスが除外されていない場合、予測 RMSE が最も小さいモデルが使用されます。 これがデフォルトです。
String
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

コードのサンプル

CurveFitForecast の例 1 (Python ウィンドウ)

次の Python スクリプトは、CurveFitForecast 関数の使用方法を示しています。

import arcpy
arcpy.env.workspace = "C:/Analysis"

# Forecast four time steps using a linear curve.
arcpy.stpm.CurveFitForecast("Population.nc", "Pop_NONE_ZEROS", 
                            "Analysis.gdb/Forecasts", 
                            "outForecastCube.nc", 4, 
                            "LINEAR", 5)
CurveFitForecast (カーブ フィット予測) の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、CurveFitForecast 関数を使用して人口を予測する方法を示します。

# Forecast population levels using curve fitting.

# 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 using auto-detect.
arcpy.stpm.CurveFitForecast("Population.nc", "Pop_NONE_ZEROS", 
                            "Analysis.gdb/Forecasts", "outForecastCube.nc",
                            3, "AUTO_DETECT", 5, "IDENTIFY", "90%", 4)

# Create a feature class visualizing the forecasts.
# Output can only be viewed in a Scene view.
arcpy.stpm.VisualizeSpaceTimeCube3D("outForecastCube.nc", "Pop_NONE_ZEROS", 
                                    "VALUE", "Analysis.gdb/ForecastsFC")