欠損値の補完 (Fill Missing Values) (時空間パターン マイニング)

概要

空間近傍、時空間近傍、または時系列の値に基づいて欠損 (NULL) 値を推定値に置き換えます。

欠損値の補完 (Fill Missing Values) ツールの詳細

[欠損値の補完 (Fill Missing Values)] ツールの図

使用法

  • 入力フィーチャ として、ポイントまたはポリゴンを指定できます。

  • 結果の出力には、[補完するフィールド] ごとに 3 つのフィールドが含まれます。1 つ目のフィールドには元の値と補完値が格納され、2 つ目のフィールドには、値が推定されたことを示すインジケーターが格納されます。推定フィールドでは元のフィールド名が維持されますが、次の命名規則を使用してフィールド エイリアスが作成されます。<field>_FILLED および <field>_ESTIMATED。追加される 3 つ目のフィールドは、各推定値の計算に使用される近傍数 <field>_ N_NEIGHBORS です。

  • 出力には、ターゲットの欠損値の計算に使用される近傍数と近傍値の範囲の理解に役立つ値が格納される追加フィールドも含まれます。[補完方法][平均値] の場合は、計算に使用された近傍の標準偏差 (<field>_STD) が報告されます。[最小値] の場合は最大近傍値が、[最大値] の場合は最小近傍値が報告されます。[補完方法][中央値] の場合は、近傍の平均絶対偏差が報告されます。欠損値が [時系列的トレンド] を使用して補完される場合、フィールドにはスプラインの二乗残差の合計が格納されます。The NNBRS フィールドには、推定値の計算に使用される近傍数が含まれています。

  • NULL 値が含まれていないフィールドを挿入できます。これらのフィールドは出力にコピーされますが、出力 (<field>_FILLED<field>_ESTIMATED など) 内で追加フィールドに関連付けられることはありません。別の方法として、出力に追加される [一意の ID] を指定できます。この値は、結果を再び [入力フィーチャクラス] に結合するために使用できます。

  • フィールド NUM_EST (関連テーブルを使用している場合は TOT_EST) は、関連付けられたレコードについて推定された変数の総数を示します。このフィールドは出力マップのレンダリングに使用されます。このフィールドは出力マップのレンダリングに使用されます。

  • このツールは、反復形状として保存されたか、関連テーブルとともに保存されたパネル データで使用できます。[ロケーション ID] が指定されている場合、このツールは、入力がパネル データであり、[時間フィールド] が必須であることを認識します。

  • [ロケーション ID] は整数フィールドで、一意の固定された位置を表している必要があります。時間の経過とともに異なる X,Y 座標を指定してはなりません。

  • [固定距離][隣接エッジのみ]、または [隣接エッジ コーナー][空間リレーションシップのコンセプト] として選択されている場合は、[距離バンド][時間近傍] を選択して、時空間ウィンドウをシミュレートできます。

  • [固定距離][隣接エッジのみ]、または [隣接エッジ コーナー][空間リレーションシップのコンセプト] として選択されている場合は、[空間近傍数] を設定して、近傍の最小数を指定できます。

  • [時系列的トレンド] に従って欠損値を補完するオプションは、[ロケーション ID] が指定されている場合のみ使用できます。さらに、[時間フィールド] も必要です。

  • [時系列的トレンド] を使用して値を補完する場合、充てん対象の NULL 値を埋めるには、その NULL 値の前と後に、値を持つ期間が 2 つずつ存在している必要があります。この要件のため、最初の 2 つの時間ステップまたは最後の 2 つの時間ステップに存在する NULL は常に、[時系列的トレンド] を使用して埋めることはできません。

  • [補完方法][時系列的トレンド] の場合は、SciPy 内挿パッケージ内にある Interpolated Univariate Spline 手法が使用されます。

  • 推定して埋めることができなかった欠損値は、最初にそれらの NULL が存在していた形式で出力に示されます。

  • パネル データの欠落値を空間近傍のみで埋めるときは、[時間近傍] を「0」に設定する必要があります。

  • データがパネル データの場合、時間でフィルターを設定する方法として [時間近傍] パラメーターを使用できます。または、[時間近傍] を「0」に設定すると、空間近傍のみを表示することもできます。

  • 結果として示された補完値を検査して、それらの値が解析で有意であることを確認することが重要です。たとえば、元のフィールドが整数であるときに、このツールが空間近傍の平均値を使用して補完するように設定された場合は、結果に小数が示されることになります。入力フィールドが個数の場合、これは有意ではない可能性があります。さらに、[時系列的トレンド] の使用時に適用される手法によっては、既存の値がいずれも負ではない場合でも、結果として負の数が取得されることがあります。補完するフィールドが人口を示す場合、これも有意ではありません。

  • フィールド N_NEIGHBORS は、フィーチャの計算に含まれる近傍数を報告します。[補完方法][時系列的トレンド] の場合、この数は [ロケーション ID] の時系列に存在する値の数を示します (たとえば、時系列で 1 つの値のみが欠落している場合は、データセット内の時間ステップ数から 1 を引いた値が報告されます)。[K 近傍][空間リレーションシップのコンセプト] および [時間近傍] を使用している場合、報告される近傍数には、指定したタイム ウィンドウ内に存在するフィーチャの k 近傍が含まれます。

  • ツールの実行中に、補完されるフィールドの分析と特性の詳細を示すメッセージ[ジオプロセシング] ウィンドウの下部に書き込まれます。このメッセージにアクセスするには、進行状況バーにマウス カーソルを合わせるか、ポップアップ ボタン ポップアップ をクリックするか、[ジオプロセシング] ウィンドウのメッセージ セクションを展開します。ジオプロセシング履歴を介して、以前に実行した [欠損値の補完 (Fill Missing Values)] ツールのメッセージにアクセスすることもできます。

