地理加权回归 (GWR) (空间统计)

摘要

执行“地理加权回归 (GWR)”,这是一种用于建模空间变化关系的线性回归的局部形式。

注:

ArcGIS Pro 2.3 中已添加此工具,以替换类似但现已弃用的地理加权回归 (GWR) 工具。此新工具包括对过去几年开发的方法的改进,并支持其他模型。

了解有关“地理加权回归 (GWR)”工作原理的详细信息

插图

地理加权回归
GWR 为局部回归模型。允许系数跨空间变化。

使用情况

  • 此工具将执行地理加权回归 (GWR),这是一种用于建模空间变化关系的回归的局部形式。通过使回归方程适合数据集中的每个要素,GWR 工具可为您要尝试了解或预测的变量或过程提供局部模型。地理加权回归 (GWR) 工具构建这些独立方程的方法是:将每个目标要素的邻域范围内的要素的因变量和解释变量进行合并。分析的每个邻域的形状和范围基于输入的邻域类型邻域选择方法参数,但也存在一条限制:如果相邻要素的数目超过 1000,则仅将最相邻的 1000 个要素合并到各个局部方程中。

  • 为了获得最佳结果,可将 GWR 应用于包含数百个要素的数据集。GWR 不适用于小型数据集。而且,此工具不能用于处理多点数据。

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

  • 注:

    地理加权回归 (GWR) 工具会生成各种输出。在工具执行期间,GWR 模型的汇总以消息形式显示在地理处理窗格底部。可将鼠标悬停在进度条上、单击弹出按钮或展开地理处理窗格中的消息部分来访问消息。您还可以通过地理处理历史访问之前运行地理加权回归 (GWR) 工具的消息。

    GWR 工具还将生成输出要素并添加报告本地诊断值的字段。输出要素和关联图表会自动添加至内容列表中,并会对模型残差应用热/冷渲染方案。有关每个输出和图表的完整说明,请参阅地理加权回归的工作原理

  • 指定的模型类型取决于正在进行建模的数据。要获得准确的回归分析结果,必须使用正确的模型进行分析。

  • 建议您使用投影数据。这一点在距离成为分析的一部分时尤其重要,因为将邻域类型参数设置为距离范围时,会对 GWR 使用投影数据。建议您使用投影坐标系(而非地理坐标系)对数据进行投影。

  • 地理加权回归 (GWR) 工具执行的某些计算会利用多个 CPU 以提高性能,并会自动使用多达 8 条线程/CPU 进行处理。

  • 通常的做法是,使用 GWR 工具在本地探索数据之前,首先使用广义线性回归工具在全球范围内探索数据。

  • 因变量解释变量应该是包含各种值的数值型字段。这些值应在全球和本地范围内变化。请勿使用哑元解释变量来表示 GWR 模型中的不同空间组织(例如,向城镇中心外的人口普查区赋予值 1,而向其他区域赋予值 0)。由于 GWR 工具允许解释变量系数发生变化,这些空间组织解释变量并不必要,并且如果包含了这些变量,则会产生局部多重共线性问题。

  • 在全局回归模型(如广义线性回归)中,当两个或更多变量具有多重共线性时(当存在两个或更多冗余变量或者这些变量共同提供同一信息时),结果并不可靠。GWR 工具为数据集中的各要素构建了一个局部回归方程。如果用于特定解释变量的值出现空间聚类,则可能存在局部多重共线性问题。输出要素类中的条件数字段 (COND) 可指明回归结果由于局部多重共线性而出现不稳定性的时期。通常,如果要素的条件数大于 30、等于“空”或者等于 -1.7976931348623158e+308(对于 shapefile 来说),则结果是不可靠的。需要对条件数进行比例调整,才能校正模型中的解释变量数。这样可以使用不同数量的解释变量直接比较模型之间的条件数。

  • 如果在 GWR 模型中包含名目数据或分类数据,则需谨慎操作。在类别出现空间聚类的地方,存在局部多重共线性的风险。GWR 输出中包含的条件数指明了局部共线性何时会导致问题(条件数小于 0、大于 30 或设置为“空”)。存在局部多重共线性的结果是不稳定的。

  • 要更好地了解解释变量系数当中的区域变化,请检查由 GWR 工具创建的可选栅格系数表面。如果指定,则将在系数栅格工作空间参数的其他选项下创建这些栅格表面。对于面数据,您可以对输出要素中的每个系数字段使用渐变色彩或由冷色到暖色的渲染以检查整个研究区域的更改。

  • 通过提供预测位置(通常此要素类与输入要素相同)、匹配解释变量以及指定输出预测要素,可以使用 GWR 工具进行预测。如果输入要素中的要匹配的解释变量字段与预测位置中的字段字段匹配,则其将自动进行填充。否则,请指定正确字段。

  • 如果回归模型缺少关键解释变量,则会导致回归模型的指定错误。如果回归残差的空间自相关具有统计学上的显著性,或者在一个或多个解释变量的系数当中发生了非期望的空间变化,则表明错误指定了您的模型。您应该尽一切努力(例如,通过 GLR 残差分析和 GWR 系数变化分析)来查找这些丢失的关键变量,以便在模型中包含这些变量。

  • 时刻关注解释变量的不稳定性是否会出现问题。例如,假设您正将特殊植物种类的密度构建为若干变量(包括 ASPECT)的函数。如果发现在整个研究区域中 ASPECT 变量的系数发生了更改,则可能要查看是否有缺少关键解释变量的迹象(例如,可能存在大量竞争植被)。应该尽一切努力将所有关键解释变量包含到回归模型中。

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

    警告:

    在使用 shapefile 时,请注意 shapefile 无法存储空值。因此,用来根据非 shapefile 输入创建 shapefile 的工具或其他程序可能会将空值存储为零或某些非常小的负数 (-DBL_MAX = -1.7976931348623158e+308)。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项

  • 邻域选择方法参数存在以下三个选项: 如果选择黄金搜索,则工具将使用黄金分割搜索方法查找距离范围相邻要素数参数的最佳值。手动间隔选项将测试指定距离之间相应增量中的邻域。无论哪种情况,使用的邻域大小是最小化 Akaike 信息准则 (AICc) 值的邻域大小。但是,局部多重共线性问题将会阻止两种方法解析最佳距离范围或相邻要素的数目。如果出现错误或遇到严重的模型设计问题,您可以尝试使用用户定义选项来指定特定距离或邻域计数。然后检查输出要素类中的条件数,以查看哪些要素与局部共线性问题相关联。

  • 严重模型设计错误或用于表明局部方程未包含足够多相邻要素的错误,通常表示回归存在全局或局部多重共线性问题。要确定出现问题的位置,请使用广义线性回归运行全局模型,然后检查每个解释变量的 VIF 值。如果某些 VIF 值较大(例如,大于 7.5),则全局多重共线性会阻止 GWR 解决问题。但是,更有可能是局部多重共线性所导致的问题。请尝试为各解释变量创建一个专题地图。如果在地图上出现相同值的空间聚类,考虑将这些变量从模型中移除,或将这些变量与其他解释变量合并以便加大值的变化性。例如,如果要对房屋价格进行建模且具有卧室和浴室变量,则可以将其合并以加大值的变化性,或将其表示为浴室/卧室的建筑面积。在构造 GWR 模型时,要避免使用空间组织哑元变量、空间聚类名目或数值变量或者几乎不可能具有值的变量。

  • 地理加权回归是与广义线性回归符合相同要求的线性模型。要确保正确指定您的 GWR 模型,请查看地理加权回归的工作原理中介绍的诊断。“回归分析基础知识”主题中的回归模型失效方式部分还包含用于确保您的模型准确的信息。

