通过面插值填充数据之间的间隙

对老年人的百分比值进行插值

如果您知道数据集中大多数要素的值,则可以使用这些值来预测整个区域的连续值。 您需要进行此操作,以绘制波兰老年人的空间分布图。

  1. 下载 FillGaps 工程包。
  2. 在计算机上找到下载的文件并双击,以在 ArcGIS Pro 中打开工程。 如果收到系统提示,请使用您获得许可的 ArcGIS 账户登录。
    注:

    如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织账户,请参阅软件访问权限选项

    此工程的地图描绘了波兰境内类似于县的行政单位 powiaty。 面将被着色以表示 65 岁或 65 岁以上人口的百分比。 遗憾的是,数据还不够完整。 有 10 个 powiaty 中未包含老年人百分比的值。

    此波兰地图中的 powiaty 已按老年人百分比进行了着色

    您可以在 ArcGIS Living Atlas of the World 中找到该空间数据。 老年人百分比的值来自波兰统计局(为了实现本教程的教学目的,我们已经人为地移除了缺失值)。

    人口统计数据通常很难用地统计进行建模,因为城市地区将呈现出与农村地区截然不同的模式。 在本案例中,该数据的空间差异相对平滑,没有十分明显的中断。 这意味着该数据可能适用于地统计。

  3. 在功能区上,单击分析选项卡。 在工作流组中,单击地统计向导

    功能去上的“地统计向导”按钮

    随即显示地统计向导窗口。

  4. 地统计向导窗口中的地统计方法下方,选择面插值

    “地统计向导”窗口中的“面插值”选项

    大多数插值方法需要将点数据作为输入,但面插值将使用面。 在本教程中,您将使用接近完整且像拼图碎片一样拼凑在一起的面。 您还可以使用间距较宽或重叠的面。 例如,您可能拥有表示鸟类观测值的数据,这些数据存储在每个观察点所覆盖地面的面中。

    注:

    您可以在什么是面插值?中阅读到有关此地统计方法的详细信息。

    如果您声明将值用作表示平均值、比率或事件,则面插值将以不同的方式处理值。 您将绘制特定年龄以上的人口百分比(这是一个比率)地图。

  5. 输入数据集 1 下方,针对类型,选择比率。 对于源数据集,选择 Powiaty_Seniors
  6. 对于计数字段,选择 2017 Senior Population。 对于人口字段,选择 2017 Total Population

    “输入数据集 1”参数

  7. 单击下一步

    下一个页面将显示协方差图。

    默认的协方差图

    蓝色十字代表您的数据,其中没有任何建模。 蓝线代表将用于预测整个区域老年人百分比的模型。 您希望编辑模型的参数,直到模型线沿着十字的路径且 90% 的十字位于红色置信区间内为止。 而在目前,情况并非如此。

    不仅该线没有紧紧沿着十字路径,而且有两个十字位于离路径很远的位置。 在许多情况下,您将无法完成理想的模型,但您可以尝试尽可能接近这一结果。 将步长大小设置得小一些将是一个好的开端。 这样做可缩小在通过采样来生成蓝色十字时需要搜索的区域。

  8. 常规属性下,对于步长大小,输入 12000,然后按 Enter 键。

    “步长大小”参数

    模型随即更改。 然而,现在十字与置信区间的距离更远了。

    “步长大小”设置为 12000 的协方差图

    接下来,您需要尝试通过更改模型形状来改进模型。 Stable 和 K-Bessel 模型通常会提供最好的结果,但所需的处理时间也更长。

  9. 对于模型,选择 Stable

    “模型”参数

    模型随即更新。 蓝色十字现在更接近红色置信区间,尽管大多数十字并不落在区间内。

    “模型”设置为 Stable 的协方差图

    获得完美的模型可能很困难甚至是不可能的,尤其是当您使用人口统计数据而非自然现象时更是如此。 在这种情况下,即使只有一个十字位于置信区间内,模型线也会相对紧密地跟随十字路径。 尽管这个模型并不完美,但它却是一个合适的折衷方案。

  10. 单击下一步

    下一个页面中将包含预览地图。

    预览地图

  11. 单击此预览地图的不同部分。

    地图会高亮显示将用于确定您所单击位置的预测值的邻近面。 在分析中,采用红色的面将比采用绿色的面的权重更大。

  12. 单击下一步

    随即显示交叉验证页面。 交叉验证将评估预测表面的精度。 该验证将通过从数据集中移除单个面并使用剩余数据来预测所移除面内的值来实现。

    “交叉验证”页面

    此模型的预测散点图外观存在问题。 在理想情况下,红色值应遵循蓝色线和灰色线的趋势。 您的图表看起来更像是一个随机的点云。 另一方面,摘要选项卡上列出的值显示良好:

    “摘要”选项卡

    摘要数字应该都接近于零,但标准化均方根误差除外,该值应该接近于 1。 均方根值为 0.02 意味着所预测的老年人比例将比实际值平均低 2%。 这是一个合理的误差幅度。 这些值比散点图更能反映模型的质量。

  13. 单击完成。 在方法报告窗口中,单击确定

    一个已插值图层将添加到地图中。

  14. 内容窗格中,关闭 Powiaty_Seniors 并打开 Powiaty_Seniors 轮廓

    具有较重黑色轮廓的区域是缺失数据的区域。

    powiaty 轮廓下方插值后的表面

