カーブ フィット予測 (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 を使用して場所ごとに最適な予測をツールで判定できます。

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

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

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

  • [曲線タイプ] パラメーターの [自動検出] オプションは、それぞれの場所に 4 種類の曲線を当てはめ、検証 RMSE の最も小さいものを特定します。検証で時間ステップが除外されていない場合、予測 RMSE が最も小さい曲線が使用されます。

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

  • このツールは、予測結果の理解と視覚化に役立つよう、ジオプロセシング メッセージとポップアップ チャートを作成します。このメッセージには、時空間キューブの構造についての情報と、RMSE 値の統計の要約が含まれています。マップ操作 ナビゲーション ツールを使用してフィーチャをクリックすると、[ポップアップ] ウィンドウに時空間キューブの値、予測に使用された曲線、その場所について予測される値が表示されます。

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

構文

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

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

Feature Class
output_cube
(オプション)

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

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

コードのサンプル

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)
# Create a feature class visualizing the forecasts.
# Output can only be viewed in a Scene view.
arcpy.stpm.VisualizeSpaceTimeCube3D(r"outForecastCube.nc", "Pop_NONE_ZEROS", 
                                    "VALUE", "Analysis.gdb/ForecastsFC")

ライセンス情報

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

関連トピック