广义线性回归 (GeoAnalytics)

描述

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

使用方法

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

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

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

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

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

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

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

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

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

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

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

  • 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 ProGeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。

    了解有关将数据共享至您的门户的详细信息。

    了解有关通过 Server Manager 创建大数据文件共享的详细信息

语法

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

Value Table
data_store
(可选)

指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。存储在 SPATIOTEMPORAL_DATA_STORE 中的所有结果都将存储于 WGS84 中。存储在 RELATIONAL_DATA_STORE 中的所有结果都将保持各自的坐标系。

  • SPATIOTEMPORAL_DATA_STORE输出将存储在时空大数据存储中。这是默认设置。
  • RELATIONAL_DATA_STORE输出将存储在关系数据存储中。
String

派生输出

名称说明数据类型
output

包含每个输入要素的因变量估计数的输出要素服务。

记录集
output_predicted_features

包含输入变量和预测解释值的输出图层。

记录集
coefficient_table

包含系数值的输出表。

记录集

代码示例

GeneralizedLinearRegression 示例 (Python 窗口)

以下 Python 窗口脚本演示了如何使用 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 工具,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

  • Basic: 需要 ArcGIS GeoAnalytics Server
  • Standard: 需要 ArcGIS GeoAnalytics Server
  • Advanced: 需要 ArcGIS GeoAnalytics Server

相关主题