最適化外れ値分析 (Optimized Outlier Analysis) (空間統計)

サマリー

インシデント ポイントまたは重み付きフィーチャ (ポイントまたはポリゴン) に基づいて、Anselin Local Moran's I 統計を使用し、統計的に有意なホット スポット、コールド スポット、および空間的な外れ値のマップを作成します。 最適な結果を得るために、入力フィーチャクラスの特性が評価されます。

最適化外れ値分析ツールの詳細

最適化外れ値分析ツールの図

使用法

  • このツールは、統計的に有意な高い値および低い値の空間クラスター (ホット スポットとコールド スポット) と、データセット内で高い/低い外れ値を特定します。 自動的にインシデント データが集約され、適切な分析の尺度が決定され、多重検定と空間依存性の両方に対して補正されます。 このツールは、最適なクラスター/外れ値分析結果を取得する設定を決めるために、データを調べます。 これらの設定を完全に制御したい場合は、代わりに [クラスター/外れ値分析 (Cluster and Outlier Analysis)] ツールを使用してください。

    注意:

    インシデント データは、イベント (犯罪、交通事故など) またはオブジェクト (樹木、店舗など) を表すポイントです。これらのポイントでは、各ポイントに関連付けられて測定される属性ではなく、インシデント データの有無に焦点が当てられます。

  • 最適なクラスター/外れ値分析結果を得るために使用された、計算された設定は、ツールの実行中にメッセージとしてレポートされます。 関連するワークフローとアルゴリズムが、「最適化外れ値分析 (Optimized Outlier Analysis) の詳細」で説明されています。

  • このツールは、[入力フィーチャクラス] の各フィーチャの Local Moran's I インデックス (LMiIndex)、Z スコア、疑似 p 値、およびクラスター/外れ値タイプ (COType) を含む新しい [出力フィーチャクラス] を作成します。 また、フィールド (NNeighbors) に、各フィーチャが計算に使用した近隣の数が含められます。

  • このツールの出力には、分析する変数 ([分析フィールド] または各ポリゴン内のインシデント数のいずれか) の値をチャート化するヒストグラムが含まれます。 チャートには、[コンテンツ] ウィンドウの出力フィーチャクラスの下でアクセスできます。

  • COType フィールドは、統計的に有意な高い/低いクラスター (HHLL) および高い/低い外れ値 (HLLH) を特定し、FDR (False Discovery Rate) 補正を使用して多重検定空間依存性に対して修正されます。

  • Z スコアと p 値は、フィーチャごとに帰無仮説を棄却すべきかどうかを判断する統計的有意性の尺度です。 実際、この尺度は、見かけの類似性 (高いまたは低い値の空間クラスター) や相違 (空間的な外れ値) が、ランダムな分布で期待されるよりも顕著であるかどうかを示しています。 出力フィーチャクラスの Z スコアと p 値は、FDR (False Discovery Rate) 補正を反映しません。 Z スコアと p 値の詳細については、「Z スコアとは、 p 値とは」をご参照ください。

  • フィーチャの Z 値が高い正の値である場合は、周囲のフィーチャの値が同様である (高い値または低い値) ことを示しています。 [出力フィーチャクラス]COType フィールドは、高い値を持つ統計的に有意なクラスターの場合は HH になり、低い値を持つ統計的に有意なクラスターの場合は LL になります。

  • フィーチャの Z スコアが低い負の値 (-3.96 未満など) である場合は、統計的に有意な空間データの外れ値であることを示しています。 [出力フィーチャクラス]COType フィールドは、高い値を持つフィーチャが低い値を持つフィーチャに取り囲まれている場合は HL になり、低い値を持つフィーチャが高い値を持つフィーチャに取り囲まれている場合は LH になります。

  • COType フィールドは常に、FDR (False Discovery Rate) 補正された 95 % の信頼度で統計的に有意なクラスターおよび外れ値を示します。 統計的に有意なフィーチャのみで、COType フィールドに値が含まれます。

  • [入力フィーチャクラス] が投影されていない場合 (つまり、座標が、度、分、および秒で与えられた場合)、または出力座標系地理座標系に設定された場合、弦の測定値を使用して距離が計算されます。 弦距離の測定値が使用されるのは、少なくとも互いに約 30° の範囲内のポイントに対して、すばやく算出され、実際の測地距離に非常に近い推定値が得られるという理由からです。 弦距離は、扁平回転楕円体に基づいています。 地球の表面上の 2 点が与えられた場合、2 点間の弦の距離は、3 次元の地球内部を通過して 2 点を接続するラインの長さになります。 弦距離は、メートル単位でレポートされます。

    注意:

    分析範囲が 30°を越えて広がる場合、必ずデータを投影してください。 30°を超える場合、弦距離は測地距離の良好な推定値にはなりません。

  • 入力フィーチャとして、ポイントまたはポリゴンを指定できます。 ポリゴンの場合、[分析フィールド] は必須です。

  • [分析フィールド] を指定する場合、さまざまな値を含める必要があります。 この統計計算では、分析する変数に変異が存在する必要があります。たとえば、入力値がすべて 1 の場合、解は存在しません。

  • このツールは、[分析フィールド] で指定された、サンプリングされたデータを含むあらゆるデータ (ポイントまたはポリゴン) を適切に処理できます。 実際、このツールは、オーバーサンプリングが存在する場合でも効果的であり、信頼できます。 フィーチャの数が多い場合 (オーバーサンプリング)、ツールは、正確で信頼できる結果を計算するための多くの情報を得ることができます。 フィーチャの数が少ない場合 (アンダーサンプリング) でも、ツールは、正確で信頼できる結果を生成するために、可能なことをすべて実行します。ただし、処理される情報は少なくなります。

  • ポイント データでは、各ポイント フィーチャに関連付けられたデータ値の解析に関心がある場合があります。その場合、[分析フィールド] を指定します。 その他のケースでは、ポイントの位置またはポイント インシデントの空間パターン (クラスタリング) を評価することのみが必要になります。 [分析フィールド] を指定するかどうかは、質問の内容によって変わります。

    • [分析フィールド] を使用してポイント フィーチャを分析することで、「高い/低い値のクラスターはどこか」のような質問に答えることができます。
    • 選択する分析フィールドは以下のいずれかを表します。
      • 個数 (交差点での交通事故件数など)
      • 比率 (都市の失業率など。ここで各都市は、ポイント フィーチャで表されます)
      • 平均 (学校間のテスト スコアの平均計算など)
      • インデックス (郡の車の販売代理店に関する顧客満足度など)
    • [分析フィールド] がない場合にポイント フィーチャを分析することで、ポイントのクラスタリングが異常 (統計的に有意な程度) に密集しているかまばらな場所を識別できます。 この種の分析は、「多くのポイントが存在する場所はどこか」、 「ポイントが非常に少ない場所はどこか」のような質問に答えることができます。
  • [分析フィールド] を指定しない場合、このツールは、分析フィールドとして使用するポイント数を得るために、ポイントを集約します。 以下の 3 種類の集約方法を指定できます。

    • フィッシュネット グリッド内のインシデント数および六角形グリッド内のインシデント数の場合、適切なポリゴン セルのサイズが計算され、フィッシュネットまたは六角形のポリゴン メッシュの作成に使用されます。これは、インシデント ポリゴン上に配置され、各ポリゴン セル内のポイント数が計算されます。 [インシデント範囲境界ポリゴン] フィーチャ レイヤーを指定しない場合、ポイント数がゼロのセルが削除され、残りのセルのみが分析されます。 境界ポリゴン フィーチャ レイヤーを指定した場合、境界ポリゴンに含まれるすべてのセルが保持されて、分析されます。 各ポリゴン セルのポイント数は、分析フィールドとして使用されます。
      注意:

      一般的に使用される集約形状はフィッシュネット グリッドですが、特定の解析では、六角形のオプションの方が適している場合があります。

    • [集約ポリゴン内のインシデント数] の場合、[インシデント集約境界ポリゴン] フィーチャ レイヤーを指定する必要があります。 各ポリゴンに含まれるポイント インシデント数が計算されます。関連するカウントを含めたこれらのポリゴンが、分析されます。 [集約ポリゴン内のインシデント数] オプションは、ポイントが行政地名 (地域、群、学区など) に関連する場合に適した集約方法です。 比較操作を強化するために、複数の分析にまたがって分析範囲を固定したい場合にも、このオプションを使用できます。
    • [加重ポイントの作成のため近傍インシデントをスナップ] の場合、スナップ距離が計算され、近傍インシデント ポイントの集約に使用されます。 集約された各ポイントには、一緒にスナップされたインシデントの数を反映するカウントが与えられます。 次に、集約されたポイントは、インシデント数を分析フィールドとして使用して分析されます。 [加重ポイントの作成のため近傍インシデントをスナップ] は、多くのポイントが同じ位置または近い位置にあり、元のポイント データの空間パターンの特徴を維持したい場合に適した集約方法です。

    注意:
    多くの場合、[加重ポイントの作成のため近傍インシデントをスナップ][フィッシュネット グリッド内のインシデント数] および [六角形グリッド内のインシデント数] を試してみて、どちらの結果が元のポイント データの空間パターンをよく反映しているかを確認したほうがよいでしょう。 フィッシュネットおよび六角形による方法は、ポイント インシデントのクラスターを人為的に分割しますが、人によっては、重み付きポイントの出力よりも、この出力の方が解釈しやすいことがあります。 最も一般的に使用される集約形状はフィッシュネット グリッドですが、特定の解析では、六角形のオプションの方が適している場合があります。

    注意:

    [分析フィールド] を指定しないポイント データの分析は、すべて既知のポイント インシデントが存在し、分析するポイントの分布に偏りがないことが確実である場合にのみ意味があります。 サンプリングされたデータでは、ほとんどの場合 (サンプリング方法の空間パターンに特に興味がなければ)、[分析フィールド] を含めます。

  • インシデント データ集約方法として [フィッシュネット グリッド内のインシデント数] または [六角形グリッド内のインシデント数] を選択した場合、オプションで [インシデント範囲境界ポリゴン] を指定できます。 境界ポリゴンを指定しないと、ツールは、インシデントのない場所をゼロに設定して、インシデントが発生する可能性があるが発生していないことを示すべきかどうかを判断できず、インシデントが発生する可能性がない場所を分析から削除するべきかどうかを判断することもできません。 その結果、境界ポリゴンを指定しない場合、1 つ以上のインシデントを含むセルのみが分析の対象として保持されます。 このような動作を望まない場合は、境界ポリゴン内のすべての場所を確実に保持するように、[インシデント範囲境界ポリゴン] フィーチャ レイヤーを指定できます。 インシデントを含まないフィッシュネットまたは六角形のセルには、インシデント数としてゼロが与えられます。

  • インシデント範囲境界ポリゴンにもインシデント集約境界ポリゴンにも含まれないインシデントは、すべて分析から除外されます。

  • [パフォーマンス調整] パラメーターは、分析に使用する順列の数を指定します。 順列の数を選択する場合は、精度と処理時間の増加とのバランスを考慮します。 順列の数を多くすると、疑似 p 値の範囲が広くなり、結果的に精度が上がります。

  • 順列を使用すると、分析する値の実際の空間分布が検出される可能性がどれくらいあるかを判断できます。 順列を実行するごとに、各フィーチャの周囲の近傍値がランダムに並べ替えられ、Local Moran's I 値が算出されます。 この計算結果が値の基準分布になり、観測値がランダム分布の中から検出される確率を求めるために実際の観測対象の Moran's I と比較されます。 順列の数はデフォルトで 199 に設定されていますが、順列の数を増やすと、ランダム標本分布が広範になり、これに伴って疑似 p 値の精度も上がります。

  • ツールはデータの特性に基づいて、最適な分析の尺度を計算します。または、[設定を上書き][距離バンド] パラメーターを使用して、分析の尺度を設定できます。 この距離の近傍がないフィーチャの場合、各フィーチャが少なくとも 1 つの近傍を持つように [距離バンド] が延長されます。

  • グリッドのセル サイズと分析の尺度に最適なデフォルト値をツールで選択する代わりに、[設定を上書き] を使用して、解析の [セル サイズ] または [距離バンド] を設定できます。

  • [セル サイズ] オプションを使用すると、ポイント データの集約に使用されるグリッドのサイズを設定できます。 たとえば、フィッシュネット グリッドの各セルを 50 x 50 メートルにしたりできます。 六角形に集約している場合、[セル サイズ] は各六角形の高さになり、生成される六角形の幅は、高さの 2 倍を 3 の平方根で除算した値になります。

    六角形とフィッシュネット グリッドのセル サイズ

  • 時空間ホット スポットを特定する場合は、[時空間パターン マイニング] ツールまたは、[空間加重マトリックスの生成 (Generate Spatial Weights Matrix)] ツールおよび [クラスター/外れ値分析 (Cluster and Outlier Analysis)] ツールを使用する必要があります。 時空間クラスター分析については、「時空間パターン マイニング」のドキュメントまたは「時空間クラスター分析」のトピックをご参照ください。

  • マップ レイヤーを使用して、入力フィーチャクラスを指定できます。解析対象として指定したレイヤーの中で何らかのフィーチャが選択されている場合、選択されているフィーチャだけが解析の対象となります。

  • [出力フィーチャ] レイヤーは自動的にコンテンツ ウィンドウに追加され、COType フィールドにはデフォルトのレンダリングが適用されます。 レンダリングは、<ArcGIS Pro>\Resources\ArcToolBox\Templates\Layers にあるレイヤー ファイルによって定義されます。 必要に応じて、[レイヤーのシンボル情報を適用 (Apply Symbology From Layer)] ツールを使用して、デフォルトのレンダリングを再適用できます。

  • 注意:

    シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェープファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。

