一般化線形回帰分析 (GLR) を実行して、予測したり、一連の説明変数との関係から従属変数をモデル化したりします。このツールを使用して、連続 (Gaussian)、バイナリ (ロジスティック)、およびカウント (ポワソン分布) のモデルを適合させることができます。
ワークフロー図
解析での使用 GeoAnalytics Tools
GeoAnalytics Tools を使用した解析は、複数の ArcGIS GeoAnalytics Server コンピューターやコアにまたがる分散型処理を使用して実施されます。GeoAnalytics Tools と ArcGIS Enterprise の標準的なフィーチャ解析ツールは、異なるパラメーターと機能を持ちます。これらの相違点については、「フィーチャ解析ツールの相違点」をご参照ください。
例
- 電力会社の GIS アナリストとして、停電のデータセットおよび異常気象のデータを持っています。[多変数グリッドの構築] ツールおよび [多変数グリッドから情報付加] ツールを使用して停電のデータに情報を付加し、停電に関する異常気象情報を含むデータセットを作成します。一般化線形回帰分析を使用して、停電を引き起こしたイベントを決定します。この情報があれば、停電を予測し、リソースを割り当てることができます。
- 大都市のアナリストとして、過去の緊急通報記録および人口統計情報を持っているとします。「どの変数が効果的に緊急通報量を予測するか」という質問に答える必要があります。将来の予測に基づき、予想される緊急応答リソースに対する要求はどのようなものか。
使用上の注意
このツールは、2 つの操作モードで使用できます。[モデルを調整してモデルのパフォーマンスを評価する] オプションを使用すると、さまざまな説明変数およびツール設定を調査しながら、それぞれのモデルのパフォーマンスを評価できます。適切なモデルが見つかったら、[モデルを調整して値を予測する] オプションを使用できます。
モデル化する現象を表すフィールド ([モデル化するフィールドを選択する])、および説明変数を表す 1 つ以上のフィールドとともに [モデルを生成するレイヤーを選択する] パラメーターを使用します。これらのフィールドは数値で、値の範囲を含む必要があります。従属変数または説明変数に欠落値を含むフィーチャは、解析から除外されます。NULL 値を変更する場合、まず [フィールド 演算] ツールを使用して、更新された値を含む新しいレイヤーを作成します。
[一般化線形回帰分析 (Generalized Linear Regression)] ツールは、出力フィーチャおよび診断も生成します。出力フィーチャ レイヤーは自動的にマップに追加され、残差のモデルに、レンダリング スキーマが適用されます。以下では、各出力について詳細に説明します。
回帰分析の正確な結果を得るには、解析に正しいモデル ([連続]、[バイナリ]、または [カウント]) を使用することが重要です。
モデルのサマリー結果と診断がメッセージ ウィンドウに書き込まれ、出力フィーチャクラスの下にチャートが作成されます。報告される診断は、[モデル タイプ] によって決まります。モデル タイプに関する 3 つのオプションは次のとおりです。
- 従属変数が広範囲の値 (温度や総売上額など) をとることができる場合は、モデル タイプとして [連続] (Gaussian) を使用します。従属変数が正規分布しているのが理想的です。
従属変数が 2 つの値 (成功と失敗や存在と不在など) のいずれかをとることができる場合は、モデル タイプとして [バイナリ] (ロジスティック) を使用します。従属変数を含むフィールドは数値で、1 と 0 のみを含む必要があります。データ内に 1 と 0 のばらつきが存在するはずです。
従属変数が不連続で、イベントの発生数 (犯罪件数など) を表す場合は、モデル タイプとして [カウント] (ポワソン分布) の使用を検討します。従属変数が比率を表し、比率の分母が固定値である場合 (1 か月あたりの売上や人口 10,000 人あたりのガン患者の数など) も、カウント モデルを使用できます。[カウント] モデルは従属変数の平均と分散が等しいと想定し、従属変数の値は負になることも、小数を含むこともできません。
従属変数パラメーターおよび説明変数パラメーターは、さまざまな値を含む数値フィールドである必要があります。このツールでは、変数がすべて同じ値を持つ場合 (たとえば、フィールドの値がすべて 9.0 の場合)、解がありません。
予測または説明のフィールドに NULL 値または空の文字列値が 1 つ以上存在するフィーチャは、出力から除外されます。必要に応じて、[フィールド演算 (Calculate Field)] を使用して値を変更できます。
回帰残差が予測より明らかに上下にずれているものがないか視覚的に調べて、それが回帰モデルに欠けている変数の手がかりにならないか確認します。
作成された回帰モデルを使用して、他のフィーチャを予測できます。これらの予測を作成するには、各予測フィーチャ ([値を予測するレイヤーを選択する]) が、指定された説明変数ごとに値を持っている必要があります。入力フィーチャ パラメーターと予測位置パラメーターのフィールド名が一致しない場合、変数照合パラメーターが指定されます。説明変数を照合する場合、入力フィーチャ パラメーターと予測位置パラメーターのフィールドは同じタイプでなければなりません (たとえば、double フィールドは double フィールドと照合する必要があります)。
出力
[一般化線形回帰分析 (Generalized Linear Regression)] ツールでは、さまざまな出力を生成できます。GLR モデルのサマリーおよび統計サマリーは、ポータル アイテム ページで、およびレイヤー上のリソースとして利用できます。結果のサマリーにアクセスするには、Map Viewer で、生成されたレイヤーの下の [結果を表示] をクリックします。このツールは、少なくとも 1 つの出力レイヤーおよびオプションの出力予測フィーチャを生成します。出力フィーチャは、残差をモデル化するためにホットおよびコールド レンダリング方式が適用されて、Map Viewer に自動的に追加されます。生成される診断は、入力フィーチャのモデル タイプによって異なります。これについて、以下で説明します。
連続 (Gaussian)
メッセージと診断の解釈
- [AIC] - これは、モデルのパフォーマンスを計測するための基準であり、回帰モデルの比較に使用できます。モデルの複雑さを考慮すると、[AIC] の値が小さければ小さいほど、観測されたデータにより近似していることを示します。[AIC] は、近似性を正確に計測するための基準ではなく、説明変数が (同じ従属変数に適用されるが) 異なる複数のモデルを比較するための基準です。2 つのモデルの [AIC] 値の差が 3 より大きい場合は、[AIC] 値が小さいモデルのほうがより正確であると見なされます。
- [AICc] - [AICc] は、サンプル サイズが小さい場合に、バイアス補正を [AIC] に適用します。入力のフィーチャ数が増えるにつれて、[AICc] は [AIC] に近づきます。上の [AIC] をご参照ください。
- [R2] - 相関係数の二乗は、近似性を計測するための基準です。この値の範囲は 0.0 ~ 1.0 であり、より高い値が適切な値です。これは、回帰モデルによって説明される従属変数の分散の比率として解釈されることがあります。相関係数の二乗の計算に使用される分母は、二乗された従属変数の値の合計です。モデルに説明変数をさらに追加しても、分母は変更されませんが、分子は変更されます。これにより、モデルの近似性が向上したように見えますが、実際には向上していない可能性があります。次の「補正 R2」の説明をご参照ください。
- [補正 R2] - [R2] の値には上記の問題があるため、調整済み相関係数の二乗の値を算出することで、分子と分母がその自由度によって正規化されます。これには、モデルの変数の数を補正する効果があります。したがって、[補正 R2] の値は、ほぼ常に [R2] の値よりも小さい値です。ただし、この調整を行うと、説明される分散の比率として値を解釈することができなくなります。地理空間加重回帰分析 (GWR) では有効自由度は、使用される近傍の関数であるため、調整は GLR などのグローバル モデルと比較すると顕著である場合があります。このため、モデルを比較する方法としては [AICc] が最適です。
バイナリ (ロジスティック)
メッセージと診断の解釈
- [AIC] - これは、モデルのパフォーマンスを計測するための基準であり、回帰モデルの比較に使用できます。モデルの複雑さを考慮すると、[AIC] の値が小さければ小さいほど、観測されたデータにより近似していることを示します。[AIC] は、近似性を正確に計測するための基準ではなく、説明変数が (同じ従属変数に適用されるが) 異なる複数のモデルを比較するための基準です。2 つのモデルの [AIC] 値の差が 3 より大きい場合は、[AIC] 値が小さいモデルのほうがより正確であると見なされます。
- [AICc] - [AICc] は、サンプル サイズが小さい場合に、バイアス補正を [AIC] に適用します。入力のフィーチャ数が増えるにつれて、[AICc] は [AIC] に近づきます。上の [AIC] をご参照ください。
カウント (ポワソン分布)
メッセージと診断の解釈
- [AIC] - これは、モデルのパフォーマンスを計測するための基準であり、回帰モデルの比較に使用できます。モデルの複雑さを考慮すると、[AIC] の値が小さければ小さいほど、観測されたデータにより近似していることを示します。[AIC] は、近似性を正確に計測するための基準ではなく、説明変数が (同じ従属変数に適用されるが) 異なる複数のモデルを比較するための基準です。2 つのモデルの [AIC] 値の差が 3 より大きい場合は、[AIC] 値が小さいモデルのほうがより正確であると見なされます。
- [AICc] - [AICc] は、サンプル サイズが小さい場合に、バイアス補正を [AIC] に適用します。入力のフィーチャ数が増えるにつれて、[AICc] は [AIC] に近づきます。上の [AIC] をご参照ください。
制限事項
[一般化線形回帰分析 (Generalized Linear Regression)] の GeoAnalytics の実装には、次の制限があります。
- この実装はグローバル回帰モデルであり、データの空間分布を考慮しません。
- 解析は、残差に対して Moran's I テストを適用しません。
- フィーチャ データセット (ポイント、ライン、ポリゴン、およびテーブル) が入力としてサポートされており、ラスターはサポートされていません。
- 値を複数のクラスに分類することはできません。
ArcGIS API for Python の例
[一般化線形回帰分析] ツールは ArcGIS API for Python で使用できます。
この例では、データセットにモデルを当てはめ、予測を別のモデルに適用します。
# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported")
exit(1)
# Search for and list the big data file shares in your portal
search_result = portal.content.search("", "Big Data File Share")
# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_SalesData")
# Look through the big data file share for 2018 sales data to model
model_layer = next(x for x in bdfs_search.layers if x.properties.name == "2018_sales")
# Find the dataset you want to predict
predict_layer_search = portal.content.search("Sales_2025", "Feature Layer")
predict_layer = predict_layer_search[0].layers[0]
# Run the Generalized Linear Regression tool
glr_result = arcgis.geoanalytics.analyze_patterns.glr(input_layer = model_layer,
features_to_predict = predict_layer,
var_explanatory = "salestotal, store_count, advertisingcost",
var_dependent = "chicago_crimes_enriched",
regression_family = "Count",
exp_var_matching = [{"predictionLayerField":"store_count",
"trainingLayerField": "num_of_stores"}],
output_name = "predicted_customers")
# Visualize the results if you are running Python in a Jupyter Notebook
processed_map = portal.map()
processed_map.add_layer(glr_result)
processed_map
類似のツール
ArcGIS GeoAnalytics Server の [一般化線形回帰分析 (Generalized Linear Regression)] ツールを使用して、予測したり、一連の説明変数との関係から従属変数をモデル化したりします。その他のツールは、類似した少し異なる問題を解決するのに効果的です。
Map Viewer解析ツール
ArcGIS GeoAnalytics Server の [フォレストベースの分類と回帰分析 (Forest-based Classification And Regression)] ツールを使用して、モデルおよび予測を作成します。
ArcGIS Desktop 解析ツール
ArcGIS Pro からこのツールを実行するには、アクティブなポータルが Enterprise 10.7 以降である必要があります。GeoAnalytics フィーチャ解析を実行できる権限を持つアカウントでサイン インする必要があります。
ArcGIS Pro で、空間統計ツールボックスに含まれている [一般化線形回帰分析 (Generalized Linear Regression)] ジオプロセシング ツールを使用して、類似する回帰分析操作を実行します。
ArcGIS Pro で、空間統計ツールボックスに含まれている [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ジオプロセシング ツールを使用して、Leo Breiman のランダム フォレスト アルゴリズムを転用してモデルおよび予測を作成します。
ArcGIS Pro で、空間統計ツールボックスに含まれている [地理空間加重回帰分析 (Geographically Weighted Regression)] ジオプロセシング ツールを使用して、類似する GWR を実行します。