创建空间组件解释变量 (空间统计)

摘要

用于创建一组空间组件字段,这些空间组件字段可以最好地描述一个或多个数值字段的空间模式,并可用作预测或回归模型中有用的解释变量。

输入字段应为在预测模型中使用的解释变量和因变量。 可将生成的空间组件字段(称为 Moran 特征向量)用作解释变量(除了原始解释变量之外),通过考虑其他变量的空间模式,通常可提高模型的预测能力。

了解有关 Moran 特征向量的详细信息

插图

“创建空间组件解释变量”工具图示

使用情况

  • 该工具用于创建空间组件,这些空间组件可以最精确地预测输入字段的值。 每个组件代表一个空间模式,所选组件将为模式与输入字段模式最相似的组件。 例如,如果某个字段具有从西向东的广泛趋势,但是同样包含低值和高值的较小聚类,则可以通过组合两个组件来表示该模式:一个表示从西向东的趋势,另一个表示聚类。 通过包含与解释变量和因变量的空间模式相似的解释变量,将在预测和回归工具(例如广义线性回归基于森林的增强分类与回归)中考虑空间效应。 通过考虑空间效应,这些非空间预测模型通常将更加精确地预测,并且通常会减小空间偏差(如残差中的空间模式)。 这一点非常重要,由此可确保模型不会系统地低估或高估某些区域。 此外,可以更加轻松地解释解释变量的系数,因为其将评估解释变量与因变量之间的直接关系,同时滤除空间效应引入的噪声。

  • 此工具旨在创建可用于预测模型的解释变量;但是,通过从预测模型的残差字段或标准化残差字段中移除空间自相关,从字段中过滤空间自相关工具也可用于此目的。 可有效过滤残差自相关的空间组件通常为非常有用的解释变量,并且通常可以使用较少的组件作为解释变量,为此工具提供等效模型改进。 建议您尝试这两种工具,并比较在原始预测模型中包含每个工具的空间组件的结果(例如,通过比较校正 R 平方或 AIC 值)。

  • 空间组件将作为输出要素类中的字段返回,当工具在活动地图中运行时,输出要素图层将基于第一个空间组件进行绘制。 输入字段也将包含在输出要素类中,由此原始解释变量和空间组件解释变量可用于在预测工具中预测因变量,而无需合并输入和输出要素类。

  • 地理处理消息包含以下两个表,用于汇总用于对输入字段进行空间过滤的空间组件的选择:

    • 邻域搜索历史记录 - 对于已测试的 28 个空间权重矩阵 (SWM) 中的每一个,都会显示 SWM 的详细信息(如相邻要素的数量和加权方案)、当使用所有组件时的 p 值和校正 R 平方值、仅使用所选组件时的校正 R 平方值以及所选组件的数量。 使用所选组件的校正 R 平方值最高的 SWM 将用于创建组件,并将使用粗体文本和星号表示。
    • 空间组件搜索历史记录 - 对于所选 SWM,将显示每个组件的 ID 值(例如,ID 4 表示其为第 4 个空间组件)、组件的 Moran's I 值和 p 值以及组件的校正 R 平方值(包括所有先前选择的组件)。 将按最有效地单独预测输入字段的组件(最高 R 平方值)对行进行排序。

  • 该工具将选择 SWM 作为输入要素(除非在输入空间权重矩阵文件参数中提供 SWM),并使用以下程序选择组件解释变量:

    1. 对于 28 个候选 SWM 中的每一个,可以通过使用所有空间组件作为解释变量预测输入字段来测试 SWM 的统计显著性。 显著性检验将使用所有输入字段的组合 R 平方,并对 p 值执行 Šidák 校正,以解释所测试的 SWM 数量。 将从候选项列表中移除任何不具有统计显著性的 SWM。
    2. 对于剩余的候选 SWM 中的每一个,将顺序添加空间组件作为解释变量,直到下一个组件单独不具有统计显著性(p 值大于 0.05),或者该组件(以及所有先前选择的组件)的校正 R 平方值超过使用 SWM 的所有组件时的校正 R 平方值为止。 当用于预测输入字段时,将通过找到具有最高统计显著性(最低 p 值)的组件来选择每个新组件。
    3. 将选择具有最大校正 R 平方值的 SWM 文件作为最终 SWM,并返回相关联的一组所选空间组件作为输出要素类中的字段。

    此过程称为 FWD(前向)选择法,在以下参考文献中有详细介绍:

    • Blanchet, F. Guillaume, Pierre Legendre, and Daniel Borcard. 2008. "Forward selection of explanatory variables." Ecology 89, no. 9: 2623-2632. https://doi.org/10.1890/07-0986.1.