パラメーター

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

クラスター/外れ値分析が実行されるポイント フィーチャクラスまたはポリゴン フィーチャクラス。

Feature Layer
出力フィーチャ

結果のフィールドを取得するための出力フィーチャクラス。

Feature Class
分析フィールド
(オプション)

評価する数値フィールド (インシデント数、犯罪率、テストのスコアなど)。

Field
インシデント データ集約方法
(オプション)

インシデント ポイント データから分析するための重み付きフィーチャの作成に使用される集約方法。

  • フィッシュネット グリッド内のインシデント数フィッシュネット ポリゴン メッシュによってインシデント ポイント データがオーバーレイされ、各ポリゴン セル内のインシデントの数がカウントされます。 [インシデント範囲境界ポリゴン] パラメーターで境界ポリゴンを指定しない場合、1 つ以上のインシデントを含むセルのみが分析で使用されます。そうでない場合、境界ポリゴン内のすべてのセルが分析されます。
  • 六角形グリッド内のインシデント数六角形ポリゴン メッシュによってインシデント ポイント データがオーバーレイされ、各ポリゴン セル内のインシデントの数がカウントされます。 [インシデント範囲境界ポリゴン] パラメーターで境界ポリゴンを指定しない場合、1 つ以上のインシデントを含むセルのみが分析で使用されます。そうでない場合、境界ポリゴン内のすべてのセルが分析されます。
  • 集約ポリゴン内のインシデント数[インシデント集約境界ポリゴン] パラメーターで、インシデント ポイント データをオーバーレイする集約ポリゴンを指定します。 各ポリゴン内のインシデントが計算されます。
  • 加重ポイントの作成のため近傍インシデントをスナップ近傍のインシデントが一緒に集約されて、単一の重み付きポイントが作成されます。 各ポイントの重みは、その場所で集約されたインシデントの数です。
