最小二乗法 (Ordinary Least Squares (OLS)) (空間統計)

サマリー

グローバルな最小二乗法 (OLS) による線形回帰分析は予測したり、独立変数との関係から従属変数をモデル化したりします。

注意:

このツールの機能は、ArcGIS Pro 2.3 で追加された [一般化線形回帰分析 (Generalized Linear Regression)] ツールに含まれています。 [一般化線形回帰分析 (Generalized Linear Regression)] ツールは、追加のモデルをサポートしています。

最小二乗法による回帰分析の詳細

最小二乗法ツールの図
最小二乗法、観測値に対する予測値が示されます。

使用法

  • このツールの主な出力は、レポート ファイルです。このファイルの内容は、ツールの実行中に [ジオプロセシング] ウィンドウの下部にメッセージとして書き込まれます。 このメッセージにアクセスするには[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタンをクリックするか、メッセージ セクションを展開します。 ジオプロセシング履歴を介して、以前に実行した [予備回帰分析 (Exploratory Regression)] のメッセージにアクセスすることもできます。

  • [最小二乗法 (Ordinary Least Squares)] ツールは出力フィーチャクラスも作成します。オプションで、係数情報と診断情報を含んだテーブルも作成します。 これらは、すべて [ジオプロセシング] ウィンドウの下部にあるメッセージからアクセスできます。 出力フィーチャクラスは自動的に [コンテンツ] ウィンドウに追加され、残差のモデルに、ホットおよびコールド レンダリング スキーマが適用されます。 各出力の詳細な説明については、「最小二乗法による回帰分析の詳細」をご参照ください。

  • 最小二乗法による回帰分析の結果を信頼できるのは、最小二乗法で本質的に必要とされる仮定をすべて、データと回帰モデルが満たしている場合だけです。 モデルが適切に指定されているか確認するには、「回帰分析の基本」にある表「一般的な回帰分析の問題、結果、対策」をご参照ください。

  • 従属変数と独立変数は、さまざまな値を含む数値フィールドである必要があります。 最小二乗法では、変数が同じ値を持つ場合 (たとえば、フィールドの値がすべて 9.0 の場合)、解がありません。 OLS のような線形回帰分析法は、二値的な結果を予測するのには適していません (たとえば、従属変数の値がすべて 1 または 0 の場合)。

  • Unique ID フィールドは、モデルの予測を各フィーチャにリンクします。 各フィーチャに一意の Unique ID 値を指定する必要があるため、このフィールドは通常、フィーチャクラスで維持される永続的なフィールドでなければなりません。 Unique ID フィールドがない場合は、新しい整数フィールドをフィーチャクラス テーブルに追加し、FID/OID フィールドに等しいフィールド値を計算することによって作成できます。 [一意の ID] パラメーターに FID/OID フィールドを直接使用することはできません。

  • 回帰残差に統計的に有意な空間的自己相関が存在する場合は、最小二乗モデルの仕様が間違っていると見なされます。 そのため、最小二乗法による回帰分析の結果は信頼できません。 回帰残差に対して [空間的自己相関分析 (Spatial Autocorrelation)] ツールを実行して、この問題が生じていないか確認してください。 回帰残差に存在する統計的に有意な空間的自己相関は、ほとんどの場合、1 つ以上の重要な説明変数がモデルに欠けていることを示しています。

  • 回帰残差が予測より明らかに上下にずれているものがないか視覚的に調べて、それが回帰モデルに欠けている変数の手がかりにならないか確認します。 残余に対して [ホット スポット分析 (Hot Spot Analysis)] を実行すると、予測とずれた結果の空間クラスター化を視覚化するのに役立つことがあります。

  • 仕様のミスが、グローバル モデルを使用して非定常変数をモデル化しようとしたせいである場合は (最小二乗法はグローバル モデルです)、[地理空間加重回帰分析 (Geographically Weighted Regression)] を使用して予測を改善し、独立変数に内在的な非定常性 (地域的変動) を把握できます。

  • 計算結果が無限または未定義の場合、シェープファイル以外の出力は NULL に、シェープファイルの出力は -DBL_MAX (たとえば、-1.7976931348623158e+308) になります。

  • モデルのサマリー診断情報は、最小二乗法サマリー レポートとオプションの診断出力テーブルに書き込まれます。 いずれの場合も、AICc (Corrected Akaike Information Criterion、補正赤池情報量基準)、決定係数、Joint F 統計、Wald 統計、Koenker's Breusch-Pagan 統計、および Jarque-Bera 統計の診断情報が含まれます。 また、診断テーブルには、補正されていない AIC とシグマ 2 の値も含まれます。

  • オプションの係数または診断出力テーブルがすでに存在していて、[ジオプロセシング ツールによる既存データセットの上書きを許可] オプションがオンの場合、それらが上書きされます。

  • アラビア語や右から左に記述するその他の言語の言語パッケージで構成されたコンピューターでは、PDF [出力レポート ファイル] で文字の欠落とフォーマットの問題が発生することがあります。これらの問題は、この記事で対処されています。

  • マップ レイヤーを使用して、入力フィーチャクラスを指定できます。解析対象として指定したレイヤーの中で何らかのフィーチャが選択されている場合、選択されているフィーチャだけが解析の対象となります。

  • 注意:

    シェープファイルを使用するときは、NULL 値を格納できないため、注意が必要です。シェープファイル以外の入力からシェープファイルを作成するツールまたはその他の方法では、NULL 値がゼロとして格納または解釈される場合があります。場合によっては、NULL 値はシェープファイルに非常に大きな負の値として格納されます。この場合、予期せぬ結果に至ることがあります。詳細については、「ジオプロセシングでのシェープファイル出力の注意事項」をご参照ください。

パラメーター

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

分析する独立変数と従属変数を含むフィーチャクラスです。

Feature Layer
一意の ID フィールド

入力フィーチャクラスのすべてのフィーチャで異なる値を持つ整数フィールドです。

Field
出力フィーチャクラス

従属変数の推定値と残差を受け取る出力フィーチャクラス。

Feature Class
従属変数

モデル化しようとしている値を含む数値フィールドです。

Field
説明変数

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

Field
係数出力テーブル
(オプション)

各説明変数のモデル係数、標準化された係数、標準誤差、確率を受け取るオプションのテーブルへの絶対パスです。

Table
診断出力テーブル
(オプション)

モデルのサマリー診断情報を受け取るオプションのテーブルへの絶対パス名です。

Table
出力レポート ファイル
(オプション)

ツールで作成するオプションの PDF ファイルへのパス。 このレポート ファイルは、モデル診断情報、グラフ、最小二乗法の結果の解釈に役立つ説明を含んでいます。

File

arcpy.stats.OrdinaryLeastSquares(Input_Feature_Class, Unique_ID_Field, Output_Feature_Class, Dependent_Variable, Explanatory_Variables, {Coefficient_Output_Table}, {Diagnostic_Output_Table}, {Output_Report_File})
名前説明データ タイプ
Input_Feature_Class

分析する独立変数と従属変数を含むフィーチャクラスです。

Feature Layer
Unique_ID_Field

入力フィーチャクラスのすべてのフィーチャで異なる値を持つ整数フィールドです。

Field
Output_Feature_Class

従属変数の推定値と残差を受け取る出力フィーチャクラス。

Feature Class
Dependent_Variable

モデル化しようとしている値を含む数値フィールドです。

Field
Explanatory_Variables
[Explanatory_Variables,...]

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

Field
Coefficient_Output_Table
(オプション)

各説明変数のモデル係数、標準化された係数、標準誤差、確率を受け取るオプションのテーブルへの絶対パスです。

Table
Diagnostic_Output_Table
(オプション)

モデルのサマリー診断情報を受け取るオプションのテーブルへの絶対パス名です。

Table
Output_Report_File
(オプション)

ツールで作成するオプションの PDF ファイルへのパス。 このレポート ファイルは、モデル診断情報、グラフ、最小二乗法の結果の解釈に役立つ説明を含んでいます。

File

コードのサンプル

OrdinaryLeastSquares (最小二乗法) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、OrdinaryLeastSquares 関数の使用方法を示しています。

import arcpy
arcpy.env.workspace = r"c:\data"
arcpy.stats.OrdinaryLeastSquares("USCounties.shp", "MYID", "olsResults.shp", 
                                 "GROWTH","LOGPCR69;SOUTH;LPCR_SOUTH;PopDen69",
                                 "olsCoefTab.dbf", "olsDiagTab.dbf")
OrdinaryLeastSquares の例 2 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトは、OrdinaryLeastSquares 関数の使用方法を示しています。

# Analyze the growth of regional per capita incomes in US
# Counties from 1969 -- 2002 using Ordinary Least Squares Regression

# Import system modules
import arcpy

# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True

# Local variables...
workspace = r"C:\Data"

try:
    # Set the current workspace (to avoid having to specify the full path to the feature classes each time)
    arcpy.env.workspace = workspace

    # Growth as a function of {log of starting income, dummy for South
    # counties, interaction term for South counties, population density}
    # Process: Ordinary Least Squares... 
    ols = arcpy.stats.OrdinaryLeastSquares("USCounties.shp", "MYID", 
                        "olsResults.shp", "GROWTH",
                        "LOGPCR69;SOUTH;LPCR_SOUTH;PopDen69",
                        "olsCoefTab.dbf",
                        "olsDiagTab.dbf")

    # Create Spatial Weights Matrix (Can be based on input or output FC)
    # Process: Generate Spatial Weights Matrix... 
    swm = arcpy.stats.GenerateSpatialWeightsMatrix("USCounties.shp", "MYID",
                        "euclidean6Neighs.swm",
                        "K_NEAREST_NEIGHBORS",
                        "#", "#", "#", 6) 
                        
    # Calculate Moran's Index of Spatial Autocorrelation for 
    # OLS Residuals using a SWM File.  
    # Process: Spatial Autocorrelation (Morans I)...      
    moransI = arcpy.stats.SpatialAutocorrelation("olsResults.shp", "Residual",
                        "NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE", 
                        "EUCLIDEAN_DISTANCE", "NONE", "#", 
                        "euclidean6Neighs.swm")

except:
    # If an error occurred when running the tool, print out the error message.
    print(arcpy.GetMessages())