广义线性回归 (GeoAnalytics Desktop)

摘要

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

使用情况

  • 可以在两种操作模式下使用此工具。 探索不同的解释变量和工具设置时,您可以评估不同模型的性能。 找到合适的模型后,您可以将模型拟合到新数据集。

  • 可以将输入要素参数与表示正在进行建模的现象的字段(因变量参数值)以及表示解释变量的一个或多个字段结合使用。

  • 广义线性回归工具还会生成输出要素和诊断信息。 输出要素图层会自动添加到地图中,并会对模型残差应用渲染方案。 下面提供了有关各输出的说明。

  • 要获得准确的回归分析结果,必须使用正确的模型类型参数选项(连续二进制计数)进行分析。

  • 模型汇总结果和诊断将写入消息窗口,并将在输出要素类下创建图表。 已报告的诊断将取决于模型类型参数值。 这三种模型类型选项如下所示:

    • 如果因变量可接受温度或总销售额等大范围的值,则请使用连续(高斯)模型类型。 理想情况下,因变量将是正态分布的。
    • 如果因变量可接受两个可能值中的一个(如成功和失败,或者存在和不存在),则请使用二进制(逻辑)模型类型。 包含因变量的字段必须是数字字段或文本字段。 如果该字段是数字字段,则应仅包含 1 和 0。 如果该字段是文本字段,则应仅包含两个不同的值。 如果您使用的是文本字段,则必须使用映射因变量参数,以将不同的文本值映射为一和零。 数据中不同文本值的 1 和 0 必须存在变化。

    • 如果因变量是离散的,并且表示事件的出现次数(如犯罪数量),则请使用计数(泊松)模型类型。 如果因变量表示一个比率,并且该比率的分母是固定值(如每月销售额或每 10,000 人口中患癌症的人数),则也可以使用计数模型。 计数模型假设因变量的均值和方差相等,并且因变量的值不能为负数或包含小数。

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

  • 在预测或解释字段中具有一个或多个空值或空字符串值的要素将从输出中排除。 如有必要,您可以使用计算字段工具来修改值。

  • 查看回归残差中明显的预测过度和预测不足,从而挖掘出回归模型中是否可能发生变量丢失的信息。

  • 您可以使用已创建的回归模型对其他要素进行预测。 要创建这些预测,每个预测要素都应包含每个所提供的解释变量的对应值。 如果输入要素和预测位置参数中的字段名称不匹配,则将提供变量匹配参数。 当匹配解释变量时,输入要素输入预测要素参数中的字段必须属于同一类型(例如,双精度字段必须与双精度字段匹配)。

  • 您可以通过以下一个或多个操作来提升广义线性回归工具的处理速度:

    • 设置分析的处理范围,以便仅分析感兴趣的数据。
    • 不输出系数表。
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 Spark 支持。 分析在您的台式计算机上使用多核并行完成。 有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项

  • 运行 GeoAnalytics Desktop 工具时,分析在您的台式计算机上完成。 为获得最佳性能,应在台式计算机上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果数据不是本地数据,则工具需要更长的运行时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools

  • GLR 的 GeoAnalytics 实施具有以下限制:

    • 它是一种全局回归模型,不考虑数据的空间分布。
    • 分析不适用于将 Moran's I 检验应用于残差。
    • 支持将要素数据集(点、线、面和表)作为输入;栅格则不在支持之列。
    • 您无法将值分类为多个类。

参数

标注说明数据类型
输入要素

包含因变量和自变量的图层。

Table View
因变量

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

Field
模型类型

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

  • 连续(高斯)dependent_variable 值是连续的。 将使用高斯模型,并且工具将执行普通最小二乘法回归。 这是默认设置。
  • 二进制(逻辑)dependent_variable 值表示存在或不存在。 这可以是常规的 1 和 0,也可以是匹配解释变量参数中映射到 0 或 1 的字符串值。 将使用逻辑回归模型。
  • 计数(泊松)dependent_variable 值是离散的,并且可以表示事件,例如犯罪计数、疾病事件或交通事故。 将使用泊松回归模型。
  • 连续(高斯)因变量值是连续的。 将使用高斯模型,并且工具将执行普通最小二乘法回归。 这是默认设置。
  • 二进制(逻辑)因变量值表示存在或不存在。 这可以是常规的 1 和 0,也可以是 explanatory_variables_to_match 参数中映射到 0 或 1 的字符串值。 将使用逻辑回归模型。
  • 计数(泊松)因变量值是离散的,并且可以表示事件,例如犯罪计数、疾病事件或交通事故。 将使用泊松回归模型。
String
解释变量

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

Field
输出要素

将创建的包含因变量的估计数和残差的要素类的名称。

Table; Feature Class
输入预测要素
(可选)

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

Table View
匹配解释变量
(可选)

输入预测要素参数中的解释变量与输入要素参数中的相应解释变量进行匹配。

Value Table
映射因变量
(可选)

表示用于映射到二元回归的 0(不存在)和 1(存在)的值的两个字符串。 默认情况下将使用 0 和 1。 例如,要预测一次具有“逮捕”和“未逮捕”字段值的逮捕,您需要为 False Value (0) 输入 No Arrest,并为 True Value (1) 输入 Arrest。

Value Table
输出预测要素
(可选)

带有每个输入预测要素值的因变量估计数的输出要素类。

Table; Feature Class
输出系数表
(可选)

包含模型拟合系数的输出表。

Table

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

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

  • CONTINUOUSdependent_variable 值是连续的。 将使用高斯模型,并且工具将执行普通最小二乘法回归。 这是默认设置。
  • BINARYdependent_variable 值表示存在或不存在。 这可以是常规的 1 和 0,也可以是匹配解释变量参数中映射到 0 或 1 的字符串值。 将使用逻辑回归模型。
  • COUNTdependent_variable 值是离散的,并且可以表示事件,例如犯罪计数、疾病事件或交通事故。 将使用泊松回归模型。
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(存在)的值的两个字符串。 默认情况下将使用 0 和 1。 例如,要预测一次具有“逮捕”和“未逮捕”字段值的逮捕,您需要为 False 值 (0) 输入 No Arrest,并为 True 值 (1) 输入 Arrest。

Value Table
output_predicted_features
(可选)

带有每个 input_features_to_predict 值的因变量估计数的输出要素类。

带有每个输入预测要素值的因变量估计数的输出要素类。

Table; Feature Class
coefficient_table
(可选)

包含模型拟合系数的输出表。

Table

代码示例

GeneralizedLinearRegression 示例(独立脚本)

以下独立脚本演示了如何使用 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"]])