概要
フィーチャ属性およびオプションの空間的/時系列的制限に基づいてフィーチャをグループ化します。
図
使用法
-
このツールは、分析に使用されるフィールドに加え、新しい整数フィールド SS_GROUP を使用して出力フィーチャクラスを生成します。デフォルトでは SS_GROUP フィールドに基づいてレンダリングされ、各フィーチャがどのグループに属するかが見てわかります。たとえば、グループ数を 3 に設定した場合、各レコードの SS_GROUP フィールドの値は 1、2、3 のいずれかになります。[空間的制限] パラメーターで NO_SPATIAL_CONSTRAINT を選択すると、出力フィーチャクラスに SS_SEED という新規のバイナリ フィールドが挿入されます。 SS_SEED フィールドには、グループを開始する始点として使用されたフィーチャが示されます。SS_SEED フィールドのゼロ以外の値の数は、[グループ数] パラメーターに入力した値と一致します。
-
このツールでは、オプションとして、[出力レポート ファイル] パラメーターのパスを指定すると、PDF レポート ファイルを作成できます。このレポートには、特定されたグループの特性を理解するために役立つさまざまなテーブルやグラフが含まれます。PDF レポート ファイルには、[結果] ウィンドウからアクセスできます。
-
[入力フィーチャクラス] が投影されていない場合 (つまり、座標が、度、分、および秒で与えられた場合)、または出力座標系が地理座標系に設定された場合、弦の測定値を使用して距離が計算されます。弦距離の測定値が使用されるのは、少なくとも互いに約 30° の範囲内のポイントに対して、すばやく算出され、実際の測地距離に非常に近い推定値が得られるという理由からです。弦距離は、短回転楕円体に基づいています。地球の表面上の 2 点が与えられた場合、2 点間の弦の距離は、3 次元の地球内部を通過して 2 点を接続するラインの長さになります。弦距離は、メートル単位でレポートされます。
-
[一意の ID フィールド] を使用して、[出力フィーチャクラス] のレコードを元の入力フィーチャクラスのレコードにリンクします。[一意の ID フィールド] には、各フィーチャに一意の値を指定する必要があるため、このフィールドは通常、フィーチャクラスで維持される永続的なフィールドでなければなりません。データセットに [一意の ID フィールド] がない場合は、フィーチャクラス テーブルに新しい整数フィールドを追加して、フィールド値が FID/OID フィールドと等しくなるように計算されるように設定することで、簡単に作成できます。[一意の ID フィールド] パラメーターに FID/OID フィールドを直接使用することはできません。
-
[分析フィールド] は数値である必要があり、多様な値を含んでいる必要があります。変化のないフィールド (つまり、どのレコードも値が同じ) は解析から排除されますが、[出力フィーチャクラス] には含まれます。[グループ分析 (Grouping Analysis)] ツールでは、カテゴリ フィールドがダミー変数 (あるカテゴリに属するすべてのフィーチャは値 1、それ以外のすべてのフィーチャはゼロ) として表される場合にカテゴリ フィールドを使用できます。
-
[グループ分析 (Grouping Analysis)] ツールによるグループ構築では、空間的または時間的制限を課すことも、課さないことも可能です。一部のアプリケーションでは、作成したグループに隣接または近接要件を適用したくない場合があります。そのような場合は、[空間的制限] パラメーターを NO_SPATIAL_CONSTRAINT に設定します。
-
一部の分析では、グループを空間的に隣接させたい場合があります。隣接オプションは、ポリゴン フィーチャクラスに対して有効化され、グループの別のメンバーとエッジを共有している場合 (CONTIGUITY_EDGES_ONLY)、あるいはエッジまたは頂点を共有している場合 (CONTIGUITY_EDGES_CORNERS) にのみフィーチャが同じグループに属することができることを指定します。
-
DELAUNAY_TRIANGULATION および K_NEAREST_NEIGHBORS オプションは、すべてのグループ メンバーが近隣であることを確保したい場合にポイント フィーチャまたはポリゴン フィーチャに対して有効です。これらのオプションにより、他の少なくとも 1 つのフィーチャが Natural Neighbor (ドローネ三角形分割) または K 最近隣内挿である場合にのみフィーチャがグループに含まれることを指定します。K は考慮する近傍数であり、[近傍数] パラメーターを使用して指定します。
-
空間的制限と時間的制限の両方を使用してグループを作成するには、まず [空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールを使用してフィーチャ間の空間的および時間的リレーションシップを定義する空間ウェイト マトリックス ファイル(*.swm) を作成します。次に、[空間的制限] パラメーターを GET_SPATIAL_WEIGHTS_FROM_FILE に設定し、[空間ウェイト マトリックス ファイル] パラメーターを作成した SWM ファイルに設定して、[グループ分析 (Grouping Analysis)] を実行します。
-
[空間ウェイト マトリックスの生成 (Generate Spatial Weights Matrix)] ツールを使用して、まず SWM ファイルを作成し、次に [空間ウェイト マトリックス ファイル] パラメーターにそのファイルのパスを指定することで、固定距離など、その他の [空間的制限] を適用することができます。
-
空間的制限を定義すると、コンパクト、隣接、または近接グループが確保されます。[分析フィールド] のリストに空間的変数を含めることにより、これらのグループ属性も利用しやすくなります。空間的変数の例には、高速道路の入り口ランプまでの距離、求職先へのアクセス性、買い物への近さ、接続の手段、さらに座標系 (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 統計値を表すグラフが表示されます。
-
分割された追加のグループが恣意的な結果となった場合、指定したグループ数に関係なく、ツールは停止します。たとえば、データに 3 つの空間的にクラスタリングされたポリゴンと 1 つの分析フィールドが含まれているとします。クラスター内のすべてのフィーチャに同じ分析フィールド値がある場合、いずれかのクラスターは、3 つのグループが作成された後に恣意的に分割されていることになります。このような場合に 3 つ以上のグループを指定していても、ツールは 3 つのグループのみを作成します。グループ内の少なくとも 1 つの分析フィールドの値に、ある程度のばらつきがある場合、分割によるグループの作成は継続します。
-
分析に空間的または空間的時間的制限を含めると、疑似 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) です。[グループの最適数の評価] を選択しないと、派生したすべての出力変数が None に設定されます。
-
一連のフィーチャに割り当てられるグループ番号は実行するたびに変わる可能性があります。たとえば、所得の変数に基づいてフィーチャを 2 つのグループに分けるとします。初回の分析では、高所得フィーチャ群が「グループ 2」、低所得フィーチャ群が「グループ 1」とラベル付けされ、2 回目の分析では、高所得フィーチャ群が「グループ 1」とラベル付けされます。[NO_SPATIAL_CONSTRAINT] を指定すると、解析を実行するごとに、中所得フィーチャ群の一部が高所得グループと低所得グループの間を行ったり来たりする可能性があります。
-
作ろうと思えば大量のグループを作れますが、ほとんどのシナリオでは、フィーチャを分けるのに必要なグループはほんの 2、3 個です。大量のグループがあるとグラフやマップの解釈が困難になるため、[グループ数] パラメーターに 15 を超える値を入力したり、15 を超える [分析フィールド] を選択すると、レポートは作成されません。ただし、このグループの最大数の制限を増やすことができます。
-
このツールでは、必要に応じて結果を要約している PDF ファイルを作成することもできます。PDF ファイルは、カタログ ウィンドウに自動的に表示されません。PDF ファイルをカタログに表示するには、ArcCatalog アプリケーションを開き、[カスタマイズ] メニュー オプションを選択し、[ArcCatalog オプション] をクリックし、[ファイル タイプ] タブを選択します。[新規タイプ] ボタンをクリックし、下に示すように [ファイル拡張子] として [PDF] を指定します。
-
アラビア語や右から左に記述するその他の言語の言語パッケージで構成されたコンピューターでは、PDF [出力レポート ファイル] で文字の欠落とフォーマットの問題が発生することがあります。これらの問題は、この記事で対処されています。
-
出力レポート ファイルの詳細については、「グループ分析 (Grouping Analysis) の詳細」をご参照ください。
構文
arcpy.stats.GroupingAnalysis(Input_Features, Unique_ID_Field, Output_Feature_Class, Number_of_Groups, Analysis_Fields, Spatial_Constraints, {Distance_Method}, {Number_of_Neighbors}, {Weights_Matrix_File}, {Initialization_Method}, {Initialization_Field}, {Output_Report_File}, {Evaluate_Optimal_Number_of_Groups})
パラメーター | 説明 | データ タイプ |
Input_Features | グループを作成するフィーチャクラスまたはフィーチャ レイヤー。 | Feature Layer |
Unique_ID_Field | 入力フィーチャクラスのすべてのフィーチャで値が異なる整数フィールドです。個別値フィールドがない場合は、整数フィールドをフィーチャクラス テーブルに追加し、FID/OBJECTID フィールドに等しいフィールド値を計算することによって、作成できます。 | Field |
Output_Feature_Class | 新規に作成された出力フィーチャクラス。すべてのフィーチャ、指定した分析フィールド、および各フィーチャが属しているグループを示すフィールドが含まれています。 | Feature Class |
Number_of_Groups | 作成するグループの数。15 グループを超えると、[出力レポート] パラメーターは無効になります。 | Long |
Analysis_Fields [analysis_field,...] | グループを別のグループと区別するために使用するフィールドのリスト。15 フィールドを超えると、[出力レポート] パラメーターは無効になります。 | Field |
Spatial_Constraints | 作成したグループをフィーチャ間の空間リレーションシップによって制限するかどうかとその方法を指定します。
| String |
Distance_Method (オプション) | 各フィーチャから隣接フィーチャまでの距離の計算方法を指定します。
| String |
Number_of_Neighbors (オプション) | このパラメーターは、Spatial_Constraints パラメーターが K_NEAREST_NEIGHBORS であるか、いずれかの隣接方法 (CONTIGUITY_EDGES_ONLY または CONTIGUITY_EDGES_CORNERS) である場合に指定できます。デフォルトの近傍数は 8 です。K_NEAREST_NEIGHBORS に 2 より小さい数を指定することはできません。この値は、グループを作成するときに考慮される最近隣候補の正確な数を反映します。そのグループ内の他のいずれかのフィーチャが K 最近隣でない限り、フィーチャはグループに含まれません。CONTIGUITY_EDGES_ONLY および CONTIGUITY_EDGES_CORNERS のデフォルトは、0 です。隣接方法の場合、考慮される近隣候補の正確な数を反映します。指定された Number_of_Neighbors よりも少ない数のフィーチャに対して追加される近傍フィーチャは、フィーチャの中心点との近接度に基づきます。 | Long |
Weights_Matrix_File (オプション) | フィーチャ間の空間リレーションシップを指定する空間ウェイトが含まれたファイルへのパス。 | File |
Initialization_Method (オプション) | 選択した Spatial_Constraint パラメーターが NO_SPATIAL_CONSTRAINT である場合は、初期シードを取得する方法を指定します。シードはグループの出発点です。シードからグループが「成長」します。たとえば、グループ数を 3 と指定すると、分析は 3 つのシードで開始されます。
| String |
Initialization_Field (オプション) | シード フィーチャを識別する数値フィールド。このフィールドが 1 であるフィーチャがグループの出発点として使用されます。 | Field |
Output_Report_File (オプション) | グループの特性を要約して作成される PDF レポート ファイルの絶対パス。このレポートは、各グループの特性を理解するときに役立つ複数のグラフを含んでいます。レポート ファイルの作成には、かなりの処理時間がかかる場合があります。 | File |
Evaluate_Optimal_Number_of_Groups (オプション) |
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
Output_FStat | 疑似 F 統計。 | Double |
Max_FStat_Group | 最大疑似 F 統計値に関連付けられたグループの数。 | Double |
Max_FStat | グループ 2 ~ 15 の最大疑似 F 統計。 | Double |
コードのサンプル
Grouping Analysis (グループ分析) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、GroupingAnalysis (欠損値の補完) ツールの使用方法を示しています。
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")
GroupingAnalysis (グループ分析) の例 2 (スタンドアロン スクリプト)
次のスタンドアロン Python スクリプトは、GroupingAnalysis (欠損値の補完) ツールの使用方法を示しています。
# Grouping Analysis of Vandalism data in a metropolitan area
# using the Grouping Analysis Tool
# Import system modules
import arcpy
import arcpy.stats as SS
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.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 Analysis 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 arcpy.ExecuteError:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい