一般化線形回帰分析 (Generalized Linear Regression) (GeoAnalytics)

サマリー

一般化線形回帰分析 (GLR) を実行して、予測したり、一連の説明変数との関係から従属変数をモデル化したりします。このツールを使用して、連続 (OLS)、バイナリ (論理)、およびカウント (ポワソン分布) のモデルに適合させることができます。

使用法

  • このツールは、2 つの操作モードで使用できます。さまざまな説明変数およびツール設定を調査しながら、それぞれのモデルのパフォーマンスを評価できます。適切なモデルが見つかったら、モデルを新しいデータセットに適合できます。

  • [入力フィーチャ] パラメーターは、モデル化している現象 ([従属変数] パラメーター) を表すフィールドと説明変数を表す 1 つ以上のフィールドとともに使用します。

  • [一般化線形回帰分析 (Generalized Linear Regression)] ツールは、出力フィーチャおよび診断も生成します。出力フィーチャ レイヤーは自動的にマップに追加され、残差のモデルに、レンダリング スキーマが適用されます。以下では、各出力について詳細に説明します。

  • 回帰分析の正確な結果を得るには、解析に正しいモデル タイプ ([連続][バイナリ]、または [カウント]) を使用することが重要です。

  • モデルのサマリー結果と診断がメッセージ ウィンドウに書き込まれ、出力フィーチャクラスの下にチャートが作成されます。報告される診断は、[モデル タイプ] パラメーターの値によって決まります。3 つのモデル タイプは次のとおりです。

    • 従属変数が広範囲の値 (温度や総売上額など) を受け取る場合は、モデル タイプとして [連続] (ガウス分布) を使用します。従属変数が正規分布しているのが理想的です。
    • 従属変数が 2 つの値 (成功と失敗や存在と不在など) のいずれかを受け取ることができる場合は、モデル タイプとして [バイナリ] (ロジスティック) を使用します。従属変数を含むフィールドは、必ず数値フィールドまたはテキスト フィールドのいずれかでなければなりません。数値フィールドの場合は、1 と 0 でのみ構成する必要があります。テキスト フィールドの場合は、2 つの個別値でのみ構成する必要があります。テキスト フィールドを使用している場合は、[従属変数のマッピング] パラメーターで個別テキスト値を 1 と 0 にマッピングする必要があります。データ内に個別テキスト値の 1 と 0 のばらつきが存在するはずです。

    • 従属変数が不連続で、イベントの発生回数 (犯罪件数など) を表す場合は、モデル タイプとして [カウント] (ポワソン分布) を使用します。従属変数が比率を表し、比率の分母が固定値である場合 (1 か月あたりの売上や人口 10,000 人あたりのガン患者の数など) も、カウント モデルを使用できます。[カウント] モデルは従属変数の平均と分散が等しいと想定し、従属変数の値は負になることも、小数を含むこともできません。

    [従属変数] および [説明変数] パラメーターの値は、さまざまな値を含む数値フィールドである必要があります。このツールでは、変数がすべて同じ値を持つ場合 (たとえば、フィールドの値がすべて 9.0 の場合)、解がありません。

  • 予測または説明フィールドに 1 つ以上の NULL 値または空の文字列値を持つフィーチャは、出力から除外されます。必要に応じて、[フィールド演算 (Calculate Field)] ツールを使用して、値を変更します。

  • 回帰残差が予測より明らかに上下にずれているものがないか確認して、それが回帰モデルに欠けている変数に関する情報を提供しないか確認します。

  • 作成された回帰モデルを使用して、他のフィーチャを予測できます。このような予測の作成では、各予測フィーチャが、指定された各説明変数の値を持つことが必要となります。入力フィーチャ パラメーターと予測位置パラメーターのフィールド名が一致しない場合、変数照合パラメーターが指定されます。説明変数を照合する場合、[入力フィーチャ] パラメーターと [入力予測フィーチャ] パラメーターのフィールドは同じタイプでなければなりません (たとえば、double フィールドは double フィールドと照合する必要があります)。

  • GLR の GeoAnalytics の実装には、次の制限があります。

    • この実装はグローバル回帰モデルであり、データの空間分布を考慮しません。
    • 解析は、残差に対して Moran's I テストを適用しません。
    • フィーチャ データセット (ポイント、ライン、ポリゴン、およびテーブル) が入力としてサポートされており、ラスターはサポートされていません。
    • 値を複数のクラスに分類することはできません。

  • ジオプロセシング ツールは、ArcGIS GeoAnalytics Server を活用しています。解析は GeoAnalytics Server で実行され、結果が ArcGIS Enterprise のコンテンツに保存されます。

  • GeoAnalytics Server ツールを実行する場合、解析は GeoAnalytics Server で実行されます。最適なパフォーマンスを得るためには、ArcGIS Enterprise ポータルでホストされているフィーチャ レイヤーかビッグ データ ファイル共有を通じて、GeoAnalytics Server にデータを提供する必要があります。GeoAnalytics Server のローカルにないデータは、解析が開始する前に GeoAnalytics Server に移動されます。つまり、ツールを実行する時間が長くなり、場合によっては ArcGIS Pro から GeoAnalytics Server にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。

    データをポータルで共有する方法の詳細

    ArcGIS Server Manager を使用してビッグ データ ファイル共有を作成する方法の詳細

パラメーター

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

従属変数と独立変数を格納したレイヤー。

Record Set
従属変数

モデル化される観測値を含む数値フィールド。

Field
モデル タイプ

モデル化されるデータのタイプを指定します。

  • 連続 (ガウス分布) dependent_variable は連続です。ガウス モデルが使用され、ツールは最小二乗法 (Ordinary Least Squares) の回帰分析を実行します。これがデフォルトです。
  • バイナリ (論理) dependent_variable は有無を表します。これは、従来の 1s および 0s、または [説明変数の照合] パラメーター内で 0 または 1s にマッピングされた文字列値のいずれかを使用できます。論理回帰モデルが使用されます。
  • カウント (ポワソン分布)dependent_variable は不連続で、犯罪件数、病気のインシデント、交通事故などのイベントを表します。ポワソン分布回帰モデルが使用されます。
  • 連続 (ガウス分布) [従属変数] は連続です。ガウス モデルが使用され、ツールは最小二乗法 (Ordinary Least Squares) の回帰分析を実行します。これがデフォルトです。
  • バイナリ (論理) [従属変数] は有無を表します。これは、従来の 1s および 0s、または explanatory_variables_to_match パラメーター内で 0 または 1s にマッピングされた文字列値のいずれかを使用できます。論理回帰モデルが使用されます。
  • カウント (ポワソン分布)[従属変数] は不連続で、犯罪件数、病気のインシデント、交通事故などのイベントを表します。ポワソン分布回帰モデルが使用されます。
String
説明変数

回帰モデルの独立説明変数を表すフィールドのリスト。

Field
出力フィーチャ名

従属変数の推定値と残差を含んでいる、作成されるフィーチャクラスの名前。

String
係数テーブルの生成
(オプション)

係数 (ブール) 値を含む出力テーブルを生成するかどうかを指定します。

  • オン - 係数値を含むテーブルを生成します。
  • オフ - 係数値を含むテーブルを生成しません。これがデフォルトです。
Boolean
入力予測フィーチャ
(オプション)

推定値を計算する位置を表すフィーチャを含むレイヤー。このデータセット内の各フィーチャには、指定されたすべての説明変数の値が含まれています。これらのフィーチャの従属変数は、入力レイヤーのデータに対してキャリブレーションされたモデルを使用して推定されます。

Record Set
説明変数の照合
(オプション)

[入力予測フィーチャ] パラメーターの説明変数を [入力フィーチャ] パラメーターの対応する説明変数と照合します。

Value Table
従属変数のマッピング
(オプション)

バイナリ回帰用に 0 (不在) と 1 (存在) へのマッピングに使用される値を表す 2 つの文字列。デフォルトでは、0 と 1 が使用されます。たとえば、Arrest および No Arrest というフィールド値を使用して逮捕を予測する場合は、False Value (0) に No Arrest を入力し、True Value (1) に Arrest を入力します。

Value Table
データ ストア
(オプション)

出力の保存先の ArcGIS Data Store を指定します。デフォルトは、[ビッグ データ ストア] です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。

  • ビッグ データ ストア出力がビッグ データ ストアに格納されます。これがデフォルトです。
  • リレーショナル データ ストア出力がリレーショナル データ ストアに格納されます。
String

派生した出力

ラベル説明データ タイプ
出力

各入力予測フィーチャの従属変数の予測値を含む出力フィーチャ サービス。

レコード セット
出力予測済みフィーチャ

入力変数と予測される説明値を含む出力レイヤー。

レコード セット
係数のテーブル

係数値を含む出力テーブル。

レコード セット

arcpy.geoanalytics.GeneralizedLinearRegression(input_features, dependent_variable, model_type, explanatory_variables, output_features_name, {generate_coefficient_table}, {input_features_to_predict}, {explanatory_variables_to_match}, {dependent_variable_mapping}, {data_store})
名前説明データ タイプ
input_features

