空間的外れ値の検出 (Spatial Outlier Detection) (空間統計)

サマリー

ポイント フィーチャのグローバルまたはローカルの空間的外れ値を特定します。

グローバル外れ値は、フィーチャクラスの他のすべてのポイントから遠く離れているポイントを示します。 グローバル外れ値を検出するには、それぞれのポイントと、そのポイントに最も近い近傍の 1 つ (デフォルトでは最近隣近傍) の間の距離を調べて、その距離が遠いポイントを検出します。

ローカル外れ値は、周辺のエリア内のポイント密度で想定されるよりも遠くに近傍から離れているポイントを示します。 ローカル外れ値を検出するには、各フィーチャのローカル外れ値要因 (LOF) を計算します。 LOF は、あるロケーションがローカルの近傍と比べてどの程度分離されているかを示す基準です。 LOF 値が高いほど、分離度が高いことを示します。 また、このツールを使用して、ラスター推定サーフェスを作成できます。これは、新しいフィーチャが、データの空間的分布に基づいて外れ値として分類されるかを見積もるのに使用されます。

空間的外れ値の検出ツールの詳細

空間的外れ値の検出ツールのイラスト

使用法

  • このツールは、[入力フィーチャ] パラメーターで提供されたポイントを、空間的外れ値または空間的内在値として特定します。 [空間的外れ値のみを保持] パラメーターを使用すると、外れ値として特定されたポイントのみを返すことができます。

  • ツールでは、各フィーチャ周辺のローカルの近隣を使用します。これは [近傍数] パラメーターで指定されます。 ローカル外れ値の検出では、近隣内にあるすべてのポイントが使用され、実行時にツールによってデフォルトが推定されます。 グローバル外れ値の検出では、近隣で最も遠い場所にある近傍のみが使用され、デフォルトは 1 (最近隣近傍) です。 たとえば、値 3 は、グローバル外れ値が、各ポイントから 3 番目に近い近傍までの距離を使用して検出されたことを示します。

  • ローカル外れ値の検出の場合は、[外れ値と考えられるロケーションの割合] パラメーターを使用して、LOF の閾値を設定し、各ポイント フィーチャを外れ値または内在値として指定します。

    注意:

    [外れ値と考えられるロケーションの割合] パラメーターの値における小さな差が、外れ値として指定される出力フィーチャの同じ数になることがあります。 これは、フィーチャの空間的分布における類似性が複数のフィーチャで同じ LOF 値になったときに発生します。

  • 出力レイヤーには 2 つのチャートが含まれます。 1 つ目は、外れ値と内在値の数を表示するバー チャートです。 2 つ目はヒストグラムです。 ローカル外れ値の検出では、すべてのポイント フィーチャの LOF 値の分布と、フィーチャが外れ値か内在値かを決定するために使用される LOF 閾値がヒストグラムに表示されます。 グローバル外れ値の検出では、近傍の距離の分布と関連する閾値がヒストグラムに表示されます。

  • [入力フィーチャ] パラメーター値に Z 座標がある場合、ツールは、3D 空間の空間的外れ値を検出して、データの 3D の性質を優先します。 シーン ビューに追加されると、出力フィーチャは、3D で表示し、3D の空間的外れ値を視覚化します。 Z 座標の単位 (メートルなど) が垂直座標系で定義されていない場合、単位は、XY 座標と同じであると想定されます。

  • [出力予測ラスター] パラメーターは、各セルが外れ値かどうかを決定するための値を、分析範囲全体にわたる連続サーフェスとして表示するオプションの出力です。 ローカル外れ値の検出の場合、セルで計算された LOF 値がラスターに格納されます。 グローバル外れ値の検出の場合、最近隣近傍までの距離がラスターに格納されます。 この出力は、将来の観測値が、新しいポイントの値の再計算が不要な外れ値かどうかを判断するときに使用できます。 この出力は、2D 入力フィーチャでのみ作成可能です。

    注意:

    ポイントの近傍の距離と LOF 値は、それらのポイントがラスターのセルの中心に一致する場合でも、各ポイントの下にあるラスター セルの値に一致しません。 これは、フィーチャがそれ自体を近傍として使用しないが、ラスター セルはフィーチャを近傍として使用するためです。この結果、各計算では異なる近傍が使用され、異なる値が生成されます。

  • ローカルの外れ値要因と最適化パラメーターの詳細については、次の資料をご参照ください。

    • Breunig, M. M., Kriegel, H. P., Ng, R. T., Sander, J. (2000). "LOF: identifying density-based local outliers." Proceedings of the 2000 ACM SIGMOD international conference on Management of data. (pp. 93-104).
    • Xu, Z., Kakde, D., Chaudhuri, A. (2019). "Automatic Hyperparameter Tuning Method for Local Outlier Factor, with Applications to Anomaly Detection." 2019 IEEE International Conference on Big Data. (pp. 4201-4207).