構文

arcpy.stpm.FillMissingValues(in_features, out_features, fields_to_fill, fill_method, {conceptualization_of_spatial_relationships}, {distance_band}, {temporal_neighborhood}, {time_field}, {number_of_spatial_neighbors}, {location_id}, {related_table}, {related_location_id}, {weights_matrix_file}, {unique_id}, {null_value}, {out_table})
パラメーター説明データ タイプ
in_features

補完される NULL 値を含むフィーチャクラス。

Feature Layer
out_features

補完 (推定) 値を含む出力。

related_table が指定されている場合、out_features には位置ごとの推定値の数が格納され、out_table には補完 (推定) 値が格納されます。

Feature Class
fields_to_fill
[fields_to_fill,...]

欠損値 (NULL 値) を含む数値フィールド。

Field
fill_method

適用される計算のタイプ。TEMPORAL_TREND は、location_idtime_field が指定されている場合のみ使用できます。

  • AVERAGENULL 値をフィーチャの近傍の平均値に置き換えます。
  • MINIMUMNULL 値をフィーチャの近傍の最小値に置き換えます。
  • MAXIMUMNULL 値をフィーチャの近傍の最大値に置き換えます。
  • MEDIANNULL 値をフィーチャの近傍の中央値 (並べ替えたときの中央値) に置き換えます。
  • TEMPORAL_TREND一意の位置におけるトレンドに基づいて NULL 値を置き換えます。
String
conceptualization_of_spatial_relationships
(オプション)