従属変数と独立変数を格納したレイヤー。

Record Set
dependent_variable

モデル化される観測値を含む数値フィールド。

Field
model_type

モデル化されるデータのタイプを指定します。

  • CONTINUOUS dependent_variable は連続です。ガウス モデルが使用され、ツールは最小二乗法 (Ordinary Least Squares) の回帰分析を実行します。これがデフォルトです。
  • BINARY dependent_variable は有無を表します。これは、従来の 1s および 0s、または [説明変数の照合] パラメーター内で 0 または 1s にマッピングされた文字列値のいずれかを使用できます。論理回帰モデルが使用されます。
  • COUNTdependent_variable は不連続で、犯罪件数、病気のインシデント、交通事故などのイベントを表します。ポワソン分布回帰モデルが使用されます。
String
explanatory_variables
[explanatory_variables,...]

回帰モデルの独立説明変数を表すフィールドのリスト。

Field
output_features_name

従属変数の推定値と残差を含んでいる、作成されるフィーチャクラスの名前。

String
generate_coefficient_table
(オプション)

係数 (ブール) 値を含む出力テーブルを生成するかどうかを指定します。

  • CREATE_TABLE係数値を含むテーブルを生成します。
  • NO_TABLE係数値を含むテーブルを生成しません。これがデフォルトです。
Boolean
input_features_to_predict
(オプション)

推定値を計算する位置を表すフィーチャを含むレイヤー。このデータセット内の各フィーチャには、指定されたすべての説明変数の値が含まれています。これらのフィーチャの従属変数は、入力レイヤーのデータに対してキャリブレーションされたモデルを使用して推定されます。

Record Set
explanatory_variables_to_match
[[Field from Prediction Locations, Field from Input Features],...]
(オプション)

input_features_to_predict パラメーターの説明変数を input_features パラメーターの対応する説明変数 ([["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]] など) と照合します。

Value Table
dependent_variable_mapping
[dependent_variable_mapping,...]
(オプション)

バイナリ回帰用に 0 (不在) と 1 (存在) へのマッピングに使用される値を表す 2 つの文字列。デフォルトでは、0 と 1 が使用されます。たとえば、Arrest および No Arrest というフィールド値を使用して逮捕を予測する場合は、[False Value (0)] に No Arrest を入力し、[True Value (1)] に Arrest を入力します。

Value Table
data_store
(オプション)

出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。

  • SPATIOTEMPORAL_DATA_STORE出力がビッグ データ ストアに格納されます。これがデフォルトです。
  • RELATIONAL_DATA_STORE出力がリレーショナル データ ストアに格納されます。
String

派生した出力

名前説明データ タイプ
output

各入力予測フィーチャの従属変数の予測値を含む出力フィーチャ サービス。

レコード セット
output_predicted_features

入力変数と予測される説明値を含む出力レイヤー。

レコード セット
coefficient_table

係数値を含む出力テーブル。

レコード セット

コードのサンプル

一般化線形回帰分析 (Generalized Linear Regression) の例 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、GeneralizedLinearRegression ツールの使用方法を示します。

このスクリプトでは、モデルを作成し、特定の犯罪に対して逮捕が行われたかを予測します。

# Name: GeneralizedLinearRegression.py
# Description: Run GLR on crime data and predict if an arrest was made for a crime reporting.
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
trainingDataset = "https://analysis.org.com/server/rest/services/Hosted/old_crimes/FeatureServer/0"
predictionDataset = "https://analysis.org.com/server/rest/services/Hosted/new_crimes/FeatureServer/0"
outputTrainingName = "training"
# Execute GLR
arcpy.geoanalytics.GeneralizedLinearRegression(
    trainingDataset, "ArrestMade", "BINARY", "CRIME_TYPE; WARD; DAY_OF_MONTH", outputTrainingName, 
    "NO_TABLE", predictionDataset, "CRIME_TYPE CRIME_TYPE;WARD WARD;DAY_OF_MONTH DAY_OF_MON", 
    "Arrest NoArrest", "SPATIOTEMPORAL_DATA_STORE")

環境

特殊なケース

出力座標系

解析で使用される座標系。このパラメーターで指定されない限り、入力の座標系で解析が行われます。GeoAnalytics Tools の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。

ライセンス情報

  • Basic: 次のものが必要 ArcGIS GeoAnalytics Server
  • Standard: 次のものが必要 ArcGIS GeoAnalytics Server
  • Advanced: 次のものが必要 ArcGIS GeoAnalytics Server

関連トピック