概要
フィーチャまたはフィーチャに関連付けられた値が、ある範囲の距離について統計的に有意なクラスタリングまたは分散を示すかどうかを決定します。
[Ripley の K 関数法 (Multi-Distance Spatial Cluster Analysis (Ripleys K Function))] ツールの詳細
図
使用法
このツールには、距離を正確に測定するために投影データが必要です。
ツールの出力は、期待される K 値と観測された K 値をそれぞれ含む ExpectedK フィールドと ObservedK フィールドを持つテーブルです。L(d) 変換が適用されるため、ExpectedK 値は常に距離値と一致します。DiffK という名前のフィールドは、観測された K 値から期待される K 値を引いた値を含みます。信頼区間のオプションを指定した場合は、LwConfEnv および HiConfEnv という 2 つのフィールドが出力テーブルに追加されます。これらのフィールドには、[距離バンド数] パラメーターで指定したツールの繰り返し実行ごとの信頼区間情報が格納されます。
特定の距離で観測された K 値が期待される K 値より大きい場合、その距離 (分析のスケール) におけるランダム分布よりクラスタリングされた分布になります。観測された K 値が期待される K 値より小さい場合、その距離におけるランダム分布より分散された分布になります。観測された K 値が HiConfEnv 値より大きい場合、その距離の空間クラスタリングは統計的に有意です。観測された K 値が LwConfEnv 値より小さい場合、その距離の空間分散は統計的に有意です。解釈の詳細については、「[Ripley の K 関数法 (Multi-Distance Spatial Cluster Analysis (Ripleys K Function))] の詳細 」をご参照ください。
-
ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 1、ライン フィーチャの場合は長さ、ポリゴン フィーチャの場合は面積です。
[加重フィールド] は、それがインシデント数または件数を表すときに最も適切に使用されます。
[ウェイト フィールド] を指定しなかった場合、最大の DiffK 値は、クラスタリングを推進する空間プロセスが最も顕著な距離を示します。
以下に、信頼度エンベロープの計算方法を説明します。
- [加重フィールド] の指定なし
[加重フィールド] を指定しなかった場合、信頼度エンベロープは、分析範囲にポイントをランダムに配置して、その分布の L(d) 値を計算することで作成されます。ポイントのランダム分布はそれぞれ「順列」と呼ばれます。たとえば 99 個の順列を選択した場合、ポイント集合は繰り返し実行ごとに 99 回ランダムに配置されます。ポイント集合が 99 回配置された後、距離ごとに、期待される K 値より上下に最も大きくずれた、観測された K 値が選択されます。これらの値が信頼区間になります。
- [加重フィールド] の指定あり
[加重フィールド] を指定した場合は、ウェイト値だけがランダムに再配置されて、信頼度エンベロープが計算されます。ポイント位置は固定です。基本的に、[加重フィールド] を指定した場合、位置は固定されたままで、空間におけるフィーチャ値のクラスタリングが評価されます。一方、[加重フィールド] を指定しなかった場合は、フィーチャ位置のクラスタリングまたは分散が分析されます。
- [加重フィールド] の指定なし
信頼度エンベロープ はランダムな順列から作成されるため、たとえパラメーターが同一であっても、信頼度エンベロープを定義する値は実行ごとに変化します。ただし、乱数ジェネレーター ジオプロセシング環境用のシード値を設定した場合は、繰り返し分析でも一貫した結果が生成されます。
[信頼度エンベロープの計算] パラメーターで選択した順列数と信頼度の関係は、おおまかに 9 は 90%、99 は 99%、999 は 99.9% と考えることができます。
分析範囲を指定しないと、分析範囲ポリゴンとして最小限の領域を囲む四角形が使用されます。範囲とは違って、最小限の領域を囲む四角形は必ずしも X 軸、Y 軸と並行ではありません。
K 関数統計は、分析範囲のサイズに対して非常に敏感です。ポイントの配置が同じでも、それを囲む分析範囲のサイズによってクラスタリングされたり分散されたりすることがあります。そのため、分析範囲の境界を慎重に検討することが必須です。下図は、同一のフィーチャ分布でも、指定された分析範囲によって分散されたりクラスタリングされたりする典型的な例です。
[分析範囲の指定方法] パラメーターで [分析範囲をフィーチャクラスから取得] を選択した場合は、分析範囲フィーチャクラスが必要です。
[分析範囲のフィーチャクラス] を指定した場合、そのフィーチャクラスは正確に 1 つのシングル パート フィーチャ (分析範囲ポリゴン) を持つ必要があります。
[開始距離] または [距離の増分] を指定しなかった場合、入力フィーチャクラスの範囲に基づいてデフォルト値が計算されます。
K 関数には、分析範囲の境界近くにあるフィーチャの数を実際より少なく数えるというバイアスがあります。[分析境界付近の補正方法] パラメーターで、このバイアスに対処する方法を指定できます。
- なし
特定の補正方法を適用しません。ただし、入力フィーチャクラスのポイントのうち、ユーザーが指定した分析範囲の外側にくるものは、近傍カウント時に使用されます。この方法が適切なのは、非常に大きな分析範囲からデータを収集していて、データ コレクションの境界内におさまる小さなエリアを分析するだけでいい場合です。
- 外側境界の値をシミュレート
この方法は、分析範囲の境界の内側にあるポイントの鏡像となるポイントを境界の外側に作成して、エッジ近くの過小推計を補正します。分析範囲のエッジの最大距離バンド以内の距離にあるポイントがコピーされます。コピーされたポイントは、エッジ ポイントの近傍推計が正確になるように使用されます。下図は、計算時にどのポイントが使用され、どのポイントがエッジ補正だけに使用されるかを示しています。
- 解析エリアを縮小
このエッジ補正方法は、分析で使用する最大距離バンドと等しい距離だけ、分析範囲のサイズを縮小します。分析範囲の縮小後は、新しい分析範囲の外側にあるポイントは、まだ分析範囲内にあるポイントの近傍カウントが評価されるときだけ考慮されます。K 関数の計算時には、他の形では使用されません。下図は、計算時にどのポイントが使用され、どのポイントがエッジ補正だけに使用されるかを示しています。
- Ripley のエッジ補正式
この方法は、ポイントごとに、分析範囲のエッジからの距離と、近傍ポイントそれぞれとの距離を確認します。分析範囲のエッジからの距離よりも離れている近傍ポイントにはすべて、追加のウェイトがかけられます。このエッジ補正方法が適切なのは、分析範囲が正方形または長方形の場合、または、[分析範囲の指定方法] パラメーターで [最小外接矩形] を選択した場合だけです。
- なし
分析境界付近の補正を適用しないと、分析距離が増えるにしたがって実際より少なく数えるバイアスが増えます。
数学的には、[Ripley の K 関数法 (Multi-Distance Spatial Cluster Analysis (Ripleys K Function))] ツールは、ランダムなポイント集合の期待される結果が入力距離に等しい Ripley の K 関数の共通変換を使用します。変換 L(d) を以下に示します。
ここで、A は面積、N はポイント数、d は距離、k(i, j) はウェイトです。ウェイトは、境界付近の補正がない場合、i と j の距離が d 以下のときは 1、i と j の距離が d より大きいときは 0 です。エッジ補正がある場合、k(i,j) のウェイトは少し修正されます。
-
マップ レイヤーを使用して、入力フィーチャクラスを指定できます。解析対象として指定したレイヤーの中で何らかのフィーチャが選択されている場合、選択されているフィーチャだけが解析の対象となります。
注意:
シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェープファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。
構文
arcpy.stats.MultiDistanceSpatialClustering(Input_Feature_Class, Output_Table, Number_of_Distance_Bands, {Compute_Confidence_Envelope}, {Display_Results_Graphically}, {Weight_Field}, {Beginning_Distance}, {Distance_Increment}, {Boundary_Correction_Method}, {Study_Area_Method}, {Study_Area_Feature_Class})
パラメーター | 説明 | データ タイプ |
Input_Feature_Class | 分析対象となるフィーチャクラスです。 | Feature Layer |
Output_Table | 分析結果が書き込まれるテーブルです。 | Table |
Number_of_Distance_Bands | 近傍サイズを増やしてデータセットのクラスタリングを分析する回数です。開始ポイントと増やすサイズは、それぞれ Beginning_Distance パラメーターと Distance_Increment パラメーターで指定します。 | Long |
Compute_Confidence_Envelope (オプション) | 信頼度エンベロープは、分析範囲にフィーチャ ポイント (またはフィーチャ値) をランダムに配置して計算されます。ランダムに配置するポイントまたは値の数は、フィーチャクラス内のポイントの数と等しくなります。ランダム配置の各組は順列と呼ばれ、この順列から信頼度エンベロープが作成されます。このパラメーターでは、信頼度エンベロープを作成するときに使用する順列の数を指定できます。
| String |
Display_Results_Graphically (オプション) | このパラメーターは無効です。下位互換性をサポートするために残されています。
| Boolean |
Weight_Field (オプション) | 各位置のフィーチャ数またはイベント数を表すウェイトが格納された数値フィールドです。 | Field |
Beginning_Distance (オプション) | クラスター分析を開始する距離で、ここを起点として距離が増やされます。このパラメーターの値は、出力座標系の単位で入力する必要があります。 | Double |
Distance_Increment (オプション) | 繰り返し実行ごとに増やす距離です。分析で使用する距離は Beginning_Distance で指定した距離から始まり、Distance_Incrementで指定した値だけ増やされます。このパラメーターの値は、[出力座標系] 環境設定の単位で入力する必要があります。 | Double |
Boundary_Correction_Method (オプション) | 分析範囲のエッジ近くにあるフィーチャの近傍数が実際よりも少なく推計されるのを補正する方法です。
| String |
Study_Area_Method (オプション) | 分析範囲として使用する領域を指定します。K 関数は、分析範囲のサイズの変更に対して敏感です。この値は慎重に選択する必要があります。
| String |
Study_Area_Feature_Class (オプション) | 入力フィーチャクラスを分析するエリアを定義するフィーチャクラスです。Study_Area_Method = "USER_PROVIDED_STUDY_AREA_FEATURE_CLASS" の場合にのみ指定します。 | Feature Layer |
派生した出力
名前 | 説明 | データ タイプ |
Result_Image | ツールの結果をまとめた折れ線グラフ。 | グラフ |
コードのサンプル
次の Python ウィンドウ スクリプトは、MultiDistanceSpatialClustering (欠損値の補完) ツールの使用方法を示しています。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.MultiDistanceSpatialClustering_stats("911Calls.shp","kFunResult.dbf", 11,
"0_PERMUTATIONS_-_NO_CONFIDENCE_ENVELOPE",
"NO_DISPLAY", "#", 1000, 200, "REDUCE_ANALYSIS_AREA",
"MINIMUM_ENCLOSING_RECTANGLE", "#")
次のスタンドアロン Python スクリプトは、MultiDistanceSpatialClustering (欠損値の補完) ツールの使用方法を示しています。
# Use Ripley's K-Function to analyze the spatial distribution of 911
# calls in Portland Oregon
# Import system modules
import arcpy
# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Set Distance Band Parameters: Analyze clustering of 911 calls from
# 1000 to 3000 feet by 200 foot increments
numDistances = 11
startDistance = 1000.0
increment = 200.0
# Process: Run K-Function...
kFun = arcpy.MultiDistanceSpatialClustering_stats("911Calls.shp",
"kFunResult.dbf", numDistances,
"0_PERMUTATIONS_-_NO_CONFIDENCE_ENVELOPE",
"NO_DISPLAY", "#", startDistance, increment,
"REDUCE_ANALYSIS_AREA",
"MINIMUM_ENCLOSING_RECTANGLE", "#")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
環境
- 出力座標系
フィーチャ ジオメトリは、分析に先立って出力座標系に投影されます。そのため、[開始距離] および [距離の増分] パラメーターで入力する値は、出力座標系で指定する値と一致する必要があります。すべての数学的演算は、出力座標系の空間参照に基づいて実行されます。
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい