80-20 分析 (80-20 Analysis) (犯罪分析と安全)

サマリー

フィーチャの 80-20 分析を実施し、インシデント数を基にポイント クラスター、ライン、またはポリゴンを作成します。 このツールには、インシデントが過度に発生している位置を特定するために、累積率フィールドを計算します。

使用法

  • 80-20 ルールとは、インシデントの大半がごく少数の位置で発生しているという理論的な概念です。たとえば、20% の位置で 80% のインシデントが発生していることを意味します。

  • 犯罪解析の分野では、このツールはさまざまな方法で使用されます。 一般的な解析ワークフロー解析には、次のようなものがあります。

    • インシデントをクラスターに集約 - このタイプの解析は、特定の期間でインシデント数が最も高いプロパティを識別します。
    • インシデントをストリート セグメントに集約 - このタイプの解析は、ホット ストリートの検索と説明されることもあります。
    • インシデントを特定の近隣境界に集約 - このタイプの解析は、ホット エリアの検索と説明されることもあります。
  • [集約方法] パラメーターは、80-20 分析の実行方法と入力ポイント フィーチャの集約方法を決定します。 分析の実行に使用可能な 2 つの集約方法は、[クラスター][最近隣フィーチャ] です。これらについては、以下で説明します。

  • [集約方法] パラメーターが [クラスター] に設定されている場合に、次のフィールドが出力に追加されます。

    • ICOUNT- 対象クラスターのクラスター許容値内にあるポイント数。
    • PERC- 対象クラスターのクラスター許容値内にある、総ポイント数の割合。
    • CUMU_PERC- 現在のクラスター ポイントと、その他すべての大きいクラスター ポイントの累積率。ICOUNT 値を使用して計算される。
    • CUMU_LPERC- 現在のクラスター ポイントと、その他すべての大きいクラスター ポイントの累積率。出力ポイント フィーチャの総数を使用して計算される。

    CUMU_PERCCUMU_LPERC の値は、過剰なクラスター位置の数が、犯罪の大部分を占めているかどうかを判断するために使用されます。たとえば、クラスターの位置の 20% がポイント総数の 80% を含んでいるかどうかなどです。

    [集約方法] パラメーターが [最近隣フィーチャ] に設定されている場合に、次のフィールドが出力に追加されます。

    • ICOUNT- ラインまたはポリゴン フィーチャに最近隣にあるポイントの数。
    • PERC- ラインまたはポリゴン フィーチャの近くまたは内側にあるポイントの総数の割合。
    • CUMU_PERC- 現在のフィーチャと、回数が大きいその他すべてのフィーチャの累積率。ICOUNT 値を使用して計算される。
    • CUMU_LPERC- 現在のフィーチャと、回数が大きいその他すべてのフィーチャの累積率。出力ラインまたはポリゴン フィーチャの総数を使用して計算される。
    • INC_KM- キロメートルあたりのフィーチャ数。 これは、[入力比較フィーチャ] がラインである場合に出力に追加されます。
    • INC_MI- マイルあたりのフィーチャ数。 これは、[入力比較フィーチャ] がラインである場合に出力に追加されます。
    • INC_SQKM- 平方キロメートルあたりのフィーチャ数。 これは、[入力比較フィーチャ] がポリゴンである場合に出力に追加されます。
    • INC_SQMI- 平方マイルあたりのフィーチャ数。 これは、[入力比較フィーチャ] がポリゴンである場合に出力に追加されます。

    CUMU_PERCCUMU_LPERC の値は、過剰なラインまたはポリゴン フィーチャの数が、犯罪の大部分を占めているかどうかを判断するために使用されます。たとえば、ラインまたはポリゴン フィーチャの位置の 20% がポイント総数の 80% を含んでいるかどうかなどです。

    出力内のレコードは、生成される ICOUNT (インシデント数)、CUMU_PERC (累積率)、PERC (インシデント率)、CUMU_LPERC (累積ロケーション率) フィールド値に基づいて並べ替えられます。

  • 出力フィーチャクラスは、ICOUNT フィールドによってシンボル表示されます。

  • 出力ポイント フィーチャクラスは、各位置で発生するインシデント数に基づく等級シンボル レイヤーによってシンボル表示されます。

パラメーター

ラベル説明データ タイプ
入力ポイント フィーチャ

クラスター、ライン、またはポリゴンの作成に使用する入力ポイント フィーチャ。

Feature Layer
出力フィーチャクラス

出力フィーチャクラス。

[集約方法] パラメーターが [クラスター] に設定されている場合、出力がポイント フィーチャクラスになります。

[集約方法] パラメーターが [最近隣フィーチャ] に設定されている場合、出力のジオメトリ タイプが [入力比較フィーチャ] パラメーター値と同じになります。

Feature Class
クラスター許容値
(オプション)

ポイントを分ける最大距離。この距離の範囲内では、ポイントは同じクラスターの一部として見なされます。

クラスター許容値が指定されない場合、ツールは、ポイント フィーチャが重なっているクラスターを作成します。

このパラメーターは、[集約方法] パラメーターが [クラスター] に設定されている場合に有効です。

Linear Unit
出力フィールド
(オプション)

出力に渡す入力フィーチャのフィールド。

Field
集約方法
(オプション)

入力ポイント フィーチャの集約方法を指定します。

  • クラスター入力ポイント フィーチャがクラスター化されます。 これがデフォルトです。
  • 最近隣フィーチャ入力ポイント フィーチャは、最も近い比較ポリゴンまたはライン フィーチャに集約されます。
String
入力比較フィーチャ
(オプション)

[入力ポイント フィーチャ] パラメーター値を集約する入力比較ポリゴンまたはライン フィーチャクラス。

このパラメーターは、[集約方法] パラメーターが [最近隣フィーチャ] に設定されている場合に有効です。

Feature Layer

arcpy.ca.EightyTwentyAnalysis(in_features, out_feature_class, {cluster_tolerance}, {out_fields}, {aggregation_method}, {in_comparison_features})
名前説明データ タイプ
in_features

クラスター、ライン、またはポリゴンの作成に使用する入力ポイント フィーチャ。

Feature Layer
out_feature_class

出力フィーチャクラス。

aggregation_method パラメーターが POINT_CLUSTER に設定されている場合、出力がポイント フィーチャクラスになります。

aggregation_method パラメーターが CLOSEST_FEATURE に設定されている場合、出力のジオメトリ タイプが in_comparison_features パラメーター値と同じになります。

Feature Class
cluster_tolerance
(オプション)

ポイントを分ける最大距離。この距離の範囲内では、ポイントは同じクラスターの一部として見なされます。

クラスター許容値が指定されない場合、ツールは、ポイント フィーチャが重なっているクラスターを作成します。

このパラメーターは、aggregation_method パラメーターが POINT_CLUSTER に設定されている場合にアクティブになります。

Linear Unit
out_fields
[out_fields,...]
(オプション)

出力に渡す入力フィーチャのフィールド。

Field
aggregation_method
(オプション)

入力ポイント フィーチャの集約方法を指定します。

  • POINT_CLUSTER入力ポイント フィーチャがクラスター化されます。 これがデフォルトです。
  • CLOSEST_FEATURE入力ポイント フィーチャは、最も近い比較ポリゴンまたはライン フィーチャに集約されます。
String
in_comparison_features
(オプション)

in_features パラメーター値を集約する入力比較ポリゴンまたはライン フィーチャクラス。

このパラメーターは、aggregation_method パラメーターが CLOSEST_FEATURE に設定されている場合にアクティブになります。

Feature Layer

コードのサンプル

EightyTwentyAnalysis の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで EightyTwentyAnalysis 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = r"C:/data/city_pd.gdb"
arcpy.ca.EightyTwentyAnalysis("CallsForService", "80_20_clusters")
EightyTwentyAnalysis の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで EightyTwentyAnalysis 関数を使用する方法を示しています。


# Name: EightyTwentyAnalysis.py
# Description: Conducts an 80/20 analysis of 911 calls to determine clusters of calls within 50 meters of each other.

# import system modules 
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:\data\city_pd.gdb"

# Set local variables
in_features = "CallsForService"
out_feature_class = "80_20_clusters"
cluster_tolerance = "50 Meters"
out_fields = ["FULLADDR","RESCITY", "RESSTATE", "RESZIP5"]

# Run EightyTwentyAnalysis
arcpy.ca.EightyTwentyAnalysis(in_features,
                              out_feature_class,
                              cluster_tolerance,
                              out_fields)
EightyTwentyAnalysisStreets の例 3 (スタンドアロン スクリプト)

次の Python スクリプトは、近隣の犯罪数が過剰なすストリート セグメントを特定するために、スタンドアロン スクリプトで EightyTwentyAnalysis 関数を使用する方法を示しています。 犯罪解析では、このタイプの分析は、ホット スポットの検索と説明されることもあります。

# Name: EightyTwentyAnalysisStreets.py
# Description: Conduct an 80/20 analysis of calls for service to determine street segments with a disproportional amount of crimes nearby.

# import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = r"C:\data\city_pd.gdb"

# Set local variables
in_features = "CallsForService"
out_feature_class = "80_20_streets"
comp_features = "city_centerlines"
out_fields = ["STREET_NAME", "L_ADDR_NUM", "R_ADDR_NUM"]

# Run Eighty Twenty Analysis
arpcy.ca.EightyTwentyAnalysis(in_features,
                              out_feature_class,
                              in_comparison_features=comp_features,
                              out_fields=out_fields)

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック