グループ分析(Grouping Analysis) (空間統計解析)
図
使用法
-
このツールは、分析に使用されるフィールドに加え、新しい整数フィールド SS_GROUP を使用して出力フィーチャクラスを生成します。デフォルトでは SS_GROUP フィールドに基づいてレンダリングされ、各フィーチャがどのグループに属するかが見てわかります。たとえば、グループ数を 3 に設定した場合、各レコードの SS_GROUP フィールドの値は 1、2、3 のいずれかになります。[空間的制限] パラメータに NO_SPATIAL CONSTRAINT を選択した場合、出力フィーチャクラスには新しいバイナリ フィールド SS_SEED も含まれます。SS_SEED フィールドには、グループを開始する始点として使用されたフィーチャが示されます。SS_SEED フィールドのゼロ以外の値の数は、[グループ数] パラメータに入力した値と一致します。
このツールでは、オプションとして、[出力レポート ファイル] パラメータのパスを指定すると、PDF レポート ファイルを作成できます。このレポートには、特定されたグループの特性を理解するために役立つさまざまなテーブルやグラフが含まれます。PDF レポート ファイルには、[結果] ウィンドウからアクセスできます。
注意:レポート ファイルの作成には、かなりの処理時間がかかる場合があります。したがって、グループ分析(Grouping Analysis)では、グループのメンバーシップを示す [出力フィーチャクラス] が作成されますが、15 を超えるグループまたは変数を指定した場合、PDF レポート ファイルは作成されません。
-
[一意の ID フィールド] を使用して、[出力フィーチャクラス] のレコードを元の入力フィーチャクラスのレコードにリンクします。そのため、[一意の ID フィールド] の値はどのフィーチャでも一意でなくてはならず、一般にそのフィーチャクラスに残る永続的なフィールドである必要があります。データセットに [一意の ID フィールド] がない場合は、フィーチャクラス テーブルに新しい整数フィールドを追加して、フィールド値が FID/OID フィールドと等しくなるように計算されるように設定することで、簡単に作成できます。[一意の ID フィールド] パラメータに FID/OID フィールドを直接使用することはできません。
-
[分析フィールド] は数値である必要があり、多様な値を含んでいる必要があります。変化のないフィールド(つまり、どのレコードも値が同じ)は解析から排除されますが、[出力フィーチャクラス] には含まれます。[グループ分析(Grouping Analysis)] ツールでは、カテゴリ フィールドがダミー変数(あるカテゴリに属するすべてのフィーチャは値 1、それ以外のすべてのフィーチャはゼロ)として表される場合にカテゴリ フィールドを使用できます。
[グループ分析(Grouping Analysis)] ツールによるグループ構築では、空間的/時間的制限を課すことも、課さないことも可能です。一部のアプリケーションでは、作成したグループに隣接または近接要件を適用したくない場合があります。このようなケースでは、[空間的制限] パラメータを NO_SPATIAL_CONSTRAINT に設定します。
一部の分析では、グループを空間的に隣接させたい場合があります。CONTIGUITY オプションは、ポリゴン フィーチャクラスに対して有効化され、グループの別のメンバーとエッジを共有している場合(CONTIGUITY_EDGES_ONLY)、あるいはエッジまたは頂点を共有している場合(CONTIGUITY_EDGES_CORNERS)にのみフィーチャが同じグループに属することができることを指定します。
DELAUNAY_TRIANGULATION および K_NEAREST_NEIGHBORS オプションは、すべてのグループ メンバーが近隣であることを確保したい場合にポイント フィーチャまたはポリゴン フィーチャに対して有効です。これらのオプションにより、他の少なくとも 1 つのフィーチャが Natural Neighbor(ドローネ三角形分割)または K Nearest Neighbor である場合にのみフィーチャがグループに含まれることを指定します。K は考慮する近傍数であり、[近傍数] パラメータを使用して指定します。
空間的制限と時間的制限の両方を使用してグループを作成するには、まず [空間ウェイト マトリックスの作成(Generate Spatial Weights Matrix)] ツールを使用してフィーチャ間の空間的および時間的リレーションシップを定義する空間ウェイト マトリックス ファイル(SWM ファイル)を作成します。次に、[空間的制限] パラメータを GET_SPATIAL_WEIGHTS_FROM_FILE に設定し、[空間ウェイト マトリックス ファイル] パラメータを作成した SWM ファイルに設定して、[グループ分析(Grouping Analysis)] を実行します。
[空間ウェイト マトリックスの作成(Generate Spatial Weights Matrix)] ツールを使用して、まず SWM ファイルを作成し、次に [空間ウェイト マトリックス ファイル] パラメータにそのファイルのパスを指定することで、固定距離など、その他の [空間的制限] を適用することができます。
注意:空間ウェイト マトリックス ファイル(SWM)ファイルを作成して空間的制限を定義できますが、実際にはウェイトは適用されません。SWM は単にどのフィーチャが隣接であるか、近接であるかを定義します。空間的制限を適用することにより、同じグループのメンバーとなることができるかできないかを決定します。たとえば、[CONTIGUITY_EDGES_ONLY] を選択すると、単一のグループ内のすべてのフィーチャはグループ内の別のフィーチャと共通する少なくとも 1 つのエッジを持ちます。これにより、結果のグループは空間的隣接を維持します。
空間的制限を定義すると、コンパクト、隣接、または近接グループが確保されます。[分析フィールド] のリストに空間的変数を含めることにより、これらのグループ属性も利用しやすくなります。空間的変数の例には、高速道路の入り口ランプまでの距離、求職先へのアクセス性、買い物への近さ、接続の手段、さらに座標系(X, Y)があります。時刻、曜日、または時間的距離を表す変数を含めることにより、グループ メンバー間の時間的緊密性を高めることができます。
フィーチャ群に明瞭な空間的パターンが見られるときは(空間的に明瞭に分離している 3 つのクラスタなど)、空間的に制限されたグループ化アルゴリズムは複雑になる可能性があります。このため、グループ化アルゴリズムでは、まず明瞭に分離されているグループがあるかどうかを判定します。指定した [グループ数] よりも分離グループの数の方が大きい場合、ツールは解を得ることができず、失敗し、該当するエラー メッセージが表示されます。指定した [グループ数] と分離グループの数がまったく同じである場合、下の(A)に示すように、フィーチャの空間的構成のみをよりどころとしてグループ化がなされます。分離グループの数よりも指定した [グループ数] が大きい場合、すでに判明している分離グループがグループ化の出発点となります。たとえば、3 つの接続されていないグループがあり、指定した [グループ数] が 4 である場合、下の(B)に示すように 3 つのグループのいずれかを分割して 4 番目のグループが作成されます。
場合によっては、[グループ分析(Grouping Analysis)] ツールは適用される空間的制限を満たすことができず、その結果、どのグループにも属さないフィーチャが出てきます(そのフィーチャの SS_GROUP 値は -9999 になり、内容のないレンダリングになります)。これは近傍のないフィーチャがある場合に発生します。これを回避するには、すべてのフィーチャが近傍を持つようにする K_NEAREST_NEIGHBORS を使用します。[近傍数] パラメータを増やすと、接続されていないグループの問題の解決に役立ちます。
可能な限り多くの [分析フィールド] を含めたい傾向がありますが、このツールは単一の変数およびビルドで開始することにより最適に機能します。少ない分析フィールドにより結果を解釈する方がはるかに簡単です。また、フィールドが少ない場合、どの変数が弁別の基準として最もふさわしいかを容易に判定できます。
[空間的制限] パラメータに NO_SPATIAL_CONSTRAINT を選択すると、[初期化方法] で FIND_SEED_LOCATIONS、GET_SEEDS_FROM_FIELD、および USE_RANDOM_SEEDS の 3 つのオプションを使用できます。シードは、個々のグループを開始するときに使用されるフィーチャです。たとえば、[グループ数] パラメータに 3 を入力した場合、分析は 3 つのシード フィーチャで開始されます。デフォルトのオプション、FIND_SEED_LOCATIONS では、最初のシードはランダムに選択されます。以降は、データ空間内で互いに遠く離れているフィーチャを表すシードが選択されていきます。データ空間内で互いに異なる領域をキャプチャする初期シードを選択すると、パフォーマンスが向上します。種々のグループによって表したい個別の特性が、特定のフィーチャに特によく反映されている場合があります。このようなケースでは、これらの個別のフィーチャを特定するシード フィールドを作成します。作成するシード フィールドには、初期シード フィーチャ以外ではすべてゼロを指定する必要があり、初期シード フィーチャには値 1 を指定する必要があります。次に、[初期化方法] パラメータに GET_SEEDS_FROM_FIELD を選択します。ある種の感度分析を実行して、同じグループ内で常に見つかるフィーチャを確認したい場合は、[初期化方法] パラメータに USE_RANDOM_SEEDS オプションを選択します。このオプションでは、すべてのシード フィーチャがランダムに選択されます。
[初期化フィールド] の値が 1 の場合、それはシードとして解釈されます。シード フィーチャが [グループ数] よりも多い場合、シード フィーチャは [初期化フィールド] で識別されているシード フィーチャからランダムに選択されます。シード フィーチャが [グループ数] で指定されている数よりも少ない場合は、[初期化フィールド] で識別されているシード フィーチャから(データ空間内で)遠くなるように追加のシード フィーチャが選択されます。
データに最適な [グループ数] がわかっている場合があります。わからない場合は、グループ数を色々と変えて試行し、グループの差別化に最適な数を見出す必要があります。[グループの最適数の評価] パラメータをオンにすると、2 から 15 までのグループ数でグループ化ソリューションについて疑似 F 統計が計算されます。[グループ数] を決めるのに頼れる基準が他にない場合は、疑似 F 統計値が最大になる値を、グループ数として採用してください。F 統計値が最大となるソリューションでは、同じグループに属するフィーチャ同士の相似性、違うグループに属するフィーチャ同士の相違性が両方とも最大になります。オプションの [出力レポート ファイル] を指定すると、その PDF レポートにはグループ数が 2 ~ 15 のソリューションの F 統計値を示すグラフが表示されます。
分析に空間的または空間的時間的制限を含めると、疑似 F 統計を比較できます([入力フィーチャ] と [分析フィールド] が変わらない限り)。したがって、F 統計値を使用すると、最適な [グループ数] を計算できるばかりでなく、最も効果的な [空間的制限] オプション、[距離計算の方法]、および [近傍数] の選択も容易になります。
[空間的制限] パラメータに NO_SPATIAL_CONSTRAINT を選択し、[初期化方法] に FIND_SEED_LOCATIONS または USE_RANDOM_SEEDS を選択したときにフィーチャをグループ化するために使用される K 平均アルゴリズムは、ヒューリスティクスを組み込み、(同じデータを使用し、同じツール パラメータを使用しても)ツールを使用するたびに異なる結果を返す可能性があります。これは、グループの出発点とする初期シード フィーチャを見つける過程にランダムな要素があるためです。
空間的制限を適用するとランダムな要素はなくなります。このため、単一の疑似 F 統計を 2 グループから 15 グループについて計算でき、算出された最大 F 統計値を使用して、分析に最適な [グループ数] を決定できます。ただし、NO_SPATIAL_CONSTRAINT オプションはヒューリスティック ソリューションであるため、グループの最適な数を決定するにはさらに込み入った作業が必要になります。初期シード フィーチャが異なるため、F 統計はツールを実行するたびに異なる可能性があります。ただし、データに個別パターンが存在するときは、個々の実行によって得られるソリューションの一貫性が高くなります。このため、NO_SPATIAL_CONSTRAINT オプションを選択したときに最適なグループ数を決定しやすいように、ツールは 2、3、4 から 15 グループまで 10 回のグループ化分析を行います。次に、これら 10 個のソリューションの分布に関する情報が報告され(最小値、最大値、平均値、および中央値)、分析に最適なグループ数の決定に役立てられます。
[グループ分析(Grouping Analysis)] ツールは、カスタム モデルやスクリプトで使用できる 3 つの派生した出力値を返します。これらは、[グループ数] の疑似 F 統計(Output_FStat)、グループ数 2 から 15 までの最大の疑似 F 統計(Max_FStat)、最大の疑似 F 統計値に関連付けられたグループ数(Max_FStat_Group)です。[グループの最適数の評価] を選択しないと、派生したすべての出力変数値は [なし] に設定されます。
一連のフィーチャに割り当てられるグループ番号は実行するたびに変わる可能性があります。たとえば、所得の変数に基づいてフィーチャを 2 つのグループに分けるとします。初回の分析では高所得フィーチャ群が「グループ 2」、低所得フィーチャ群が「グループ 1」とラベル付けされ、2 回目の分析では高所得フィーチャ群が「グループ 1」、低所得フィーチャ群が「グループ 2」とラベル付けされるかもしれません。また、NO_SPATIAL_CONSTRAINT を指定すると、中所得フィーチャの一部が、解析を実行するたびに高所得グループと低所得グループを行ったり来たりするかもしれません。
作ろうと思えば大量のグループを作れますが、ほとんどのシナリオでは、フィーチャを分けるのに必要なグループはほんの 2、3 個です。大量のグループがあるとグラフやマップの解釈が困難になるため、[グループ数] パラメータに 15 を超える値を入力したり、15 を超える [分析フィールド] を選択すると、レポートは作成されません。ただし、このグループの最大数の制限を増やすことができます。
詳細:グループ分析(Grouping Analysis) ツールの Python ソース コードを使用できるため、必要に応じて、15 変数/15 グループのレポート制限を無効にすることができます。この上限は、Partition.py スクリプト ファイルとツールの [空間統計] ツールボックス内の整合チェック コードの両方にある 2 つの変数により設定します。
maxNumGroups = 15 maxNumVars = 15
このツールでは、必要に応じて結果を要約している PDF ファイルを作成することもできます。PDF ファイルは、カタログ ウィンドウに自動的に表示されません。PDF ファイルを カタログに表示するには、ArcCatalog アプリケーションを開き、[カスタマイズ] メニュー オプションを選択し、[ArcCatalog オプション] をクリックし、[ファイル タイプ] タブをクリックします。[新規タイプ] ボタンをクリックし、[ファイル拡張子] に [PDF] を指定します。
中国語または日本語の ArcGIS 言語パッケージで構成されたコンピュータでは、PDF [出力レポート ファイル] で文字の欠落とフォーマットの問題またはそのどちらかが発生することがあります。これらの問題は、フォント設定の変更により修正できます。
出力レポート ファイルについては、「[グループ分析(Grouping Analysis)] ツールの仕組みの詳細」をご参照ください。
構文
パラメータ | 説明 | データ タイプ |
Input_Features |
グループを作成するフィーチャクラスまたはフィーチャ レイヤ。 | Feature Layer |
Unique_ID_Field |
[入力フィーチャ] データセットのフィーチャごとに異なる値を持つ整数フィールド。 | Field |
Output_Feature_Class |
作成される新しい出力フィーチャクラス。すべてのフィーチャ、指定した分析フィールド、および各フィーチャが属するグループを示すフィールドを含んでいます。 | Feature Class |
Number_of_Groups |
作成するグループの数。15 グループを超えると、[出力レポート] パラメータは無効になります。 | Long |
Analysis_Fields [Analysis_Fields,...] |
グループを別のグループと区別するために使用するフィールドのリスト。15 フィールドを超えると、[出力レポート] パラメータは無効になります。 | Field |
Spatial_Constraints |
作成したグループをフィーチャ間の空間リレーションシップによって制限するかどうかとその方法を指定します。
| String |
Distance_Method (オプション) |
各フィーチャから隣接フィーチャまでの距離の計算方法を指定します。
| String |
Number_of_Neighbors (オプション) |
このパラメータは、[空間的制限] パラメータが K_NEAREST_NEIGHBORS であるか、CONTIGUITY 方法のいずれかである場合に有効になります。デフォルトの近傍数は 8 です。K_NEAREST_NEIGHBORS の場合、この整数値はグループの作成時に考慮する最近隣候補の正確な数を反映します。そのグループ内の他のいずれかのフィーチャが K 最近隣でない限り、フィーチャはグループに含まれません。CONTIGUITY 方法の場合、この値はアイランド ポリゴンのみについて考慮される近隣候補の正確な数を反映します。アイランド ポリゴンは隣接する近隣を持たないため、隣接していないがすぐ近くにある近隣を割り当てられます。 | Long |
Weights_Matrix_File (オプション) |
フィーチャ間の空間リレーションシップを指定する空間ウェイトが含まれたファイルへのパス。 | File |
Initialization_Method (オプション) |
選択した [空間的制限] パラメータが NO_SPATIAL_CONSTRAINT である場合は、初期シードを取得する方法を指定します。シードはグループの出発点です。シードからグループが「成長」します。たとえば、グループ数を 3 と指定すると、分析は 3 つのシードで開始されます。
| String |
Initialization_Field (オプション) |
シード フィーチャを識別する数値フィールド。このフィールドが 1 であるフィーチャがグループの出発点として使用されます。 | Field |
Output_Report_File (オプション) |
グループの特性を要約して作成される .pdf レポート ファイルの絶対パス。このレポートは、各グループの特性を理解するときに役立つ複数のグラフを含んでいます。レポート ファイルの作成には、かなりの処理時間がかかる場合があります。 | File |
Evaluate_Optimal_Number_of_Groups (オプション) |
| Boolean |
コードのサンプル
次の Python ウィンドウ スクリプトは、Grouping Analysis(グループ分析)ツールの使用方法を示しています。
import arcpy
import arcpy.stats as SS
arcpy.env.workspace = r"C:\GA"
SS.GroupingAnalysis("Dist_Vandalism.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
次のスタンドアロン Python スクリプトは、Grouping Analysis(グループ分析)ツールを使用する方法を示しています。
# Grouping Analysis of Vandalism data in a metropolitan area
# using the Grouping Analysis Tool
# Import system modules
import arcpy, os
import arcpy.stats as SS
# Set geoprocessor object property to overwrite existing output, by default
arcpy.gp.overwriteOutput = True
try:
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"C:\GA"
# Join the 911 Call Point feature class to the Block Group Polygon feature class
# Process: Spatial Join
fieldMappings = arcpy.FieldMappings()
fieldMappings.addTable("ReportingDistricts.shp")
fieldMappings.addTable("Vandalism2006.shp")
sj = arcpy.SpatialJoin_analysis("ReportingDistricts.shp", "Vandalism2006.shp", "Dist_Vand.shp",
"JOIN_ONE_TO_ONE",
"KEEP_ALL",
fieldMappings,
"COMPLETELY_CONTAINS", "", "")
# Use Grouping Anlysis tool to create groups based on different variables or analysis fields
# Process: Group Similar Features
ga = SS.GroupingAnalysis("Dist_Vand.shp", "TARGET_FID", "outGSF.shp", "4",
"Join_Count;TOTPOP_CY;VACANT_CY;UNEMP_CY",
"NO_SPATIAL_CONSRAINT", "EUCLIDEAN", "", "", "FIND_SEED_LOCATIONS", "",
"outGSF.pdf", "DO_NOT_EVALUATE")
# Use Summary Statistic tool to get the Mean of variables used to group
# Process: Summary Statistics
SumStat = arcpy.Statistics_analysis("outGSF.shp", "outSS", "Join_Count MEAN; \
VACANT_CY MEAN;TOTPOP_CY MEAN;UNEMP_CY MEAN",
"GSF_GROUP")
except:
# If an error occurred when running the tool, print out the error message.
print arcpy.GetMessages()
環境
- 出力データの座標系
フィーチャ ジオメトリは、分析に先立って出力座標系に投影されます。そのため、[距離バンドまたは距離の閾値] パラメータで入力する値は、出力座標系で指定する値と一致する必要があります。すべての数学的演算は、出力座標系の空間参照に基づいて実行されます。