广义线性回归 (GLR) (空间统计)

描述

执行广义线性回归 (GLR) 可生成预测,或对因变量与一组解释变量的关系进行建模。此工具可用于拟合连续 (OLS)、二进制(逻辑)和计数(泊松)模型。

了解有关广义线性回归工作原理的详细信息

插图

广义线性回归

使用方法

  • 此工具的主要输出形式为报表文件,在工具执行期间,该输出以消息形式显示在地理处理窗格底部。可将鼠标悬停在进度条上、单击弹出按钮或展开地理处理窗格中的消息部分来访问消息。您还可以通过地理处理历史访问之前运行此工具的消息。

  • 可以将输入要素参数与表示正在进行建模的现象的字段(因变量)以及表示解释变量的一个或多个字段结合使用。这些字段必须为数字且具有值范围。因变量或解释变量中包含缺失值的要素将从分析中排除;但是,在运行工具之前,可以使用填充缺失值工具完成数据集。

  • 广义线性回归工具还会生成含有系数信息和诊断的输出要素。输出要素类会自动添加到内容列表中,并会对模型残差应用渲染方案。广义线性回归的工作原理中提供了每个输出的完整说明。

  • 您所选择的模型类型参数选项取决于您要建模的数据。要获得准确的回归分析结果,必须使用正确的模型进行分析。

    连续、计数和二进制模型数据类型

  • 模型汇总结果和诊断将写入消息窗口,并将在输出要素类下创建图表。报告的诊断和图表取决于模型类型参数,并将在广义线性回归工作原理主题中详细说明。

  • 仅当数据和回归模型满足该方法固有要求的所有假定条件时,GLR 得出的结果才可信。要确保正确指定模型,必须检查所有生成的诊断,并参阅回归分析基础知识中的常见回归问题、后果和解决方案表格。

  • 因变量解释变量应该是包含各种值的数值型字段。如果变量值均相等(例如,某字段的所有值均为 9.0),则此工具将无法求解。

  • 解释变量可以来自字段,也可以使用解释距离要素参数根据距离要素计算得出。可以使用这些解释变量类型的组合,但至少要使用一种类型。解释距离要素用于自动创建解释变量,这些解释变量表示给定要素与输入要素的距离。将计算每个输入解释距离要素与最近的输入要素的距离。如果输入解释距离要素为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。但是,面要素和线要素的距离计算方式不同。有关详细信息,请参阅邻域分析工具计算距离的方法

  • 如果解释距离要素是分析的一个组成部分,则建议您使用投影数据。要正确测量距离,强烈建议您使用投影坐标系(而非地理坐标系)对数据进行投影。

  • 如果回归残差存在统计上明显的空间自相关,则 GLR 模型将视为指定有误,从而使 GLR 回归的结果变得不可靠。请确保对回归残差运行空间自相关工具以便对此潜在问题进行评估。统计上明显的回归残差空间自相关性可能表示模型缺少一个或多个关键解释变量。

  • 您应该从视觉上检查回归残差中明显的预测过度和预测不足,从而挖掘出回归模型中是否可能发生变量丢失的线索。这可能有助于通过对残差运行热点分析来查看预测过度和预测不足的空间聚类。

  • 如果指定错误是设法使用全局模型(GLR 属于一种全局模型)为非稳态变量建模产生的后果,则可使用地理加权回归改进预测并更好地了解解释变量中固有的不稳定性(局部变化)。

  • 当计算结果为无限大或未定义时,非 shapefile 的输出将为“空”;而 shapefile 的输出将为 -DBL_MAX(例如,-1.7976931348623158e+308)。

  • 警告:

    在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项

语法

arcpy.stats.GeneralizedLinearRegression(in_features, dependent_variable, model_type, output_features, explanatory_variables, {distance_features}, {prediction_locations}, {explanatory_variables_to_match}, {explanatory_distance_matching}, {output_predicted_features})
参数说明数据类型
in_features

包含因变量和自变量的要素类。

Feature Layer
dependent_variable

包含要进行建模的观测值的数值字段。

Field
model_type

用于指定将进行建模的数据类型。

  • CONTINUOUS dependent_variable 是连续的。使用的模型为高斯模型,并且工具将执行普通最小二乘法回归。
  • BINARY dependent_variable 表示存在或不存在。这可以是常规的 1 和 0,或者是基于某个阈值重新进行编码的连续数据。使用的模型为逻辑回归。
  • COUNTdependent_variable 是离散的,并且可以表示事件,例如犯罪计数、疾病事件或交通事故。使用的模型为泊松回归。
String
output_features

新要素类,其中将包含因变量的估计数和残差。

Feature Class
explanatory_variables
[explanatory_variables,...]

表示回归模型中的解释变量或自变量的字段列表。

Field
distance_features
[distance_features,...]
(可选)

通过计算给定要素与 in_features 的距离可自动创建解释变量。将计算每个输入 distance_features 与最近的 in_features 的距离。如果输入 distance_features 为面要素或线要素,则距离属性将计算为要素对的最近线段之间的距离。

Feature Layer
prediction_locations
(可选)

一种要素类,包含表示将计算评估值的位置的要素。此数据集中的每个要素都应包含指定的所有解释变量的值。将使用针对输入要素类数据进行校准的模型来评估这些要素的因变量。

Feature Layer
explanatory_variables_to_match
[[Field from Prediction Locations, Field from Input Features],...]
(可选)

prediction_locations 中的解释变量与 in_features 中的相应解释变量进行匹配 - 例如 [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]]

Value Table
explanatory_distance_matching
[[Prediction Distance Features, Input Explanatory Distance Features],...]
(可选)

将针对左侧 features_to_predict 指定的距离要素与右侧 in_features 的相应距离要素进行匹配,例如,[["stores2010", "stores2000"], ["freeways2010", "freeways2000"]]

Value Table
output_predicted_features
(可选)

接收每个 prediction_location 的因变量估计数的输出要素类。

接收每个预测位置的因变量估计数的输出要素类。

Feature Class

代码示例

GeneralizedLinearRegression 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 GeneralizedLinearRegression 工具。

import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.GeneralizedLinearRegression("landslides", "occurred",
                                 "BINARY", "out_features", 
                                 "eastness;northness;elevation;slope", 
                                 "rivers")
GeneralizedLinearRegression 示例 2(独立脚本)

以下独立 Python 脚本演示了如何使用 GeneralizedLinearRegression 工具。

# Linear regression using a count model to predict the number of crimes.
# The depend variable (total number of crimes) is predicted using total
# population, the median age of housing, average household income and the
# distance to the central business district (CBD)
import arcpy
# Set the current workspace (to avoid having to specify the full path to
# the feature classes each time)
arcpy.env.workspace = r"c:\data\project_data.gdb"
arcpy.stats.GeneralizedLinearRegression("crime_counts", 
     "total_crimes", "COUNT", "out_features", "YRBLT;TOTPOP;AVGHINC", 
     "CBD", "prediction_locations", "YRBLT YRBLT;TOTPOP TOTPOP;AVGHINC AVGHINC", 
     "CBD CBD", "predicted_features")

许可信息

  • Basic: 受限
  • Standard: 受限
  • Advanced: 是

相关主题