Ripley の K 関数法 (Multi-Distance Spatial Cluster Analysis (Ripley's K Function)) (空間統計)

概要

フィーチャまたはフィーチャに関連付けられた値が、ある範囲の距離について統計的に有意なクラスタリングまたは分散を示すかどうかを決定します。

[Ripley の K 関数法 (Multi-Distance Spatial Cluster Analysis (Ripleys K Function))] ツールの詳細

K 関数の図
ある範囲の距離についての空間クラスタリングと分散

使用法

  • このツールには、距離を正確に測定するために投影データが必要です。

  • ツールの出力は、期待される 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) を以下に示します。

    K 関数の変換方程式

    ここで、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
(オプション)

信頼度エンベロープは、分析範囲にフィーチャ ポイント (またはフィーチャ値) をランダムに配置して計算されます。ランダムに配置するポイントまたは値の数は、フィーチャクラス内のポイントの数と等しくなります。ランダム配置の各組は順列と呼ばれ、この順列から信頼度エンベロープが作成されます。このパラメーターでは、信頼度エンベロープを作成するときに使用する順列の数を指定できます。

  • 0_PERMUTATIONS_-_NO_CONFIDENCE_ENVELOPE信頼度エンベロープを作成しません。
  • 9_PERMUTATIONS9 組のポイントまたは値をランダムに配置します。
  • 99_PERMUTATIONS99 組のポイントまたは値をランダムに配置します。
  • 999_PERMUTATIONS999 組のポイントまたは値をランダムに配置します。
String
Display_Results_Graphically
(オプション)

このパラメーターは無効です。下位互換性をサポートするために残されています。

  • NO_DISPLAY概要図は作成されません (デフォルト)。
  • DISPLAY_IT概要図をグラフ レイヤーとして作成します。
Boolean
Weight_Field
(オプション)

各位置のフィーチャ数またはイベント数を表すウェイトが格納された数値フィールドです。

Field
Beginning_Distance
(オプション)

クラスター分析を開始する距離で、ここを起点として距離が増やされます。このパラメーターの値は、出力座標系の単位で入力する必要があります。

Double
Distance_Increment
(オプション)

繰り返し実行ごとに増やす距離です。分析で使用する距離は Beginning_Distance で指定した距離から始まり、Distance_Incrementで指定した値だけ増やされます。このパラメーターの値は、[出力座標系] 環境設定の単位で入力する必要があります。

Double
Boundary_Correction_Method
(オプション)

分析範囲のエッジ近くにあるフィーチャの近傍数が実際よりも少なく推計されるのを補正する方法です。

  • NONEエッジ補正は適用されません。ただし、入力フィーチャクラスに分析範囲の境界の外側にくるポイントがすでにある場合、そのようなポイントは境界近くのフィーチャの近傍カウントに使用されます。
  • SIMULATE_OUTER_BOUNDARY_VALUESこの方法は、分析範囲の外側にあるポイントをシミュレートして、エッジ近くの近傍数が過小推計されないようにします。シミュレートしたポイントは、分析範囲の境界内にあるエッジ近くのポイントを「ミラー」したものです。
  • REDUCE_ANALYSIS_AREAこの方法は、分析範囲を縮小して、分析範囲の境界の外側にポイントが存在するようにします。分析範囲の外側にあるポイントは、近傍カウントを計算するときに使用されますが、クラスター分析そのものでは使用されません。
  • RIPLEY_EDGE_CORRECTION_FORMULAポイント i の近傍にあるすべてのポイント (j) について、このメソッドは、分析範囲のエッジのほうが i に近いか、それとも j のほうが i に近いかを確認します。j のほうが近い場合、ポイント j に追加のウェイトがかけられます。このエッジ補正方法が適切なのは、分析範囲の形状が正方形または長方形の場合だけです。
String
Study_Area_Method
(オプション)

分析範囲として使用する領域を指定します。K 関数は、分析範囲のサイズの変更に対して敏感です。この値は慎重に選択する必要があります。

  • MINIMUM_ENCLOSING_RECTANGLEすべてのポイントを囲む可能な限り小さい長方形が使用されます。
  • USER_PROVIDED_STUDY_AREA_FEATURE_CLASS分析範囲を定義するフィーチャクラスを [分析範囲のフィーチャクラス] パラメーターで指定します。
String
Study_Area_Feature_Class
(オプション)

入力フィーチャクラスを分析するエリアを定義するフィーチャクラスです。Study_Area_Method = "USER_PROVIDED_STUDY_AREA_FEATURE_CLASS" の場合にのみ指定します。

Feature Layer

派生した出力

名前説明データ タイプ
Result_Image

ツールの結果をまとめた折れ線グラフ。

グラフ

コードのサンプル

MultiDistanceSpatialClustering (Ripley の K 関数法) の例 1 (Python ウィンドウ)

次の 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", "#")
MultiDistanceSpatialClustering (Ripley の K 関数法) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン 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: はい

関連トピック