String
インシデント範囲境界ポリゴン
(オプション)

インシデント入力フィーチャが発生する可能性のある場所を定義するポリゴン フィーチャクラス。

Feature Layer
インシデント集約境界ポリゴン
(オプション)

ポリゴン フィーチャごとのインシデント数を取得するために、インシデント入力フィーチャの集計に使用されるポリゴン。

Feature Layer
パフォーマンス調整
(オプション)

この分析は、基準分布を作成するために順列を利用します。 順列の数を選択する場合は、精度と処理時間の増加とのバランスを考慮します。 速度と精度の優先度を選択します。 有効性と精度が高い結果ほど、計算に時間がかかります。

  • クイック (199 順列)順列の数が 199 の場合、許容最小疑似 p 値は 0.005 で、その他すべての疑似 p 値は、この値の偶数倍になります。
  • バランス (499 順列)順列の数が 499 の場合、許容最小疑似 p 値は 0.002 で、その他すべての疑似 p 値は、この値の偶数倍になります。
  • ロバスト (999 順列)順列の数が 999 の場合、許容最小疑似 p 値は 0.001 で、その他すべての疑似 p 値は、この値の偶数倍になります。
String
セル サイズ
(オプション)

[入力フィーチャ] の集約に使用されるグリッド セルのサイズ。 六角形グリッドに集約している場合、この距離は、六角形ポリゴンを構築するための高さとして使用されます