参数

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

包含因变量和解释变量的要素类。

Feature Layer
因变量

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

Field
模型类型

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

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

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

Field
输出要素

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

Feature Class
邻域类型

指定是将使用的邻域构造为固定距离,还是允许根据要素的密度在空间范围内变化。

  • 相邻要素的数目 邻域大小是每个要素的计算中包括的指定相邻要素数目的函数。在要素密集的位置,邻域的空间范围较小;在要素稀疏的位置,邻域的空间范围较大。
  • 距离范围邻域大小是每个要素的恒定或固定距离。
String
邻域选择方法

指定将如何确定邻域大小。使用黄金搜索手动间隔选项选择的邻域基于最小化 AICc 值。

  • 黄金搜索工具将使用黄金分割搜索方法,基于数据的特征确定最佳距离或相邻要素数。
  • 手动间隔 测试邻域将由最小相邻要素的数目相邻要素的数目增量参数(如果将邻域类型参数设置为相邻要素的数目)或者最小搜索距离搜索距离增量参数(如果将邻域类型参数设置为距离范围)以及增量数参数中指定的值定义。
  • 用户定义 邻域大小将由相邻要素的数目距离范围参数指定。
String
最小相邻要素的数目
(可选)

每个要素的最小相邻要素的数目将包含在其计算中。建议至少使用 30 个相邻要素。