パラメーター

ラベル説明データ タイプ
入力フィーチャ

空間的外れ値検出モデルの構築に使用されるポイント フィーチャ。 各ポイントは、ローカルの外れ値要因に基づき、外れ値または内在値として分類されます。

Feature Layer
出力フィーチャ

各ポイント フィーチャのローカルの外れ値要因を含む出力フィーチャクラス。また、ポイントが空間的外れ値かどうかのインジケーターとしても使用されます。

Feature Class
近傍数
(オプション)

各入力ポイントの空間的外れ値を検出するために使用される近傍の数。

ローカル外れ値の検出では、この値を 2 以上にする必要があり、近隣内にあるすべてのフィーチャが近傍として使用されます。 値が指定されないと、値はランタイムで見積もられ、ジオプロセシング メッセージとして表示されます。

グローバル外れ値の検出では、近隣で最も遠い場所にある近傍のみが使用され、デフォルトは 1 (最近隣近傍) です。 たとえば、値 3 は、グローバル外れ値が、各ポイントから 3 番目に近い近傍までの距離を使用して検出されたことを示します。

Long
外れ値と考えられるロケーションの割合
(オプション)

ローカルの外れ値要因の閾値の定義により、空間的外れ値として特定されるロケーションの割合。 値が指定されないと、値はランタイムで見積もられ、ジオプロセシング メッセージとして表示されます。 最大でフィーチャの 50 パーセントを空間的外れ値として特定できます。

Double
出力予測ラスター
(オプション)

各セルにローカルの外れ値要因を含む出力ラスターで、入力フィーチャの空間的分布に基づき計算されます。

このパラメーターは Desktop Advanced ライセンスでのみ利用可能です。

Raster Dataset
外れ値タイプ
(オプション)

検出される外れ値のタイプを指定します。 グローバル外れ値は、フィーチャクラスの他のすべてのポイントから遠く離れているポイントを示します。 ローカル外れ値は、周辺のエリア内のポイント密度で想定されるよりも遠くに近傍から離れているポイントを示します。

  • グローバル入力ポイントのグローバル外れ値が検出されます。 これがデフォルトです。
  • ローカル入力ポイントのローカル外れ値が検出されます。
String
検出感度
(オプション)

グローバル外れ値の検出に使用される感度レベルを指定します。 感度が高いほど、外れ値として検出されるポイントの数が多くなります。

感度の値は閾値を決定し、近傍の距離がこの閾値よりも大きいポイントがグローバル外れ値として識別されます。 この閾値は箱ひげ図ルールを使用して決定され、高い感度の閾値は、第 3 四分位の上の 1 四分位範囲になります。 中程度の感度の閾値は、第 3 四分位の上の 1.5 四分位範囲になります。 低い感度の閾値は、第 3 四分位の上の 2 四分位範囲になります。

  • 外れ値が、低い感度を使用して検出されます。 このオプションを使用すると、検出される外れ値の数が最も少なくなります。
  • 外れ値が、中程度の感度を使用して検出されます。 これがデフォルトです。
  • 外れ値が、高い感度を使用して検出されます。 このオプションを使用すると、検出される外れ値の数が最も多くなります。
String
空間的外れ値のみを保持
(オプション)

出力フィーチャに、すべての入力フィーチャが格納されるか、空間的外れ値として特定されたフィーチャのみが格納されるかを指定します。

  • オン - 出力フィーチャに、空間的外れ値として特定されたフィーチャのみが格納されます。
  • オフ - 出力レイヤーに、すべての入力フィーチャが格納されます。 これがデフォルトです。

Boolean

arcpy.stats.SpatialOutlierDetection(in_features, output_features, {n_neighbors}, {percent_outlier}, {output_raster}, {outlier_type}, {sensitivity}, {keep_type})
名前説明データ タイプ
in_features

空間的外れ値検出モデルの構築に使用されるポイント フィーチャ。 各ポイントは、ローカルの外れ値要因に基づき、外れ値または内在値として分類されます。

Feature Layer
output_features

各ポイント フィーチャのローカルの外れ値要因を含む出力フィーチャクラス。また、ポイントが空間的外れ値かどうかのインジケーターとしても使用されます。

Feature Class
n_neighbors
(オプション)