フィーチャ間の空間リレーションシップをどのよう定義するかを指定します。

  • FIXED_DISTANCE指定された各フィーチャの臨界距離 (distance_band) 内にある隣接フィーチャが計算に含められます。臨界距離外のものはすべて除外されます。
  • K_NEAREST_NEIGHBORS 最も近い K 個のフィーチャが計算に含められます。K は指定した数値パラメーターです。
  • CONTIGUITY_EDGES_ONLY 境界またはオーバーラップを共有する隣接ポリゴンだけが、ターゲットのポリゴン フィーチャの計算に影響を与えます。
  • CONTIGUITY_EDGES_CORNERS 境界、ノード、またはオーバーラップを共有するポリゴン フィーチャはターゲットのポリゴン フィーチャの計算に影響を与えます。
  • GET_SPATIAL_WEIGHTS_FROM_FILE空間リレーションシップは、指定した空間ウェイト ファイルで定義されます。空間ウェイト ファイルへのパスは、Weights_Matrix_File パラメーターに指定します。
String
distance_band
(オプション)

FIXED_DISTANCE オプションの制限距離を指定します。ターゲット フィーチャに対して指定した制限から外れたフィーチャは、そのフィーチャの計算において無視されます。このパラメーターは、CONTIGUITY_EDGES_ONLYCONTIGUITY_EDGES_CORNERS に対しては使用できません。

Linear Unit
temporal_neighborhood
(オプション)

ターゲット フィーチャの計算にどのフィーチャを使用するかを決定するために前後の時間間隔を指定します。ターゲット フィーチャのこの間隔に含まれないフィーチャは、そのフィーチャの計算において無視されます。

Time Unit
time_field
(オプション)

データセット内の各レコードのタイムスタンプが格納されるフィールド。このフィールドは Date タイプである必要があります。

location_id が指定されている場合、このフィールドは必須です。

Field
number_of_spatial_neighbors
(オプション)

計算に含まれる最近傍の数。

FIXED_DISTANCECONTIGUITY_EDGES_ONLY、または CONTIGUITY_EDGES_CORNERS が選択されている場合、この数は、計算に含める近傍の最小数を示します。

Long
location_id
(オプション)

各位置を示す一意の ID 番号を含む整数フィールド。

location_id は、in_features のフィーチャと related_table の行を照合するか、一意のロケーション ID を指定して時間近傍を特定するために使用されます。

Field
related_table
(オプション)

in_features の時系列データが格納されるテーブルまたはテーブル ビュー。

Table View
related_location_id
(オプション)

リレートのキーとなる related_table が格納されている、location_id 内の整数フィールド。

Field
weights_matrix_file
(オプション)

フィーチャ間の空間リレーションシップ、および潜在的に時系列のリレーションシップを定義するウェイトが含まれたファイルへのパス。

File
unique_id
(オプション)

in_features のレコードごとに異なる値を持つ整数フィールド。このフィールドは、結果を再び元のデータセットに結合するために使用できます。

unique_id フィールドがない場合は、整数フィールドをフィーチャクラス テーブルに追加し、FID / OBJECTID フィールドに等しいフィールド値を計算することによって作成できます。

Field
null_value
(オプション)

NULL (欠損) 値を表す値。値が指定されない場合、<NULL> はジオデータベース フィーチャクラスを表すと見なされます。シェープファイルの入力では、NULL プレースホルダーの数値は必須です。

Double
out_table
(オプション)

補完 (推定) 値が格納される出力テーブル。

関連テーブルが入力されている場合、出力テーブルは必須です。

Table

コードのサンプル

FillMissingValues (欠損値の補完) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、FillMissingValuesツールの使用方法を示しています。

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.FillMissingValues_stpm("Chicago_Data", "Chicago_Filled", "COUNT", "AVERAGE",
                             "K_NEAREST_NEIGHBORS", "", "", "", 8)
FillMissingValues (欠損値の補完) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、FillMissingValues ツールの使用方法を示しています。

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d
#Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
try:
    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing we will fill them using the temporal trend method.
    arcpy.FillMissingValues_stpm("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")
    # Create a defined location space time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since we already filled using Fill Missing Values
    arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")
    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups which bound each other are considered neighbours
    arcpy.EmergingHotSpotAnalysis_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")
    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.VisualizeSpaceTimeCube3D_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")
except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

ライセンス情報

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

関連トピック