参数

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

包含将在预测模型中使用的解释变量和因变量的字段的输入要素。

Feature Layer
输入字段

将在预测模型中使用的解释变量和因变量的输入字段。

Field
输出要素

将包含可在预测模型中用作附加解释变量的空间组件字段的输出要素。

Feature Class
从输入要素追加所有字段
(可选)

指定是否将所有字段从输入要素复制到输出要素类。

  • 选中 - 输入要素的所有字段都将复制到输出要素类。 这是默认设置。
  • 未选中 - 仅将输入字段复制到输出要素类。
Boolean
输入空间权重矩阵文件
(可选)

输入 SWM 文件 (.swm)。 如果提供了值,则该文件将用于定义输入要素的相邻要素和权重。 如果未提供任何值,则该工具将测试 28 个不同的邻域,并使用将创建最有效组件的邻域作为解释变量。

File
输出空间权重矩阵文件
(可选)

该工具选择的相邻要素和权重的输出 SWM文件 (.swm)。 如果提供了输入 .swm 文件,则此参数不适用。

File
唯一 ID 字段
(可选)

输出 .swm 文件的唯一 ID 字段。 该字段必须是整数,并且每个输入要素必须具有唯一值。

Field

arcpy.stats.CreateSpatialComponentExplanatoryVariables(in_features, input_fields, out_features, {append_all_fields}, {in_swm}, {out_swm}, {id_field})
名称说明数据类型
in_features

包含将在预测模型中使用的解释变量和因变量的字段的输入要素。

Feature Layer
input_fields
[input_fields,...]

将在预测模型中使用的解释变量和因变量的输入字段。

Field
out_features

将包含可在预测模型中用作附加解释变量的空间组件字段的输出要素。

Feature Class
append_all_fields
(可选)

指定是否将所有字段从输入要素复制到输出要素类。

  • ALL输入要素的所有字段都将复制到输出要素类。 这是默认设置。
  • NO_FIELDS仅将输入字段复制到输出要素类。
Boolean
in_swm
(可选)

输入 SWM 文件 (.swm)。 如果提供了值,则该文件将用于定义输入要素的相邻要素和权重。 如果未提供任何值,则该工具将测试 28 个不同的邻域,并使用将创建最有效组件的邻域作为解释变量。

File
out_swm
(可选)

该工具选择的相邻要素和权重的输出 SWM文件 (.swm)。 如果提供了输入 .swm 文件,则此参数不适用。

File
id_field
(可选)

输出 .swm 文件的唯一 ID 字段。 该字段必须是整数,并且每个输入要素必须具有唯一值。

Field

代码示例

CreateSpatialComponentExplanatoryVariables 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 CreateSpatialComponentExplanatoryVariables 函数。

# Create fields that describe the spatial patterns of POPULATION.

arcpy.env.workspace = r"c:\data\project_data.gdb"

arcpy.stats.CreateSpatialComponentExplanatoryVariables(
    in_features="states",
    input_fields="POPULATION",
    out_features=r"myOutputFeatureClass",
    append_all_fields="ALL",
    in_swm=None,
    out_swm=None,
    id_field=None
)
CreateSpatialComponentExplanatoryVariables 示例 2(独立脚本)

以下独立脚本演示了如何使用 CreateSpatialComponentExplanatoryVariables 函数。

# Create fields that describe the spatial patterns of two analysis fields.

import arcpy

# Set the current workspace.
arcpy.env.workspace = r"c:\data\project_data.gdb"

# Run the tool.
arcpy.stats.CreateSpatialComponentExplanatoryVariables(
    in_features="myFeatureClass",
    input_fields="myAnalysisField1;myAnalysis Field2",
    out_features=r"myOutputFeatureClass",
    append_all_fields="ALL",
    in_swm=None,
    out_swm=None,
    id_field=None
)

# Print the messages. 
print(arcpy.GetMessages())

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题