Long
最大相邻要素的数目
(可选)

每个要素的最大相邻要素的数目(最多 1000 个)将包含在其计算中。

Long
最小搜索距离
(可选)

最小邻域搜索距离。建议使用每个要素至少有 30 个相邻要素的距离。

Linear Unit
最大搜索距离
(可选)

最大邻域搜索距离。如果距离导致要素具有超过 1000 个相邻要素,则该工具将在目标要素的计算中使用前 1000 个相邻要素。

Linear Unit
相邻要素的数目增量
(可选)

将针对每个邻域测试增加手动间隔的相邻要素的数目。

Long
搜索距离增量
(可选)

将针对每个邻域测试增加手动间隔的距离。

Linear Unit
增量数
(可选)

要从最小相邻要素的数目最小搜索距离参数开始测试的邻域大小的数量。

Long
相邻要素的数目
(可选)

将要考虑的各要素的最近相邻要素数目(最多 1000)。数量应该为介于 2 到 1000 之间的整数。

Long
距离范围
(可选)

邻域的空间范围。

Linear Unit
预测位置
(可选)

一种要素类,包含表示将计算评估值的位置的要素。此数据集中的每个要素都应包含指定的所有解释变量的值。将使用针对输入要素类数据进行校准的模型来评估这些要素的因变量。需要预测的是,这些要素位置应该位于与输入要素相同的研究区域内,或接近该研究区域(位于 +15% 范围内)。

Feature Layer
要匹配的解释变量
(可选)

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

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

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

Feature Class
可靠预测
(可选)

用于指定将在预测计算中使用的要素。

  • 选中 - 值高于平均值(异常值)3 个标准偏差的要素以及权重为 0(空间异常值)的要素将从预测计算中排除,但将在输出要素类中接收预测。这是默认设置。
  • 未选中 - 将在预测计算中使用所有要素。
Boolean
局部权重方案
(可选)

用于指定将用于在模型中提供空间权重的核类型。核将定义每个要素与其邻域内其他要素相关的方式。

  • 双平方权重 0 将会分配给指定邻域外的任何要素。这是默认设置。
  • 高斯函数所有要素都将获得权重,但是距离目标要素越远,则权重将以指数方式变小。
String
系数栅格工作空间
(可选)

将创建系数栅格的工作空间。如果提供了此工作空间,则会为截距及各解释变量创建栅格。

Workspace

派生输出

标注说明数据类型
系数栅格图层

输出系数栅格。

栅格图层

arcpy.stats.GWR(in_features, dependent_variable, model_type, explanatory_variables, output_features, neighborhood_type, neighborhood_selection_method, {minimum_number_of_neighbors}, {maximum_number_of_neighbors}, {minimum_search_distance}, {maximum_search_distance}, {number_of_neighbors_increment}, {search_distance_increment}, {number_of_increments}, {number_of_neighbors}, {distance_band}, {prediction_locations}, {explanatory_variables_to_match}, {output_predicted_features}, {robust_prediction}, {local_weighting_scheme}, {coefficient_raster_workspace})
名称说明数据类型
in_features

包含因变量和解释变量的要素类。

Feature Layer
dependent_variable

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

Field
model_type

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

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

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

Field
output_features

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

Feature Class
neighborhood_type

指定是将使用的邻域构造为固定距离,还是允许根据要素的密度在空间范围内变化。

  • NUMBER_OF_NEIGHBORS 邻域大小是每个要素的计算中包括的指定相邻要素数目的函数。在要素密集的位置,邻域的空间范围较小;在要素稀疏的位置,邻域的空间范围较大。
  • DISTANCE_BAND邻域大小是每个要素的恒定或固定距离。
String
neighborhood_selection_method

指定将如何确定邻域大小。使用 GOLDEN_SEARCHMANUAL_INTERVALS 选项选择的邻域基于最小化 AICc 值。

  • GOLDEN_SEARCH工具将使用黄金分割搜索方法,基于数据的特征确定最佳距离或相邻要素数。
  • MANUAL_INTERVALS 测试邻域将由在 minimum_number_of_neighborsnumber_of_neighbors_increment 参数(如果将 neighborhood_type 参数设置为 NUMBER_OF_NEIGHBORS)或者 minimum_search_distancesearch_distance_increment 参数(如果将 neighborhood_type 参数设置为 DISTANCE_BAND)以及 number_of_increments 参数中指定的值定义。
  • USER_DEFINED 邻域大小将由 number_of_neighborsdistance_band 参数指定。
