クラスタ/外れ値分析(Cluster and Outlier Analysis (Anselin Local Moran's I)) (空間統計解析)
サマリ
加重された一連のフィーチャを指定すれば、Anselin Local Moran's I 統計で、統計的に有意なホット スポット、コールド スポット、および空間的な外れ値を特定できます。
図
使用法
-
このツールを使用すると、入力フィーチャクラスにある各フィーチャについて、Local Moran's I インデックス、Z スコア、p 値、クラスタ/外れ値タイプ(COType)の各属性をもつ新しい出力フィーチャクラスが作成されます。これらの属性のフィールド名は、カスタムのモデルやスクリプトで使用できるように生成されたツール出力値でもあります。
-
Z スコアと p 値は、フィーチャごとに帰無仮説を棄却すべきかどうかを判断する統計的有意性の尺度です。実際、この尺度は、見かけの類似性(高いまたは低い値の空間クラスタ)や相違(空間的な外れ値)が、ランダムな分布で期待されるよりも顕著であるかどうかを示しています。
-
フィーチャの Z 値が高い正の値である場合は、周囲のフィーチャの値が同様である(高い値または低い値)ことを示しています。出力フィーチャクラスの [COType] フィールドは、高い値をもつ統計的に有意な(0.05 水準)クラスタの場合は HH になり、低い値をもつ統計的に有意な(0.05 レベルの)クラスタの場合は LL になります。
-
フィーチャの Z スコアが低い負の値(< -1.96 など)である場合は、統計的に有意な(0.05 レベルの)空間的な外れ値であることを示しています。出力フィーチャクラスの [COType] フィールドは、高い値をもつフィーチャが低い値をもつフィーチャに取り囲まれている場合は HL になり、低い値をもつフィーチャが高い値をもつフィーチャに取り囲まれている場合は LH になります。
-
Z スコアは、ランダム化帰無仮説計算に基づいています。Z スコアについての詳細は、「Z スコアと p 値」をご参照ください。
-
ユークリッドまたはマンハッタン距離に基づく計算では、距離を正確に計測するために投影変換されたデータが必要です。
-
ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
-
入力フィールドにはさまざまな値を含まなくてはいけません。この統計計算では、分析する変数に変異が存在する必要があります。たとえば、入力値がすべて 1 の場合、解は存在しません。このツールを使用してインシデント データの空間パターンを分析する場合は、インシデント データの集約を検討してください。
-
[空間リレーションシップのコンセプト] パラメータの選択には、解析対象のフィーチャ間の固有のリレーションシップが反映されている必要があります。フィーチャの空間相互作用をより現実的にモデリングできればできるほど、結果はより正確になります。推奨事項については「空間リレーションシップのコンセプトの選択: ベスト プラクティス」で説明しています。次に、別のヒントをいくつか紹介します。
- FIXED_DISTANCE_BAND
デフォルトの [距離バンドまたは距離の閾値] は各フィーチャが少なくとも 1 つ近傍フィーチャを持つことを保証します。これは重要なことです。多くの場合このデフォルトは解析に使用する最も適切な距離ではありません。分析で適切な尺度(距離バンド)を選択する詳細については、「固定距離バンドの値の選択」で説明しています。
- INVERSE_DISTANCE または INVERSE_DISTANCE_SQUARED
[距離バンドまたは距離の閾値] パラメータにゼロを入力すると、すべてのフィーチャが他のすべてのフィーチャの近隣フィーチャと見なされます。このパラメータを空白のままにしておくと、デフォルトの距離が適用されます。
距離のウェイトが 1 未満の場合は、反転したときに不安定になります。このため、距離が 1 距離単位より小さいフィーチャの場合(地理座標系投影では普通)、ウェイトは 1 になります。
注意:逆距離ベースの空間コンセプト メソッド(INVERSE_DISTANCE、INVERSE_DISTANCE_SQUARED、または ZONE_OF_INDIFFERENCE)を選択した場合には、地理座標系の投影でのフィーチャの解析は推奨されません。
逆距離オプション(INVERSE_DISTANCE、INVERSE_DISTANCE_SQUARED、または ZONE_OF_INDIFFERENCE)では、ゼロ除算を回避するために、一致する 2 つのポイントにウェイト 1 が与えられます。これによりフィーチャが分析から除外されないことが保証されます。
- FIXED_DISTANCE_BAND
-
時空間リレーションシップなど、[空間リレーションシップのコンセプト] パラメータの追加オプションは、[空間ウェイト マトリックスの生成(Generate Spatial Weights Matrix)] または [ネットワーク空間ウェイトの生成(Generate Network Spatial Weights)] ツールを使用したときに利用できます。これらの追加オプションを利用するには、これらのいずれかのツールを使用して、解析の前に空間ウェイト マトリックス ファイルを生成します。[空間リレーションシップのコンセプト] パラメータの場合は、GET_SPATIAL_WEIGHTS_FROM_FILE を選択し、[ウェイト マトリックス ファイル] パラメータの場合は、作成した空間ウェイト ファイルへのパスを指定します。
時空間クラスタ分析については、「時空間分析」のドキュメントをご参照ください。
-
マップ レイヤを使用して、入力フィーチャクラスを指定できます。解析対象として指定したレイヤの中で何らかのフィーチャが選択されている場合、選択されているフィーチャだけが解析の対象となります。
- 注意:
- このツールがカスタム モデル ツールの一部である場合、このツールを実行する前に HTML リンクをモデル パラメータとして設定すると、HTML リンクは [結果] ウィンドウのみに表示されるようになります。
- HTML グラフィックスを最適に表示するには、モニタを 96 DPI に設定します。
ウェイト マトリックス ファイルに「SWM」拡張子を付けると、このツールは [空間ウェイト マトリックスの生成(Generate Spatial Weights Matrix)] または [ネットワーク空間ウェイトの生成(Generate Network Spatial Weights)] ツールを使用して生成された空間ウェイト マトリックス ファイルを想定します。それ以外の場合、ツールは ASCII 形式の空間ウェイト マトリックス ファイルを想定します。場合によっては、使用する空間ウェイト マトリックス ファイルのタイプに応じて振舞いが変わります。
- ASCII 形式の空間ウェイト マトリックス ファイル:
- ウェイトはそのまま使用されます。フィーチャ対フィーチャのリレーションシップがない場合は、ゼロとして扱われます。
- ウェイトについて行の標準化を行うと、選択セットの解析で正しい結果は得られません。選択セットで解析を実行する必要があるときは、ASCII データをテーブルに読み込み、[空間ウェイト マトリックスの生成(Generate Spatial Weights Matrix)] ツールで CONVERT_TABLE オプションを使用して、ASCII 空間ウェイト ファイルを SWM ファイルに変換します。
- SWM 形式の空間ウェイト マトリックス ファイル:
- ウェイトについて行の標準化を行うと、ウェイトは選択セットに対して再標準化されます。そうでない場合、ウェイトは、そのまま使用されます。
ASCII 形式の空間ウェイト マトリックス ファイルで解析を実行すると、多くのメモリが消費されます。5,000 を超えるフィーチャの解析で、ASCII 形式の空間ウェイト マトリックス ファイルを SWM 形式ファイルに変換する場合を考えます。まず、ASCII ウェイトを Excel などに読み込んで表形式にします。次に、[空間ウェイト マトリックスの生成(Generate Spatial Weights Matrix)] ツールを、[空間リレーションシップのコンセプト] パラメータに CONVERT_TABLE を使用して、実行します。出力は、SWM 形式の空間ウェイト マトリックス ファイルになります。
-
ArcMap でこのツールを実行すると、自動的に、コンテンツ ウィンドウに出力フィーチャクラスが、[COType] フィールドにデフォルトのレンダリングが適用された状態で追加されます。適用されるレンダリングは、<ArcGIS>/Desktop10.x/ArcToolbox/Templates/Layers にあるレイヤ ファイルによって定義されます。必要に応じて、テンプレート レイヤ シンボルをインポートすれば、デフォルトのレンダリングを再適用できます。
[出力フィーチャクラス] には、必要に応じて [入力フィーチャクラス] に結合できる SOURCE_ID フィールドがあります。
-
このツールのパラメータの詳細については、「空間関係のモデリング」のヘルプ トピックをご参照ください。
シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェイプファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。
ArcGIS 10.0 より前のリリースでは、出力フィーチャクラスは COType、Z スコア、および p 値の結果フィールドを積み重ねた入力フィーチャクラスの複製でした。ArcGIS 10.0 以降では、出力フィーチャクラスには解析で使用される結果とフィールドのみが含まれます。
構文
パラメータ | 説明 | データ タイプ |
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 (オプション) |
[INVERSE_DISTANCE] オプションおよび [FIXED_DISTANCE_BAND] オプションの場合、ここで閾値を指定します。ターゲット フィーチャに対して指定したカットオフの外側のフィーチャは、そのフィーチャの解析では除外されます。[ZONE_OF_INDIFFERENCE] オプションの場合、ここで指定した閾値内にあるフィーチャの影響は等しく考慮され、閾値外にあるフィーチャの影響は距離に伴って減少します。入力する距離値は、出力座標系の値に一致している必要があります。 空間リレーションシップの逆距離のコンセプトの場合、値 0 は閾値の距離が適用されないことを示します。このパラメータを空白のままにすると、デフォルトの閾値が計算され、適用されます。このデフォルト値はユークリッド距離であり、すべてのフィーチャに 1 つ以上の隣接フィーチャがあることが保証されます。 空間コンセプトとして [POLYGON_CONTIGUITY] または [GET_SPATIAL_WEIGHTS_FROM_FILE] を選択した場合、このパラメータは効力を持ちません。 | Double |
Weights_Matrix_File (オプション) |
フィーチャ間の空間リレーションシップ、および潜在的に時系列のリレーションシップを定義するウェイトが含まれたファイルへのパス。 | File |
コードのサンプル
次の Python ウィンドウのスクリプトは、ClusterandOutlierAnalysis(クラスタ/外れ値分析)ツールの使用方法を示しています。
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")
次のスタンドアロン Python ウィンドウのスクリプトは、ClusterandOutlierAnalysis(クラスタ/外れ値分析)ツールの使用方法を示しています。
# 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 geoprocessor object property to overwrite outputs if they already exist
arcpy.gp.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",
"#", 0, 0, 0)
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]", "VB")
# 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")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()
環境
- 出力データの座標系
フィーチャ ジオメトリが分析の前に [出力データの座標系] に投影されます。したがって、[距離バンドまたは距離の閾値] パラメータに入力された値は、[出力データの座標系] で指定されている値と一致する必要があります。数学的演算はすべて、[出力データの座標系] の空間参照に基づいて行われます。