Linear Unit
距離バンド
(オプション)

分析対象の近傍の空間範囲。 この値は、ローカル クラスタリングを評価する場合に一緒に分析されるフィーチャを決定します。

Linear Unit

arcpy.stats.OptimizedOutlierAnalysis(Input_Features, Output_Features, {Analysis_Field}, {Incident_Data_Aggregation_Method}, {Bounding_Polygons_Defining_Where_Incidents_Are_Possible}, {Polygons_For_Aggregating_Incidents_Into_Counts}, {Performance_Adjustment}, {Cell_Size}, {Distance_Band})
名前説明データ タイプ
Input_Features

クラスター/外れ値分析が実行されるポイント フィーチャクラスまたはポリゴン フィーチャクラス。

Feature Layer
Output_Features

結果のフィールドを取得するための出力フィーチャクラス。

Feature Class
Analysis_Field
(オプション)

評価する数値フィールド (インシデント数、犯罪率、テストのスコアなど)。

Field
Incident_Data_Aggregation_Method
(オプション)

インシデント ポイント データから分析するための重み付きフィーチャの作成に使用される集約方法。

  • COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONSフィッシュネット ポリゴン メッシュによってインシデント ポイント データがオーバーレイされ、各ポリゴン セル内のインシデントの数がカウントされます。 Bounding_Polygons_Defining_Where_Incidents_Are_Possible パラメーターで境界ポリゴンを指定しない場合、1 つ以上のインシデントを含むセルのみが分析で使用されます。そうでない場合、境界ポリゴン内のすべてのセルが分析されます。
  • COUNT_INCIDENTS_WITHIN_HEXAGON_POLYGONS六角形ポリゴン メッシュによってインシデント ポイント データがオーバーレイされ、各ポリゴン セル内のインシデントの数がカウントされます。 Bounding_Polygons_Defining_Where_Incidents_Are_Possible パラメーターで境界ポリゴンを指定しない場合、1 つ以上のインシデントを含むセルのみが分析で使用されます。そうでない場合、境界ポリゴン内のすべてのセルが分析されます。
  • COUNT_INCIDENTS_WITHIN_AGGREGATION_POLYGONSPolygons_For_Aggregating_Incidents_Into_Counts パラメーターで、インシデント ポイント データをオーバーレイする集約ポリゴンを指定します。 各ポリゴン内のインシデントが計算されます。
  • SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS近傍のインシデントが一緒に集約されて、単一の重み付きポイントが作成されます。 各ポイントの重みは、その場所で集約されたインシデントの数です。