String
minimum_number_of_neighbors
(可选)

每个要素的最小相邻要素的数目将包含在其计算中。建议至少使用 30 个相邻要素。

Long
maximum_number_of_neighbors
(可选)

每个要素的最大相邻要素的数目(最多 1000 个)将包含在其计算中。

Long
minimum_search_distance
(可选)

最小邻域搜索距离。建议使用每个要素至少有 30 个相邻要素的距离。

Linear Unit
maximum_search_distance
(可选)

最大邻域搜索距离。如果距离导致要素具有超过 1000 个相邻要素,则该工具将在目标要素的计算中使用前 1000 个相邻要素。

Linear Unit
number_of_neighbors_increment
(可选)

将针对每个邻域测试增加手动间隔的相邻要素的数目。

Long
search_distance_increment
(可选)

将针对每个邻域测试增加手动间隔的距离。

Linear Unit
number_of_increments
(可选)

要从 minimum_number_of_neighborsminimum_search_distance 参数开始测试的邻域大小的数量。

Long
number_of_neighbors
(可选)

将要考虑的各要素的最近相邻要素数目(最多 1000)。数量应该为介于 2 到 1000 之间的整数。

Long
distance_band
(可选)

邻域的空间范围。

Linear Unit
prediction_locations
(可选)

一种要素类,包含表示将计算评估值的位置的要素。此数据集中的每个要素都应包含指定的所有解释变量的值。将使用针对输入要素类数据进行校准的模型来评估这些要素的因变量。需要预测的是,这些要素位置应该位于与 in_features 相同的研究区域内,或接近该研究区域(位于 +15% 范围内)。

一种要素类,包含表示将计算评估值的位置的要素。此数据集中的每个要素都应包含指定的所有解释变量的值。将使用针对输入要素类数据进行校准的模型来评估这些要素的因变量。需要预测的是,这些要素位置应该位于与输入要素相同的研究区域内,或接近该研究区域(位于 +15% 范围内)。

Feature Layer
explanatory_variables_to_match
[explanatory_variables_to_match,...]
(可选)

prediction_locations 参数中与 in_features 参数中的相应解释变量匹配的解释变量。[["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]] 为示例。

Value Table
output_predicted_features
(可选)

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

Feature Class
robust_prediction
(可选)

用于指定将在预测计算中使用的要素。

  • ROBUST值高于平均值(异常值)3 个标准偏差的要素以及权重为 0(空间异常值)的要素将从预测计算中排除,但将在输出要素类中接收预测。这是默认设置。
  • NON_ROBUST将在预测计算中使用所有要素
Boolean
local_weighting_scheme
(可选)

用于指定将用于在模型中提供空间权重的核类型。核将定义每个要素与其邻域内其他要素相关的方式。

  • BISQUARE权重 0 将会分配给指定邻域外的任何要素。这是默认设置。
  • GAUSSIAN所有要素都将获得权重,但是距离目标要素越远,则权重将以指数方式变小。
String
coefficient_raster_workspace
(可选)

将创建系数栅格的工作空间。如果提供了此工作空间,则会为截距及各解释变量创建栅格。

Workspace

派生输出

名称说明数据类型
coefficient_raster_layers

输出系数栅格。

栅格图层

代码示例

GWR 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = r"c:\data\project_data.gdb”
arcpy.stats.GWR("US_Counties", "Diabetes_Percent", "CONTINUOUS", 
     "Inactivity_Percent;Obesity_Percent", "out_features", 
     "NUMBER_OF_NEIGHBORS", "GOLDEN_SEARCH", None, None, None, 
     None, None, None, None, None, None, None, None, None, "ROBUST", 
     "BISQUARE")
GWR 示例 2(独立脚本)

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

# 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, and average household income.
 
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.GWR("crime_counts", "total crimes", "COUNT", "YRBLT;TOTPOP;AVGHINC", 
     "out_features", "NUMBER_OF_NEIGHBORS", "GOLDEN_SEARCH", 30, None, None, None, 
     None, None, None, None, None, "prediction_locations", 
     "YRBLT YRBLT;TOTPOP TOTPOP;AVGHINC AVGHINC", "predicted_counts", 
     "NON_ROBUST", "BISQUARE", r"c:\data\out_rasters")

环境

特殊情况

输出坐标系

完成分析后,将要素几何投影到输出坐标系中。

许可信息

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

相关主题