Skip To Content

广义线性回归

注:

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。

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

工作流示意图

广义线性回归工作流示意图

使用 GeoAnalytics Tools 进行的分析

通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics ToolsArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别

示例

以下为工具的使用示例:

  • 作为电力公司的 GIS 分析师,您会拥有断电数据集以及极端天气数据。 您可以使用构建多变量格网从多变量格网丰富工具丰富您的断电数据,从而创建具有极端天气信息的断电数据集。 您可以使用广义线性回归来确定导致断电的事件。 获得此信息后,您可以预测断电并分配资源。
  • 作为大城市的分析师,您可以获得著名的 911 通话记录以及人口统计信息。 您需要回答以下问题:哪些变量可有效预测 911 呼叫数? 根据未来的预测,针对应急响应资源的预期需求会是什么?

用法说明

可以在两种操作模式下使用此工具。 探索不同的解释变量和工具设置时,可以使用拟合模型以评估模型性能选项来评估不同模型的性能。 找到合适的模型后,可以使用拟合模型并预测值选项。

可以将选择一个图层以生成模型参数与表示正在进行建模的现象的字段(选择要建模的字段)以及表示解释变量的一个或多个字段结合使用。 这些字段必须为数字且具有值范围。 因变量或解释变量中包含缺失值的要素将从分析中排除。 如果要修改空值,请先使用计算字段工具创建具有更新值的新图层。

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

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

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

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

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

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

如果要素的预测或解释字段中具有一个或多个空值或者空字符串值,则将从输出中排除该要素。 如果需要,可以使用计算字段对值进行修改。

您应该从视觉上检查回归残差中明显的预测过度和预测不足,从而挖掘出回归模型中是否可能发生变量丢失的线索。

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

输出

广义线性回归工具会生成各种输出。 GLR 模型的汇总和统计汇总可在门户项目页面上获得,也可作为图层上的资源。 要访问结果汇总,请单击 Map Viewer 经典版 中生成的图层下的显示结果 显示结果。 此工具生成至少一个输出图层和可选输出预测要素。 输出要素将自动添加到 Map Viewer 经典版 中,并会对模型残差应用热/冷渲染方案。 生成的诊断取决于输入要素的模型类型,如下所述。

连续(高斯)

解释消息和诊断

  • AIC - 可用于检验模型性能并比较回归模型。 考虑到模型复杂性,具有较低 AIC 值的模型将更好地拟合观测数据。 AIC 不是拟合度的绝对度量,但对于比较适用于同一因变量且具有不同解释变量的模型非常有用。 如果两个模型的 AIC 值相差大于 3,具有较低 AIC 值的模型将被视为更精确。
  • AICc - AICc 对 AIC 应用偏差校正,适用于小样本大小。 随着输入要素数量的增加,AICc 将接近 AIC。 有关 AIC,请参阅以上内容。
  • 多重可决系数 (Multiple R-Squared) - 可决系数 (R-Squared) 可用于检验拟合度。 其值在 0.0 和 1.0 之间变化,较高的数值更适合。 此值可解释为回归模型所涵盖的因变量方差的比例。 可决系数 (R-Squared) 计算的分母为因变量值平方和。 在模型中增加一个额外的解释变量并不会改变分母,但会改变分子;这可能造成模型拟合度提高的印象,但可能不是真实的。 请参阅下文中的校正可决系数 (Adjusted R-Squared)。
  • 校正可决系数 (Adjusted R-Squared) - 由于上述可决系数值问题,校正可决系数值的计算将按分子和分母的自由度对它们进行归一化。 这具有对模型中变量数进行补偿的效果,因此校正可决系数 (Adjusted R-Squared) 值通常小于可决系数值。 然而,在进行这种调整时,您失去了该值作为可解释方差比例的解释。 在地理加权回归 (GWR) 中,自由度的有效值是所使用邻域的函数,因此与全局模型(如 GLR)相比,校正程度可能非常明显。 因此,AICc 是对模型进行比较的首选方式。

二进制(逻辑)

解释消息和诊断

  • AIC - 可用于检验模型性能并比较回归模型。 考虑到模型复杂性,具有较低 AIC 值的模型将更好地拟合观测数据。 AIC 不是拟合度的绝对度量,但对于比较适用于同一因变量且具有不同解释变量的模型非常有用。 如果两个模型的 AIC 值相差大于 3,具有较低 AIC 值的模型将被视为更精确。
  • AICc - AICc 对 AIC 应用偏差校正,适用于小样本大小。 随着输入要素数量的增加,AICc 将接近 AIC。 有关 AIC,请参阅以上内容。

计数(泊松)

解释消息和诊断

  • AIC - 可用于检验模型性能并比较回归模型。 考虑到模型复杂性,具有较低 AIC 值的模型将更好地拟合观测数据。 AIC 不是拟合度的绝对度量,但对于比较适用于同一因变量且具有不同解释变量的模型非常有用。 如果两个模型的 AIC 值相差大于 3,具有较低 AIC 值的模型将被视为更精确。
  • AICc - AICc 对 AIC 应用偏差校正,适用于小样本大小。 随着输入要素数量的增加,AICc 将接近 AIC。 有关 AIC,请参阅以上内容。

局限性

广义线性回归的 GeoAnalytics 实施具有以下限制:

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

ArcGIS API for Python 示例

可通过 ArcGIS API for Python 获取概化线性回归工具。

本示例可针对数据集拟合模型,并将预测应用于另一个模型。


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False)
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Search for and list the big data file shares in your portal
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_SalesData")

# Look through the big data file share for 2018 sales data to model
model_layer = next(x for x in bdfs_search.layers if x.properties.name == "2018_sales")

# Find the dataset you want to predict
predict_layer_search = portal.content.search("Sales_2025", "Feature Layer")
predict_layer = predict_layer_search[0].layers[0]


# Run the Generalized Linear Regression tool
glr_result = arcgis.geoanalytics.analyze_patterns.glr(input_layer = model_layer, 
																																																						features_to_predict = predict_layer,
																																																						var_explanatory = "salestotal, store_count, advertisingcost",
																																																						var_dependent = "chicago_crimes_enriched",
																																																						regression_family = "Count",
																																																						exp_var_matching = [{"predictionLayerField":"store_count", 
																																																					 																			"trainingLayerField": "num_of_stores"}],
																																																						output_name = "predicted_customers")

# Visualize the results if you are running Python in a Jupyter Notebook
processed_map = portal.map()
processed_map.add_layer(glr_result)
processed_map

类似工具

使用 ArcGIS GeoAnalytics Server 广义线性回归工具以生成预测,或对因变量与一组解释变量的关系进行建模。 其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer 经典版 分析工具

使用 ArcGIS GeoAnalytics Server 基于森林的分类与回归工具创建模型和预测。

ArcGIS Pro 分析工具

要从 ArcGIS Pro 运行此工具,您的活动门户必须为 Enterprise 10.7 或更高版本。您必须使用具有执行 GeoAnalytics 要素分析权限的帐户登录。

使用广义线性回归地理处理工具(作为“空间统计数据”工具箱的一部分),在 ArcGIS Pro 中执行类似的回归操作。

使用基于森林的分类与回归地理处理工具(作为“空间统计数据”工具箱的一部分),通过 ArcGIS Pro 中的 Leo Breiman 随机森林算法的改编版本创建模型和预测。

使用地理加权回归地理处理工具(作为“空间统计数据”工具箱的一部分),在 ArcGIS Pro 中执行 GWR。