根据插值创建面

您所创建的插值为连续插值,且会忽略面轮廓。 地统计已经平滑了人口统计数据,以创建一个渐变的表面。 虽然它可能无法精确匹配已知数据,但这样的平滑插值通常更适合预测未知值。

接下来,您需要将连续插值表面转换为面。

  1. 单击功能区上的地图选项卡。 在导航组中,单击书签,然后选择 Kluczborski

    地图书签库中的 Kluczborski 书签

    地图随即导航至 Kluczborski powiat,这是缺失数据的 powiaty 之一。

    地图上的 Kluczborski powiat

    面插值图层是一个地统计图层,这意味着地图上每个位置的值都略有不同。 您需要填充的一些面(例如这个面)具有各种预测值。 您需要将此预测表面转换为一个面图层,并保证其中每个 powiat 都有一个预测值。

  2. 在功能区上,单击分析选项卡。 在地理处理组中,单击工具

    功能区上的“工具”按钮

    将出现地理处理窗格。

  3. 地理处理窗格的搜索栏中,输入面差值图层。 在结果列表中,选择面插值图层到面

    搜索结果列表中的“面插值图层到面”工具

  4. 对于面插值图层到面工具,输入以下参数:
    • 对于输入面插值地统计图层,选择面插值
    • 对于输入面要素,选择 Powiaty_Seniors
    • 对于输出面要素类,将输出名称更改为 Interpolated_Polygons。 确保包括下划线。

    “面插值图层到面”工具参数

  5. 单击运行

    Interpolated_Polygons 图层将添加到地图中。

  6. 单击功能区上的地图选项卡。 在导航组中,单击全图范围按钮。

    功能区上的全图范围按钮

    地图将缩小以显示数据的全图范围。

  7. 内容窗格中,将 Interpolated_Polygons 图层拖动到 Powiaty_Seniors outlines 图层下方。

    “内容”窗格中的 Interpolated_Polygons 图层

  8. 关闭 Areal Interpolation 图层。

    您现在拥有每个面中老年人百分比的值。

    带有插值面的地图

用预测值替换缺失值

