概要
加重された一連のフィーチャを指定すれば、Anselin Local Moran's I 統計で、統計的に有意なホット スポット、コールド スポット、および空間的な外れ値を特定できます。
クラスター/外れ値分析 (Cluster and Outlier Analysis (Anselin Local Moran's I)) ツールの詳細
図
![[クラスター/外れ値分析 (Cluster and Outlier Analysis)] の図 [クラスター/外れ値分析 (Cluster and Outlier Analysis)] の図](GUID-203ADC3E-C9BC-4FF3-890F-B11B05F1FC41-web.png)
使用法
このツールを使用すると、[入力フィーチャクラス] にある各フィーチャについて、Local Moran's I インデックス、Z スコア、疑似 p 値、クラスター/外れ値タイプ (COType) の各属性を持つ新しい [出力フィーチャクラス] が作成されます。
Z スコアと p 値は、フィーチャごとに帰無仮説を棄却すべきかどうかを判断する統計的有意性の尺度です。実際、この尺度は、見かけの類似性 (高いまたは低い値の空間クラスター) や相違 (空間的な外れ値) が、ランダムな分布で期待されるよりも顕著であるかどうかを示しています。出力フィーチャクラスの p 値と Z スコアは、FDR (False Discovery Rate) 補正を反映しません。
フィーチャの Z 値が高い正の値である場合は、周囲のフィーチャの値が同様である (高い値または低い値) ことを示しています。[出力フィーチャクラス] の COType フィールドは、高い値を持つ統計的に有意なクラスターの場合には HH になり、低い値を持つ統計的に有意なクラスターの場合には LL になります。
フィーチャの Z スコアが低い負の値 (-3.96 未満など) である場合は、統計的に有意な空間データの外れ値であることを示しています。[出力フィーチャクラス] の COType フィールドは、高い値を持つフィーチャが低い値を持つフィーチャに取り囲まれている場合には HL になり、低い値を持つフィーチャが高い値を持つフィーチャに取り囲まれている場合には LH になります。
[COType] フィールドは常に、95 % の信頼度で統計的に有意なクラスターおよび外れ値を示します。統計的に有意なフィーチャのみで、COType フィールドに値が含まれます。オプションの [FDR (False Discovery Rate) 補正の適用] パラメーターのチェックボックスをオンにすると、統計的な有意性は、補正された 95 % の信頼度を使用します。
[出力フィーチャクラス] のデフォルトのレンダリングは、COType フィールドの値を使用します。
このツールの出力には、[入力フィールド] の値をチャート化するヒストグラムと Moran 散布図も含まれます。これらのチャートには、[コンテンツ] ウィンドウの [出力フィーチャクラス] の下でアクセスできます。
順列を使用すると、分析する値の実際の空間分布が検出される可能性がどれくらいあるかを判断できます。順列を実行するごとに、各フィーチャの周囲の近傍値がランダムに並べ替えられ、Local Moran's I 値が算出されます。この計算結果が値の基準分布になり、観測値がランダム分布の中から検出される確率を求めるために実際の観測対象の Moran's I と比較されます。順列の数はデフォルトで 499 に設定されていますが、順列の数を増やすと、ランダム標本分布が広範になり、これに伴って疑似 p 値の精度も上がります。
[順列の数] パラメーターを 0 に設定すると、疑似 p 値ではなく、標準の p 値が返されます。Z スコアは、無作為化帰無仮説計算に基づいています。Z スコアと p 値の詳細については、「Z スコアとは、 p 値とは」をご参照ください。
[入力フィーチャクラス] が投影されていない場合 (つまり、座標が、度、分、および秒で与えられた場合)、または出力座標系が地理座標系に設定された場合、弦の測定値を使用して距離が計算されます。弦距離の測定値が使用されるのは、少なくとも互いに約 30° の範囲内のポイントに対して、すばやく算出され、実際の測地距離に非常に近い推定値が得られるという理由からです。弦距離は、扁平回転楕円体に基づいています。地球の表面上の 2 点が与えられた場合、2 点間の弦の距離は、3 次元の地球内部を通過して 2 点を接続するラインの長さになります。弦距離は、メートル単位でレポートされます。
注意:
分析範囲が 30°を越えて広がる場合、必ずデータを投影してください。30°を超える場合、弦距離は測地距離の良好な推定値にはなりません。
弦距離を解析で使用するときに、[距離バンドまたは距離の閾値] パラメーターを指定する場合、メートル単位で指定する必要があります。
-         
ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
 入力フィールドにはさまざまな値を含めなくてはなりません。この統計計算では、分析する変数に変異が存在する必要があります。たとえば、入力値がすべて 1 の場合、解は存在しません。このツールを使用してインシデント データの空間パターンを分析する場合は、インシデント データの集約を検討してください。[最適化ホット スポット分析 (Optimized Hot Spot Analysis)] ツールを使用して、インシデント データの空間パターンを分析することもできます。
メモ:
インシデント データは、イベント (犯罪、交通事故など) またはオブジェクト (樹木、店舗など) を表すポイントです。これらのポイントでは、各ポイントに関連付けられて測定される属性ではなく、インシデント データの有無に焦点が当てられます。
[空間リレーションシップのコンセプト] パラメーターの選択には、解析対象のフィーチャ間の固有のリレーションシップが反映されている必要があります。フィーチャの空間相互作用をより現実的にモデリングできればできるほど、結果はより正確になります。推奨事項については「空間リレーションシップのコンセプトの選択: ベスト プラクティス」で説明しています。次に、別のヒントをいくつか紹介します。
- 固定距離バンド
[距離バンドまたは距離の閾値] を使用します。これは、各フィーチャが少なくとも 1 つ近傍フィーチャを持つことを保証します。これは重要なことですが、多くの場合このデフォルトは解析に使用する最も適切な距離ではありません。分析で適切な尺度 (距離バンド) を選択する詳細については、「固定距離バンドの値の選択」で説明しています。
 - [逆距離] または [距離の逆二乗]
[距離バンドまたは距離の閾値] パラメーターにゼロを入力すると、すべてのフィーチャが他のすべてのフィーチャの近隣フィーチャと見なされます。このパラメーターを空白のままにしておくと、デフォルトの距離が適用されます。
距離のウェイトが 1 未満の場合は、反転したときに不安定になります。そのため、距離の 1 単位未満に分割されたフィーチャのウェイトは、1 に設定されます。
逆距離系のオプション ([逆距離]、[距離の逆二乗]、または [無関心領域]) の場合、一致する 2 つのポイントは、ゼロ除算を避けるためにウェイトが 1 になります。これによりフィーチャが分析から除外されないことが保証されます。
 
- 固定距離バンド
 時空間リレーションシップなど、[空間リレーションシップのコンセプト] パラメーターの追加オプションは、[空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールを使用したときに利用できます。これらの追加オプションを利用するには、解析を実行する前に空間ウェイト マトリックス ファイルを作成します。[空間リレーションシップのコンセプト] パラメーターでは、[空間ウェイトをファイルから取得] を選択し、[ウェイト マトリックス ファイル] パラメーターでは、作成した空間ウェイト ファイルへのパスを指定します。
-         
時空間クラスター分析については、「時空間分析」のドキュメントをご参照ください。
 -         
マップ レイヤーを使用して、入力フィーチャクラスを指定できます。解析対象として指定したレイヤーの中で何らかのフィーチャが選択されている場合、選択されているフィーチャだけが解析の対象となります。
 ウェイト マトリックス ファイルに「.swm」拡張子を付けると、このツールは [空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールを使用して生成された空間ウェイト マトリックス ファイルを想定します。それ以外の場合、ツールは ASCII 形式の空間ウェイト マトリックス ファイルを想定します。場合によっては、使用する空間ウェイト マトリックス ファイルのタイプに応じて振舞いが変わります。
- ASCII 形式の空間ウェイト マトリックス ファイル:
- ウェイトはそのまま使用されます。フィーチャ対フィーチャのリレーションシップがない場合は、ゼロとして扱われます。
 - ウェイトについて行の標準化を行うと、選択セットの解析で正しい結果は得られません。選択セットで解析を実行する必要があるときは、ASCII データをテーブルに読み込み、[空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールで [変換テーブル] オプションを使用して、ASCII 空間ウェイト ファイルを SWM ファイルに変換します。
 
 - SWM 形式の空間ウェイト マトリックス ファイル:
- ウェイトについて行の標準化を行うと、ウェイトは選択セットに対して再標準化されます。そうでない場合、ウェイトは、そのまま使用されます。
 
 
- ASCII 形式の空間ウェイト マトリックス ファイル:
 ASCII 形式の空間ウェイト マトリックス ファイルで解析を実行すると、多くのメモリが消費されます。5,000 を超えるフィーチャの解析で、ASCII 形式の空間ウェイト マトリックス ファイルを SWM 形式ファイルに変換する場合を考えます。まず、ASCII ウェイトを Excel などに読み込んで表形式にします。次に、[空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールを、[空間リレーションシップのコンセプト] パラメーターに [変換テーブル] を使用して、実行します。出力は、SWM 形式の空間ウェイト マトリックス ファイルになります。
出力フィーチャクラスは自動的にコンテンツ ウィンドウに追加され、COType フィールドにはデフォルトのレンダリングが適用されます。適用されるレンダリングは、<ArcGIS Pro>\Resources\ArcToolBox\Templates\Layers にあるレイヤー ファイルによって定義されます。必要に応じて、[レイヤーのシンボル情報を適用 (Apply Symbology From Layer)] ツールを使用して、デフォルトのレンダリングを再適用できます。
-         
[出力フィーチャクラス] には、必要に応じて [入力フィーチャクラス] に結合できる SOURCE_ID フィールドがあります。
 -         
このツールのパラメーターの詳細については、「空間関係のモデリング」のヘルプ トピックをご参照ください。
 Python スクリプトでこのツールを使用すると、実行されたツールから返される結果のオブジェクトの出力は次のようになります。
位置 説明 データ タイプ 0
出力フィーチャクラス
フィーチャ クラス
1
インデックス フィールド名
フィールド
2
Z スコア フィールド名
フィールド
3
確率フィールド名
フィールド
4
COType フィールド名
フィールド
5
ソース ID のフィールド名
フィールド
注意:
シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェープファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。
構文
arcpy.stats.ClustersOutliers(Input_Feature_Class, Input_Field, Output_Feature_Class, Conceptualization_of_Spatial_Relationships, Distance_Method, Standardization, {Distance_Band_or_Threshold_Distance}, {Weights_Matrix_File}, {Apply_False_Discovery_Rate__FDR__Correction}, {Number_of_Permutations}, {number_of_neighbors})| パラメーター | 説明 | データ タイプ | 
Input_Feature_Class  | クラスター/外れ値分析の対象となるフィーチャクラス。  | Feature Layer | 
Input_Field  |              評価する数値フィールド。  | Field | 
Output_Feature_Class  | 結果のフィールドを取得するための出力フィーチャクラス。  | Feature Class | 
Conceptualization_of_Spatial_Relationships  | フィーチャ間の空間リレーションシップをどのよう定義するかを指定します。 
  | String | 
Distance_Method  | 各フィーチャから隣接フィーチャまでの距離の計算方法を指定します。 
  | String | 
Standardization  | 行の標準化が推奨されるのは、サンプリングの設計や指定された集約方式によってフィーチャの分布が偏る可能性があるときです。 
  | String | 
Distance_Band_or_Threshold_Distance (オプション)  |              [距離の逆二乗] オプションおよび [固定距離バンド] オプションの場合、ここで閾値を指定します。ターゲット フィーチャに対して指定したカットオフの外側のフィーチャは、そのフィーチャの解析では除外されます。[無関心領域] オプションの場合、ここで指定した閾値内にあるフィーチャの影響は等しく考慮され、閾値外にあるフィーチャの影響は距離に伴って減少します。入力する距離値は、出力座標系の値に一致している必要があります。 空間リレーションシップの逆距離のコンセプトの場合、値 0 は閾値の距離が適用されないことを示します。このパラメーターを空白のままにすると、デフォルトの閾値が計算され、適用されます。このデフォルト値はユークリッド距離であり、すべてのフィーチャに 1 つ以上の隣接フィーチャがあることが保証されます。 空間コンセプトとして [隣接ポリゴン] または [空間ウェイトをファイルから取得] を選択した場合、このパラメーターは効力を持ちません。  | Double | 
Weights_Matrix_File (オプション)  |              フィーチャ間の空間リレーションシップ、および潜在的に時系列のリレーションシップを定義するウェイトが含まれたファイルへのパス。  | File | 
Apply_False_Discovery_Rate__FDR__Correction (オプション)  | 
  | Boolean | 
Number_of_Permutations (オプション)  | 疑似 p 値を算出する場合のランダムな順列の数。デフォルトの順列の数は 499 です。順列の数を 0 に設定すると、標準の p 値が算出されます。 
  | Long | 
number_of_neighbors (オプション)  | 分析に含める近傍の数。  | Long | 
派生した出力
| 名前 | 説明 | データ タイプ | 
| Index_Field_Name | インデックス フィールド名。  | フィールド | 
| ZScore_Field_Name | Z スコア フィールド名。  | フィールド | 
| Probability_Field | 確率フィールド名。  | フィールド | 
| Cluster_Outlier_Type | クラスター/外れ値のフィールド名。  | フィールド | 
| Source_ID | ソース ID のフィールド名。  | フィールド | 
コードのサンプル
次の Python ウィンドウ スクリプトは、ClustersOutliersツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = "c:/data/911calls"
arcpy.ClustersOutliers_stats("911Count.shp", "ICOUNT","911ClusterOutlier.shp",
                             "GET_SPATIAL_WEIGHTS_FROM_FILE","EUCLIDEAN_DISTANCE", 
                             "NONE","#", "euclidean6Neighs.swm","NO_FDR", 499)次のスタンドアロン Python スクリプトは、ClustersOutliers ツールの使用方法を示しています。
# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Cluster-Outlier Analysis Tool (Anselin's Local Moran's I)
# Import system modules
import arcpy
# Set property to overwrite outputs if they already exist
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\Data\911Calls"
try:
    # Set the current workspace 
    #  (to avoid having to specify the full path to the feature classes each time)
    arcpy.env.workspace = workspace
    # Copy the input feature class and integrate the points to snap
    # together at 500 feet
    # Process: Copy Features and Integrate
    cf = arcpy.CopyFeatures_management("911Calls.shp", "911Copied.shp")
    integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet")
    # Use Collect Events to count the number of calls at each location
    # Process: Collect Events
    ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
    # Add a unique ID field to the count feature class
    # Process: Add Field and Calculate Field
    af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
                     														"NON_NULLABLE", "NON_REQUIRED", "#",
                     														"911Count.shp")
    
    cf = arcpy.CalculateField_management("911Count.shp", "MyID", "!FID!", "PYTHON")
    # Create Spatial Weights Matrix for Calculations
    # Process: Generate Spatial Weights Matrix... 
    swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID",
                        																											"euclidean6Neighs.swm",
                       																											 "K_NEAREST_NEIGHBORS",
                       															 												"#", "#", "#", 6) 
    # Cluster/Outlier Analysis of 911 Calls
    # Process: Local Moran's I
    clusters = arcpy.ClustersOutliers_stats("911Count.shp", "ICOUNT", 
                      																				  "911ClusterOutlier.shp", 
                        																				"GET_SPATIAL_WEIGHTS_FROM_FILE",
                        																				"EUCLIDEAN_DISTANCE", "NONE",
                       							 													"#", "euclidean6Neighs.swm", "NO_FDR", "499")
except arcpy.ExecuteError:
    # If an error occurred when running the tool, print out the error message.
    print(arcpy.GetMessages())環境
ライセンス情報
- Basic: はい
 - Standard: はい
 - Advanced: はい
 
関連トピック
- 空間関係のモデリング
 - Z スコアと p 値
 - 空間ウェイト
 - クラスター分析のマッピング ツールセットの概要
 - 空間的自己相関分析 (Spatial Autocorrelation (Global Moran's I))
 - ホット スポット分析 (Hot Spot Analysis (Getis-Ord Gi*))
 - クラスター/外れ値分析 (Cluster and Outlier Analysis (Anselin Local Moran's I)) の詳細
 - 空間的外れ値の検出 (Spatial Outlier Detection)
 - 最適化ホット スポット分析 (Optimized Hot Spot Analysis)
 - インクリメンタル空間的自己相関 (Incremental Spatial Autocorrelation)
 - 近接フィーチャへの距離を計算 (Calculate Distance Band from Neighbor Count)
 - イベントの集計 (Collect Events)
 - 最適化外れ値分析 (Optimized Outlier Analysis)
 - ジオプロセシング ツールの検索