各入力ポイントの空間的外れ値を検出するために使用される近傍の数。

ローカル外れ値の検出では、この値を 2 以上にする必要があり、近隣内にあるすべてのフィーチャが近傍として使用されます。 値が指定されないと、値はランタイムで見積もられ、ジオプロセシング メッセージとして表示されます。

グローバル外れ値の検出では、近隣で最も遠い場所にある近傍のみが使用され、デフォルトは 1 (最近隣近傍) です。 たとえば、値 3 は、グローバル外れ値が、各ポイントから 3 番目に近い近傍までの距離を使用して検出されたことを示します。

Long
percent_outlier
(オプション)

ローカルの外れ値要因の閾値の定義により、空間的外れ値として特定されるロケーションの割合。 値が指定されないと、値はランタイムで見積もられ、ジオプロセシング メッセージとして表示されます。 最大でフィーチャの 50 パーセントを空間的外れ値として特定できます。

Double
output_raster
(オプション)

各セルにローカルの外れ値要因を含む出力ラスターで、入力フィーチャの空間的分布に基づき計算されます。

このパラメーターは Desktop Advanced ライセンスでのみ利用可能です。

Raster Dataset
outlier_type
(オプション)

検出される外れ値のタイプを指定します。 グローバル外れ値は、フィーチャクラスの他のすべてのポイントから遠く離れているポイントを示します。 ローカル外れ値は、周辺のエリア内のポイント密度で想定されるよりも遠くに近傍から離れているポイントを示します。

  • GLOBAL入力ポイントのグローバル外れ値が検出されます。 これがデフォルトです。
  • LOCAL入力ポイントのローカル外れ値が検出されます。
String
sensitivity
(オプション)

グローバル外れ値の検出に使用される感度レベルを指定します。 感度が高いほど、外れ値として検出されるポイントの数が多くなります。

感度の値は閾値を決定し、近傍の距離がこの閾値よりも大きいポイントがグローバル外れ値として識別されます。 この閾値は箱ひげ図ルールを使用して決定され、高い感度の閾値は、第 3 四分位の上の 1 四分位範囲になります。 中程度の感度の閾値は、第 3 四分位の上の 1.5 四分位範囲になります。 低い感度の閾値は、第 3 四分位の上の 2 四分位範囲になります。

  • LOW外れ値が、低い感度を使用して検出されます。 このオプションを使用すると、検出される外れ値の数が最も少なくなります。
  • MEDIUM外れ値が、中程度の感度を使用して検出されます。 これがデフォルトです。
  • HIGH外れ値が、高い感度を使用して検出されます。 このオプションを使用すると、検出される外れ値の数が最も多くなります。
String
keep_type
(オプション)

出力フィーチャに、すべての入力フィーチャが格納されるか、空間的外れ値として特定されたフィーチャのみが格納されるかを指定します。

  • KEEP_OUTLIER出力フィーチャに、空間的外れ値として特定されたフィーチャのみが格納されます。
  • KEEP_ALL出力レイヤーに、すべての入力フィーチャが格納されます。 これがデフォルトです。
Boolean

コードのサンプル

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

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


arcpy.stats.SpatialOutlierDetection("Transaction_Locations", 
            "Transactions_SpatialOutliers", 20, 5, 
            "Transactions_OutliersPredictionSurface")
SpatialOutlierDetection の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、SpatialOutlierDetection 関数の使用方法を示しています。


# Import system modules.
import arcpy

try:
    # Set the workspace and input features.
    arcpy.env.workspace = 'C:\\SpatialOutlierDetection\\MyData.gdb'
    inputFeatures = "PM25_AirQualityStations"

    # Set the name of the output features
    outputFeatures = "AirQualityStations_SpatialOutliers"

    # Set the number of neighbors
    numberNeighbors = 8

    # Set the percentage of locations considered outliers
    pcntLocationsAsOutliers = 10

    # Set the output prediction raster
    outputPredictionRaster = airQualityStations_OutPredictionRaster


    # Run the Spatial Outlier Detection tool
    arcpy.stats.SpatialOutlierDetection(inputFeatures, outputFeatures, 
            numberNeighbors, pcntLocationsAsOutliers, outputPredictionRaster)

except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the error message.
    print(arcpy.GetMessages())

環境

特殊なケース

セル サイズ

この環境は、出力ラスターにのみ影響します。

マスク

この環境は、出力ラスターにのみ影響します。

スナップ対象ラスター

この環境は、出力ラスターにのみ影響します。

範囲

この環境は、出力ラスターにのみ影響します。