您拥有大多数 powiaty 面的实际值,因此您仅希望对 10 个缺失值的面使用预测值。 您将选择这 10 个面,然后使用计算字段工具单独为这些面添加值。

  1. 内容窗格中,右键单击 Interpolated_Polygons 并选择属性表

    “属性表”选项

    属性表随即出现。 其中包含来自 Powiaty_Seniors 图层的所有数据,但还有三个新字段:IncludedPredictedStandard Error

    属性表中的 Included、Predicted 和 Standard Error 列

  2. 双击 Percent Seniors 列的标题。

    Percent Seniors 列的标题

    该列随即进行排序。 现在,所有空记录 (<Null>) 都位于表的顶部。 您需要使用来自 Predicted 字段的数据替换掉这些空值。

  3. 单击第一个记录的行号以将其选中。 按住 Shift 键,然后单击最后一个缺失数据的记录的行号(第 10 行)。

    所有缺失数据的记录都被选中。

    缺失数据的行

  4. 单击计算按钮。

    计算按钮

    随即出现用于计算字段的选项。

  5. 确认 PercentSeniors 被选为要计算的字段。

    PercentSeniors 字段

  6. 对于输入表达式以计算字段值,单击将字段添加到表达式按钮。

    “将字段添加到表达式”按钮

  7. 在字段列表中,单击 Predicted

    框将使用 !Predicted! 填充。该操作将从 Predicted 字段中获取值并将其添加到 Percent Seniors 字段中。 Predicted 字段中的现有值的格式为小数值而非百分比值。 要对其进行转换,您需要将该值乘以 100。

  8. !Predicted! 后,输入 *100

    将预测值转换为百分比的公式

  9. 单击计算所选内容 (10)

    “计算所选内容 (10)”按钮

    Percent Seniors 列中的 <Null> 值已被替换。 未选中的行将保持不变。

    显示 Percent Seniors 值的属性表

  10. 在属性表顶部,单击清除

    “清除”按钮

    随即清除选择。

  11. 关闭属性表。

符号化地图

最后,您需要对新图层进行符号化以匹配原始图层。 您需要从 Powiaty_Seniors 图层导入符号系统参数,而不是一一设置符号系统参数。

  1. 内容窗格中,关闭 Powiaty_Seniors outlines。 如有必要,单击 Interpolated_Polygons 以将其选中。
  2. 在功能区上,单击要素图层选项卡。 在绘制组中,单击导入

    功能区上的“导入”按钮

    随即出现导入符号系统窗口。 窗口顶部的一条消息通知您,您的数据有尚未保存的待处理编辑内容。 这些编辑内容是您在属性表中计算的值。 在继续之前,请进行保存。

  3. 导入符号系统窗口中,单击保存编辑按钮。

    “保存编辑”按钮

    随即保存编辑内容。

  4. 对于符号系统图层,选择 Powiaty_Seniors

    “导入符号系统”窗口中的“符号系统图层”参数

  5. 单击确定

    现在,Areal_Interpolation_Polygons 的符号系统与初始图层 Powiaty_Seniors 的符号系统相匹配,但数据中不再存在任何孔洞。

    此波兰地图中的 powiaty 已按老年人百分比进行了着色,且没有任何间隙

  6. 快速访问工具栏中,单击保存工程按钮。

    快速访问工具栏上的“保存工程”按钮

    注:

    如果您收到一条消息,告知您此工程是使用之前版本的 ArcGIS Pro 创建的并询问您是否要继续,请单击

用替换值的方式来替换缺失数据的过程称为插补。 通常,我们使用剩余数据集的平均值对值进行插补。 当您的数据是空间数据时,您会拥有更好的选择,因为您可以假设相互距离较近的事物比相互距离较远的事物更具有相似性。 在本教程中,您使用面插值创建了一个覆盖波兰全境的连续表面,以便对 65 岁以上人口的百分比进行建模。 接下来,您从该表面进行了采样,以预测缺失数据的面的值。

不要忘记告诉您的地图读者,有些值是通过插值得到的。 该操作可通过标注、列表或符号系统来完成。 如果您的地图包含在报告中,则您可以描述插值方法。

填充缺失值工具可以完成相同的插值任务。 对于某些数据集,此工具将得出更好的结果。 而对于其他一些数据集,地统计的效果会更好。 这两种工具都必须在真正尝试后才能知道效果究竟如何,但如果值之间的空间过渡不平滑,则建议使用填充缺失值

注:

可以选择性地进行额外挑战,在地理处理窗格中找到填充缺失值工具并使用它来对 Powiaty_Seniors 图层中的缺失值进行插值。 将您的结果与 Powiaty_full_dataset 中的实际值进行比较,后者可在目录窗格中访问。

请于填充缺失值(时空模式挖掘)和文章处理缺失数据的最佳实践中了解更多信息。

您可以在教程库中找到更多教程。