String
Bounding_Polygons_Defining_Where_Incidents_Are_Possible
(オプション)

インシデント Input_Features が発生する可能性のある場所を定義するポリゴン フィーチャクラス。

Feature Layer
Polygons_For_Aggregating_Incidents_Into_Counts
(オプション)

ポリゴン フィーチャごとのインシデント数を取得するために、インシデント Input_Features の集計に使用されるポリゴン。

Feature Layer
Performance_Adjustment
(オプション)

この分析は、基準分布を作成するために順列を利用します。 順列の数を選択する場合は、精度と処理時間の増加とのバランスを考慮します。 速度と精度の優先度を選択します。 有効性と精度が高い結果ほど、計算に時間がかかります。

  • QUICK_199順列の数が 199 の場合、許容最小疑似 p 値は 0.005 で、その他すべての疑似 p 値は、この値の偶数倍になります。
  • BALANCED_499順列の数が 499 の場合、許容最小疑似 p 値は 0.002 で、その他すべての疑似 p 値は、この値の偶数倍になります。
  • ROBUST_999順列の数が 999 の場合、許容最小疑似 p 値は 0.001 で、その他すべての疑似 p 値は、この値の偶数倍になります。
String
Cell_Size
(オプション)

Input_Features の集約に使用されるグリッド セルのサイズ。 六角形グリッドに集約している場合、この距離は、六角形ポリゴンを構築するための高さとして使用されます

