ラベル | 説明 | データ タイプ |
入力フィーチャ | 従属変数と独立変数を格納したレイヤー。 | Table View |
従属変数 | モデル化される観測値を含む数値フィールド。 | Field |
モデル タイプ | モデル化されるデータのタイプを指定します。
| String |
説明変数 | 回帰モデルの独立説明変数を表すフィールドのリスト。 | Field |
出力フィーチャ | 作成され、従属変数の推定値と残差を含んでいるフィーチャクラスの名前。 | Table; Feature Class |
入力予測フィーチャ (オプション) | 推定値を計算する位置を表すフィーチャを含むレイヤー。 このデータセット内の各フィーチャには、指定されたすべての説明変数の値が含まれています。 これらのフィーチャの従属変数は、入力レイヤーのデータに対してキャリブレーションされたモデルを使用して推定されます。 | Table View |
説明変数の照合 (オプション) | [入力予測フィーチャ] パラメーターの説明変数を [入力フィーチャ] パラメーターの対応する説明変数と照合します。 | Value Table |
マップ従属変数 (オプション) | バイナリ回帰用に 0 (不在) と 1 (存在) へのマッピングに使用される値を表す 2 つの文字列。 デフォルトでは、0 と 1 が使用されます。 たとえば、Arrest および No Arrest というフィールド値を使用して逮捕を予測する場合は、False Value (0) に No Arrest を入力し、True Value (1) に Arrest を入力します。 | Value Table |
出力予測済みフィーチャ (オプション) | 各 [入力予測フィーチャ] 値の従属変数の推定値を含む出力フィーチャクラス。 | Table; Feature Class |
出力係数のテーブル (オプション) | モデル フィットの係数を含む出力テーブル。 | Table |
サマリー
一般化線形回帰分析 (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 フィールドと照合する必要があります)。
以下を 1 つ以上行うことで、[一般化線形回帰分析 (Generalized Linear Regression)] ツールの処理速度を向上させることができます。
- 対象データのみを解析するように、解析の処理環境を設定します。
- 係数テーブルを出力しないでください。
- 解析が実行されているロケーションに対してローカルなデータを使用します。
ジオプロセシング ツールは、Spark を活用しています。 解析は、デスクトップ コンピューターで複数のコアを並列に使用して行われます。 解析の実行の詳細については、「GeoAnalytics Desktop ツールの考慮事項」をご参照ください。
GeoAnalytics Desktop ツールを実行する際、解析はデスクトップ コンピューターで行われます。 最適なパフォーマンスを得るために、データがデスクトップで利用できる必要があります。 ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。 データがローカルではない場合は、ツールの実行時間は長くなります。 ArcGIS GeoAnalytics Server を使用して解析を実行する方法については、GeoAnalytics Tools をご参照ください。
GLR の GeoAnalytics の実装には、次の制限があります。
- この実装はグローバル回帰モデルであり、データの空間分布を考慮しません。
- 解析は、残差に対して Moran's I テストを適用しません。
- フィーチャ データセット (ポイント、ライン、ポリゴン、およびテーブル) が入力としてサポートされており、ラスターはサポートされていません。
- 値を複数のクラスに分類することはできません。
パラメーター
arcpy.geoanalytics.GeneralizedLinearRegression(input_features, dependent_variable, model_type, explanatory_variables, output_features, {input_features_to_predict}, {explanatory_variables_to_match}, {dependent_variable_mapping}, {output_predicted_features}, {coefficient_table})
名前 | 説明 | データ タイプ |
input_features | 従属変数と独立変数を格納したレイヤー。 | Table View |
dependent_variable | モデル化される観測値を含む数値フィールド。 | Field |
model_type | モデル化されるデータのタイプを指定します。
| String |
explanatory_variables [explanatory_variables,...] | 回帰モデルの独立説明変数を表すフィールドのリスト。 | Field |
output_features | 作成され、従属変数の推定値と残差を含んでいるフィーチャクラスの名前。 | Table; Feature Class |
input_features_to_predict (オプション) | 推定値を計算する位置を表すフィーチャを含むレイヤー。 このデータセット内の各フィーチャには、指定されたすべての説明変数の値が含まれています。 これらのフィーチャの従属変数は、入力レイヤーのデータに対してキャリブレーションされたモデルを使用して推定されます。 | Table View |
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 |
output_predicted_features (オプション) | 各 input_features_to_predict 値の従属変数の推定値を含む出力フィーチャクラス。 各 [入力予測フィーチャ] 値の従属変数の推定値を含む出力フィーチャクラス。 | Table; Feature Class |
coefficient_table (オプション) | モデル フィットの係数を含む出力テーブル。 | Table |
コードのサンプル
次のスタンドアロン スクリプトで、GeneralizedLinearRegression 関数を使用する方法を示します。
このスクリプトでは、モデルを作成し、犯罪の通報に対して逮捕が行われたかを予測します。
# Description: Run GLR on crime data and predict if an arrest was made for a crime reporting.
#
# Requirements: Advanced License
# Import system modules
import arcpy
arcpy.env.workspace = "c:/data/city.gdb"
# Set local variables
trainingDataset = "old_crimes"
predictionDataset = "new_crimes"
outputTrainingName = "training"
outputPredictedName = "predicted"
# Run Generalized Linear Regression
arcpy.geoanalytics.GeneralizedLinearRegression(
trainingData, "ArrestMade", "BINARY", ["CRIME_TYPE", "WARD", "DAY_OF_MONTH"],
outputTrainingName, None, outputPredictedName,
[["CRIME_TYPE", "CRIME_TYPE"], ["WARD", "WARD"], ["DAY_OF_MONTH", "DAY_OF_MON"]],
[["Arrest", "NoArrest"]])