描述
执行“地理加权回归 (GWR)”,这是一种用于建模空间变化关系的线性回归的局部形式。
注:
该工具是添加到 ArcGIS Pro 2.3 中引入的地理加权回归 (GWR)工具中的子功能。
要了解该工具的算法,请参阅“地理加权回归 (GWR)”工作原理。本主题描述了空间统计工具箱工具;目前,并非所有功能均已包含在 GeoAnalytics Server 工具箱工具中。
使用方法
此地理处理工具适用于 ArcGIS Enterprise 10.8.1 或更高版本。
此工具将执行地理加权回归 (GWR),这是一种用于建模空间变化关系的回归的局部形式。通过使回归方程适合数据集中的每个要素,GWR 工具可为您要尝试了解或预测的变量或过程提供局部模型。地理加权回归 (GWR) 工具构建这些独立方程的方法是:将每个目标要素的邻域范围内的要素的因变量和解释变量进行合并。所分析的每个邻域的形状和范围取决于邻域类型和邻域选择方法参数的输入。
应用 GWR 工具处理包含数百个要素的数据集,以便获得最佳结果, 该工具不适用于小型数据集。而且,此工具不能用于处理多点数据。
可以将输入要素参数与表示正在进行建模的现象的字段(因变量)以及表示解释变量参数值的一个或多个字段结合使用。这些字段必须为数字且具有值范围。因变量或解释变量中包含缺失值的要素将从分析中排除。您可以使用计算字段工具来修改值。如果您的数据可用于 ArcGIS Pro,则使用填充缺失值工具在运行地理加权回归 (GWR)工具之前将缺失值添加到数据集中。
地理加权回归 (GWR) 工具还将生成输出要素并添加报告本地诊断值的字段。输出要素参数值和关联图表会自动添加至内容列表中,并会对模型残差应用热/冷渲染方案。地理加权回归 (GWR) 的工作原理中提供了每个输出的完整说明。
您必须使用投影数据。
通常的做法是,使用地理加权回归 (GWR) 工具在本地探索数据之前,首先使用广义线性回归工具在全球范围内探索数据。
因变量和解释变量必须是包含各种值的数值型字段。这些值应在全球和本地范围内变化。请勿使用哑元解释变量来表示 GWR 模型中的不同空间组织(例如,向城镇中心外的人口普查区赋予值 1,而向其他区域赋予值 0)。由于地理加权回归 (GWR) 工具允许解释变量系数发生变化,这些空间组织解释变量并不必要,并且如果包含了这些变量,则会产生局部多重共线性问题。
在全局回归模型(如广义线性回归)中,当两个或更多变量具有多重共线性时(当存在两个或更多冗余变量或者这些变量共同提供同一信息时),结果并不可靠。地理加权回归 (GWR) 工具为数据集中的各要素构建了一个局部回归方程。如果用于特定解释变量的值出现空间聚类,则可能存在局部多重共线性问题。输出要素类中的调整条件数字段 (COND_ADJ) 可指明回归结果由于局部多重共线性而出现不稳定性的时期。通常,如果要素的调整条件数大于 30、等于“空”或者等于 -1.7976931348623158e+308(对于 shapefile 来说),则结果是不可靠的。
如果在 GWR 模型中包含名目数据或分类数据,则需谨慎操作。在类别出现空间聚类的地方,存在局部多重共线性的风险。GWR 输出中包含的调整条件数指明了局部共线性何时会导致问题(条件数小于 0、大于 30 或设置为“空”)。存在局部多重共线性的结果是不稳定的。
如果回归模型缺少关键解释变量,则会导致回归模型的指定错误。如果回归残差的空间自相关具有统计学上的显著性,或者在一个或多个解释变量的系数当中发生了非期望的空间变化,则表明错误指定了您的模型。您应该尽一切努力(例如,通过 GLR 残差分析和 GWR 系数变化分析)来查找这些丢失的关键变量,以便将其包含在模型中。
时刻关注解释变量的不稳定性是否会出现问题。例如,假设您正将特殊植物种类的密度构建为若干变量(包括 ASPECT)的函数。 如果发现在整个研究区域中 ASPECT 变量的系数发生了更改,则可能要查看是否有缺少关键解释变量的迹象(例如,可能存在大量竞争植被)。应该尽一切努力将所有关键解释变量包含到回归模型中。
当计算结果无限大或未定义时,非 shapefile 的结果将为“空”。
严重模型设计错误或用于表明局部方程未包含足够多相邻要素的错误,通常表示回归存在全局或局部多重共线性问题。要确定出现问题的位置,请使用广义线性回归运行全局模型,然后检查每个解释变量的 VIF 值。如果某些 VIF 值较大(例如,大于 7.5),则全局多重共线性会阻止 GWR 解决问题。但是,更有可能是局部多重共线性所导致的问题。请尝试为各解释变量创建一个专题地图。如果在地图上出现相同值的空间聚类,考虑将这些变量从模型中移除,或将这些变量与其他解释变量合并以便加大值的变化性。例如,如果要对房屋价格进行建模且具有卧室和浴室变量,则可能需要将其合并以加大值的变化性,或将其表示为浴室/卧室的建筑面积。在构造 GWR 模型时,要避免使用空间组织哑元变量、空间聚类名目或数值变量或者几乎不可能具有值的变量。
地理加权回归是与广义线性回归符合相同要求的线性模型。要确保正确指定您的 GWR 模型,请参阅地理加权回归 (GWR) 的工作原理中介绍的诊断。并非所描述的所有诊断在 GeoAnalytics Desktop 工具箱中都可用。回归分析基础知识主题中的回归模型失效方式部分还包含用于确保您的模型准确的信息。
您可以执行以下下一个或多个操作,来提升地理加权回归 (GWR) 工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 减少计算中的相邻要素数。
- 使用邻域类型参数中的相邻要素的数目选项而非距离范围选项(Python 中的 neighborhood_type = "NUMBER OF NEIGHBORS")。
- 请尽可能使用较少的解释变量。
- 将本地数据用于分析运行的位置。
此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。
当 GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS Pro 到 GeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。
类似的分析也可使用“空间统计”工具箱中的地理加权回归工具来完成。要完成以下工作流,请使用“空间统计”工具箱中的工具:
- 使用 ArcGIS Pro 计算机的本地图层(例如文件地理数据库中的要素类)。
- 预测至另一图层或创建栅格系数图层。
- 为二进制(逻辑)变量或计数(泊松值)变量建模。
- 使用黄金搜索或手动间隔来定义邻域搜索。
语法
arcpy.geoanalytics.GWR(in_features, dependent_variable, model_type, explanatory_variables, output_features, neighborhood_type, neighborhood_selection_method, {number_of_neighbors}, {distance_band}, {local_weighting_scheme}, {data_store})
参数 | 说明 | 数据类型 |
in_features | 包含因变量和解释变量的点要素类。 | Feature Set |
dependent_variable | 包含将进行建模的观测值的数值字段。 | Field |
model_type | 用于指定将进行建模的数据类型。
| String |
explanatory_variables [explanatory_variables,...] | 表示回归模型中的解释变量或自变量的字段列表。 | Field |
output_features | 输出要素服务的名称。 | String |
neighborhood_type | 指定是将使用的邻域构造为固定距离,还是允许根据要素的密度在空间范围内变化。
| String |
neighborhood_selection_method | 指定将如何确定邻域大小。
| String |
number_of_neighbors (可选) | 将要考虑的各要素的最近相邻要素数目(最多 1000)。该数值必须是介于 2 到 1000 之间的整数。 | Long |
distance_band (可选) | 邻域的空间范围。 | Linear Unit |
local_weighting_scheme (可选) | 用于指定将用于在模型中提供空间权重的核类型。核将定义每个要素与其邻域内其他要素相关的方式。
| String |
data_store (可选) | 指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。在时空大数据存储中存储的所有结果都将存储在 WGS84 中。在关系数据存储中存储的结果都将保持各自的坐标系。
| String |
派生输出
名称 | 说明 | 数据类型 |
output | 输出要素。 | 记录集 |
代码示例
下面的 Python 窗口脚本演示了如何使用 GWR 工具。
在此脚本中您将创建一个模型,以确定哪些环境变量会对森林火灾频发产生影响。
# Name: GWR.py
# Description: Run GWR on forest fire occurrence report data to understand
# which variables explain reoccurring forest fires
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputFeatures = "https://analysis.org.com/server/rest/services/DataStoreCatalogs/bigDataFileShares_EcoData/BigDataCatalogServer/fireLocations"
outputLayerName = "GWR_ForestFireFrequency"
dependentVariable = "Fire_Frequency"
explanatoryVariables = "GroundCover, TreeCover, SoilMoisture, slope"
distanceValue = "5 Miles"
# Execute GWR
arcpy.geoanalytics.gwr(inputFeatures, dependentVariable,
"CONTINUOUS", explanatoryVariables,
outputLayerName, "DISTANCE_BAND",
"USER_DEFINED", None, distanceValue,
"GAUSSIAN", "SPATIOTEMPORAL_DATA_STORE"))
环境
- 输出坐标系
将用于分析的坐标系。除非由该参数进行指定,否则将基于输入坐标系完成分析。对于 GeoAnalytics 工具,最终结果将存储于 WGS84 中的时空数据存储之内。
许可信息
- Basic: 需要 ArcGIS GeoAnalytics Server
- Standard: 需要 ArcGIS GeoAnalytics Server
- Advanced: 需要 ArcGIS GeoAnalytics Server