Linear Unit
Distance_Band
(オプション)

分析対象の近傍の空間範囲。 この値は、ローカル クラスタリングを評価する場合に一緒に分析されるフィーチャを決定します。

Linear Unit

コードのサンプル

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

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

import arcpy
arcpy.env.workspace = r"C:\OOA"
arcpy.stats.OptimizedOutlierAnalysis("911Count.shp", "911OptimizedOutlier.shp", 
                                     "#", "SNAP_NEARBY_INCIDENTS_TO_CREATE_WEIGHTED_POINTS", 
                                     "#", "#", "BALANCED_499")
OptimizedOutlierAnalysis の例 2 (スタンドアロン スクリプト)

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

# Analyze the spatial distribution of 911 calls in a metropolitan area

# Import system modules
import arcpy

# Set property to overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables...
workspace = r"C:\OOA\data.gdb"

try:
    # Set the current workspace (to avoid having to specify the full path to 
    # the feature classes each time)
    arcpy.env.workspace = workspace

    # Create a polygon that defines where incidents are possible  
    # Process: Minimum Bounding Geometry of 911 call data
    arcpy.management.MinimumBoundingGeometry("Calls911", "Calls911_MBG", 
                                             "CONVEX_HULL", "ALL", "#", 
                                             "NO_MBG_FIELDS")

    # Optimized Outlier Analysis of 911 call data using fishnet aggregation 
    # method with a bounding polygon of 911 call data
    # Process: Optimized Outlier Analysis 
    ooa = arcpy.stats.OptimizedOutlierAnalysis("Calls911", "Calls911_ohsaFishnet", 
                                               "#", "COUNT_INCIDENTS_WITHIN_FISHNET_POLYGONS", 
                                               "Calls911_MBG", "#", 
                                               "BALANCED_499") 

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

環境

特殊なケース

出力座標系

フィーチャ ジオメトリは分析に先立って出力座標系に投影されます。すべての数学的演算は、出力座標系の空間参照に基づいて実行されます。[出力データの座標系] が度、分、および秒に基づく場合、測地距離は弦距離を使用して推定されます。

乱数ジェネレーター

使用される乱数ジェネレーターのタイプは常にメルセンヌ ツイスターです。