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

サマリー

フィーチャや、フィーチャに関連する値が、距離範囲にわたって統計的に有意なクラスタリングや分散を示すかどうかを判断します。

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

Ripley の K 関数法ツールの図
距離範囲にわたる空間クラスタリング/空間分散の計測値。

使用法

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

  • ツールの出力は、期待される K 値と観測された K 値をそれぞれ含む ExpectedK フィールドと ObservedK フィールドを持つテーブルです。 L(d) 変換 が適用されるため、ExpectedK 値は常に距離値と一致します。 DiffK という名前のフィールドは、観測された K 値から期待される K 値を引いた値を含みます。 信頼区間のオプションを指定した場合は、LwConfEnv および HiConfEnv という 2 つのフィールドが [出力テーブル] に追加されます。 これらのフィールドには、[距離バンド数] パラメーターで指定したツールの繰り返し実行ごとの信頼区間情報が格納されます。

  • 特定の距離で観測された K 値が期待される K 値より大きい場合、その距離 (分析のスケール) におけるランダム分布よりクラスタリングされた分布になります。 観測された K 値が期待される K 値より小さい場合、その距離におけるランダム分布より分散された分布になります。 観測された K 値が HiConfEnv 値より大きい場合、その距離の空間クラスタリングは統計的に有意です。 観測された K 値が LwConfEnv 値より小さい場合、その距離の空間分散は統計的に有意です。 解釈の詳細については、「Ripley の K 関数法の詳細」をご参照ください。

  • ライン フィーチャとポリゴン フィーチャの場合は、距離の計算にフィーチャの重心が使用されます。マルチポイント、ポリライン、または複数のパートを持つポリゴンの場合は、すべてのフィーチャ パートの加重平均中心を使用して重心が計算されます。加重は、ポイント フィーチャの場合は 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 値はシェープファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。

パラメーター

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

分析対象となるフィーチャクラスです。

Feature Layer
出力テーブル

分析結果が書き込まれるテーブルです。

Table
距離バンド数

近傍サイズを増やしてデータセットのクラスタリングを分析する回数です。 開始ポイントと増分サイズは、それぞれ [開始距離] パラメーターと [距離の増分] パラメーターで指定します。

Long
信頼度エンベロープの計算
(オプション)

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

  • 0 順列 - 信頼度エンベロープなし信頼度エンベロープを作成しません。
  • 9 順列9 組のポイントまたは値をランダムに配置します。
  • 99 順列99 組のポイントまたは値をランダムに配置します。
  • 999 順列999 組のポイントまたは値をランダムに配置します。
String
出力結果をグラフィックスで表示
(オプション)

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

Boolean
加重フィールド
(オプション)

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

Field
開始距離
(オプション)

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

Double
距離の増分
(オプション)

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

Double
分析境界付近の補正方法
(オプション)

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

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

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

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

入力フィーチャクラスを分析するエリアを定義するフィーチャクラスです。 [分析範囲の指定方法] パラメーターで [分析範囲をフィーチャクラスから取得] を選択した場合にだけ指定してください。

Feature Layer

派生した出力

ラベル説明データ タイプ
結果のグラフ

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

Graph

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

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

Graph

コードのサンプル

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

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

import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.stats.MultiDistanceSpatialClustering("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.stats.MultiDistanceSpatialClustering("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())

環境

特殊なケース

出力座標系

フィーチャ ジオメトリは、分析に先立って出力座標系に投影されます。そのため、[開始距離] および [距離の増分] パラメーターで入力する値は、出力座標系で指定する値と一致する必要があります。 すべての数学的演算は、出力座標系の空間参照に基づいて実行されます。