标注 | 说明 | 数据类型 |
输入地统计图层 | 表示插值结果的地统计图层。 将对每一个图层进行比较和排名。 | Geostatistical Layer |
输出交叉验证表 | 包含交叉验证统计信息和每个插值结果排名的输出表。 插值结果的最终等级存储在 RANK 字段中。 | Table |
输出具有最高等级的地统计图层 (可选) | 具有最高排名的插值结果的输出地统计图层。 此插值结果将具有输出交叉验证表 RANK 字段中的值 1。 如果具有最高排名的插值结果存在并列或所有结果都被排除标准所排除,即使提供了值也不会创建图层。 如果发生这种情况,该工具将返回警告消息。 | Geostatistical Layer |
比较方法 (可选) | 指定将用于比较和排列插值结果的方法。
| String |
条件 (可选) | 指定将用于对插值结果进行排名的标准。
| String |
条件等级 (可选) | 将用于具有公差的分级排序的标准等级结构。 按优先顺序提供多个标准,第一个标准是最重要的。 插值结果按第一个标准排序,任何并列情况将使用第二个标准继续区分。 如果第二个标准出现并列,就使用第三个标准继续区分,依此类推。 交叉验证统计数据是连续值,通常没有完全并列的情况,因此可以指定容差以在每个标准中创建并列情况。 对于每一行,在第一列中指定标准,在第二列中指定公差类型(百分比或绝对值),在第三列中指定公差值。 如果没有提供公差值,则不使用公差;这对最后一行最有用,这样插值结果就不会出现排名最高的结果。 对于每一行(每个级别),以下条件可用:
例如,您可以在第一行中指定公差为 5% 的均方根误差(精度)值,在第二行中指定不带公差的平均误差(偏差)值。 这些选项将首先按最低均方根误差(最高预测精度)对插值结果进行排序,所有均方根误差值在最准确结果的 5% 以内的插值结果将被视为预测精度并列。 在并列结果中,平均误差最接近零(最低偏差)的结果将获得最高排名。 | Value Table |
加权的条件 (可选) | 具有权重的多个标准将用于对插值结果进行排名。 对于每一行,提供一个标准和一个权重。 插值结果将按每个标准独立进行排名,排名的加权平均值将用于确定插值结果的最终排名。
| Value Table |
排除条件 (可选) | 将用于从比较中排除插值结果的标准和关联值。 排除的结果将不会获得排名,并将在输出交叉验证表的 Included 字段中具有 No 值。
| Value Table |
需要 Geostatistical Analyst 许可。
摘要
使用基于交叉验证统计的可自定义标准对地统计图层进行比较和排名。
插值结果可以基于单个标准(例如最高预测精度或最低偏差)、多个标准的加权平均排名或多个标准的分级排序(如果某个标准出现并列,将使用等级中的后续标准区分)。 排除标准还可用于从比较中排除不符合最低质量标准的插值结果。 可以输出为表格,其中汇总了每个插值结果的交叉验证统计信息和排名。 也可以输出为具有最高等级的插值结果的地统计图层,以用于后续工作流。
插图
使用情况
交叉验证是一种用于评估插值结果的“留一法”。 该方法将按顺序删除数据集中的每个点,并使用所有剩余点来预测排除点的值。 然后将交叉验证预测与隐藏点的真实值进行比较,两者之差就是交叉验证误差(误差可以是正值或负值)。 交叉验证背后的原因是,如果插值结果能有效地预测隐藏点的值,那么它也应该能有效地预测新位置的未知值,这是插值的目标。 该工具使用的所有标准均基于交叉验证结果的汇总统计。
虽然使用交叉验证汇总统计评估插值结果是比较多个插值结果的一种方便有效的方法,但它不能取代数据的专业知识和结果的交互式调查。 查看图表和单个交叉验证错误通常会揭示一些其结果在汇总统计数据中并不明显的模式。 例如,交叉验证误差中经常存在某些区域被低估而其他区域被高估的空间模式;诸如此类的模式可能无法通过汇总统计来表示。
比较方法参数具有三个选项,用于比较插值结果的交叉验证统计量。 每个选项都具有其各自的优缺点。
- 单一标准 - 单一标准用于比较和排列结果。 您可以按最高预测精度、最低偏差、最低最坏情况误差、最高标准误差精度或最高精度对结果进行排名。 标准在条件参数中提供。
- 优点 - 此选项是一种简单且常用的方法,用于比较已知稳定且一致的插值结果。 对于在非常相似的结果之间进行选择,该方法也很有用。
- 缺点 - 插值结果通常在某些标准上表现良好,但在其他条件下表现不佳,例如,预测精度高但偏差也大。 在这种情况下,按单一标准进行排名将为不稳定或具有误导性的结果分配高排名。 当按单一标准进行排名时,建议您使用排除标准参数的各种选项,以确保在比较之前移除不稳定或误导性的结果。
- 带公差的等级排序 - 等级排序用于比较和排列结果。 在条件等级参数中以优先级顺序(最高优先级在前)指定多个条件。 插值结果按第一个标准排序,任何并列情况将使用第二个标准继续区分。 如果第二个标准出现并列,就使用第三个标准继续区分,依此类推。 这个过程将在电子表格软件中的自定义排序和分级排序之后进行建模(先按 A 排序,然后按 B,然后按 C,以此类推)。 但是,交叉验证统计数据是连续值,通常没有完全并列的情况,因此可以指定公差(百分比或绝对值)以在每个标准中创建并列情况。
- 优点 - 此选项使用多个标准,并且考虑了交叉验证统计数据的相对差异。 例如,如果按照最高优先级标准,一个插值结果比其他结果好得多,则无论分级结构中的后续标准如何,该插值结果都将获得最高等级。
- 缺点 - 分级排序的有效性取决于提供的容差值。 如果公差太小,则可能无法使用某些标准,因为没有并列情况需要加以区分。 如果公差太大,由于许多结果在彼此的公差范围内,排名中可能会有很多并列情况。
- 加权平均排名 - 多个标准的加权平均排名用于比较和排名结果。 在加权标准参数中指定多个标准和其相关权重。 插值结果按每个标准独立排序,并使用排名的加权平均值来确定最终排名。 权重较大的标准将对最终排名产生更大的影响,因此表示这些标准的优先级高于其他标准。
- 优点 - 此选项使用多个标准且允许某些标准优于其他标准,始终在比较中使用所有标准。
- 缺点 - 忽略交叉验证统计值的相对差异。 例如,所有均方根误差值彼此之间的公差范围可能非常小(表明所有结果具有大致相等的预测精度),但它们仍将按预测精度从 1 到 N 排列(对于 N 个插值结果)。 但是,结果之间的平均误差值可能会有很大差异(表明结果的偏差之间有很大差异),但它们也会按照偏差标准从 1 到 N 排序。 加权平均仅使用标准的排名,因此在排名中忽略了交叉验证统计量的相对差异。
- 单一标准 - 单一标准用于比较和排列结果。 您可以按最高预测精度、最低偏差、最低最坏情况误差、最高标准误差精度或最高精度对结果进行排名。 标准在条件参数中提供。
输出是一个汇总交叉验证统计、插值结果描述和排名的表格,可以包含在演示文稿或报告中。 只有应用于至少一个插值结果的交叉验证统计数据才会包含在表中。 例如,如果仅使用反距离加权和径向基函数,则输出表将不包含平均标准误差值字段,因为这些方法不计算标准误差。 如果统计信息适用于某些插值结果但不适用于其他插值结果,则对于该统计信息不适用的结果,该值将为空。 此外,如果任何输入地统计图层是使用经验贝叶斯克里金法、EBK 回归预测或经验贝叶斯克里金法 3D 工具创建的,则该工具中未被任何标准使用的几个交叉验证统计数据将包含在表中;出于提供信息的目的,将这些包含在内,并且对于所有其他插值方法都将具有空值。 如果使用加权平均排名,则所有标准的排名及其加权平均值也将包含在表格中。
或者,您可以使用具有最高等级的输出地统计图层参数来创建具有最高等级的输入地统计数据图层副本。 对于自动将最佳插值结果传输到后续工具的 模型构建器 和 Python 脚本来说很有用。
在工具运行时,地理处理消息和进度条消息会显示正在计算的当前插值结果。 在计算和比较所有结果后,排名将打印为地理处理消息。 排名也可在输出交叉验证表中找到。
探索性插值工具将执行与此工具相同的交叉验证比较,但是会在比较和排名之前从输入点和字段自动生成各种插值结果。
下表列出了可用的标准、衡量它们的交叉验证统计数据以及用于为每个插值结果分配分数的公式(分数越小越好)。 通过对每个插值结果的分数进行排序来确定标准的排名。
注:
其中三个标准,分数等于交叉验证统计量。
条件 交叉验证统计 分数公式 最高预测精度
均方根误差
结果按最小均方根误差排序。
Score = RootMeanSquareError
最低偏差
平均误差
结果按最接近零的平均误差排列。
Score = AbsoluteValue( MeanError )
最低最坏情况误差
最大绝对误差
结果按最小最大绝对误差排序。
Score = MaximumAbsoluteError
最高标准误差精度
标准化均方根误差
结果按最接近一的均方根标准化误差进行排序。
Score = AbsoluteValue( RMSStdError - 1 )
最高精度
平均标准误差
结果按最小平均标准误差排序。
Score = AverageStandardError
如果每个标准中都存在并列情况,则所有并列结果都将获得相同的排名,即在它们之间共享最高排名(其中较高的排名意味着较小的排名数值)。 例如,按照从最好到最差的顺序,根据预测精度标准,均方根误差值 (12, 14, 14, 15, 16, 16, 18) 的排名为 (1, 2, 2, 4, 5, 5, 7)。 由于存在并列,排名 3 和 6 被跳过。
并列可能出现在比较的不同阶段。 使用等级排序时最常见的是并列,因为公差内的所有结果都被认为是并列,而公差之外的所有结果也被认为是互相并列。 当插值结果根据不同的标准具有不同的排名时,常常会出现加权平均排名的并列情况,这可能导致排名的加权平均值相等。 虽然不常见,但在单一标准比较中也可能出现并列(例如,如果所有点都具有恒定值)。 如果在加权平均中使用某标准,则该单一标准的并列情况也会影响加权平均排名。
在分级排序中,提供与标准得分相关的公差,而不是交叉验证统计量。 对于分数等于统计量的标准(最高预测精度、最低最坏情况误差和最高精度),通常比较容易确定适当的公差值。 例如,如果插值结果的最小均方根误差值为 200,则 10% 的公差将包括均方根误差值小于或等于 220 的所有结果:200 + (10/100) x 200 = 220。 同样,15 的绝对公差将包括均方根误差值小于或等于 215 的所有结果:200 + 15 = 215。
但是,对于分数不等于统计值的标准(最低偏差和最高标准误差精度),则不太容易确定适当的公差值。 对于平均误差统计,偏差由平均误差的绝对值评分。 这意味着,例如,平均误差值 -4 和 6 具有 50% 的相对差异,因为它们的绝对值相差 50%: ABS(-4) + (50/100) x ABS(-4) = ABS(6)。 同样,它们的绝对差值为 2:ABS(-4) + 2 = ABS(6)。
对于均方根标准化误差统计数据,标准误差精度通过均方根标准化误差值与理想值 1 之间的绝对差值来评分。 这意味着,例如,均方根标准化误差值 0.2 和 2.4 具有 75% 的相对差异。 解释一下原因,将值 0.2 和 2.4 进行比较,后者与理想值 1 的距离是前者的 1.75 倍(增加了 75%,绝对差值分别为 0.8 和 1.4):ABS(0.2 - 1) + (75/100) x ABS(0.2 - 1) = ABS(2.4 - 1)。 同样,它们的绝对差值为 0.6:ABS(0.2 - 1) + 0.6 = ABS(2.4 - 1)。
各种标准要求所有输入地统计图层都支持标准错误输出类型。 如果任何地统计图层不允许标准误差,则多个参数的各种选项将变得不可用。 这些选项与标准误差精度、精度、均方根标准化误差统计量或平均标准误差统计量有关。 在地统计图层上下文选项卡的绘图组中,显示类型菜单显示地统计图层支持的输出类型。
当您不知道被插值的点的值或范围时(例如,在自动化环境中),排除标准参数的减少最小误差百分比选项特别有用。 此选项可排除那些与预测地图中所有位置的全局平均值的基线非空间模型相比不够准确的插值结果。 这种相对精度是通过将均方根误差值与被插值点值的标准偏差进行比较来测量的,并且均方根误差必须至少小于要包含在比较中的标准偏差的指定百分比。 例如,值 10 表示均方根误差必须比标准差至少低 10% 才能包含在比较和排名中。
不同学科对于插值结果中可接受的误差减少量有不同的标准。 在具有密集采样测量的物理科学中,误差通常可以减少 90% 以上。 然而,在社会科学中,误差减少 10% 到 20% 通常对研究人员来说意义重大。
为了使比较有意义且公平,建议您在创建每个输入地统计图层时使用相同的点和字段。 如果任一图层不共享相同的数据源,该工具将返回一条警告消息。
参数
arcpy.ga.CompareGeostatisticalLayers(in_geostat_layers, out_cv_table, {out_geostat_layer}, {comparison_method}, {criterion}, {criteria_hierarchy}, {weighted_criteria}, {exclusion_criteria})
名称 | 说明 | 数据类型 |
in_geostat_layers [in_geostat_layer1,in_geostat_layer2,...] | 表示插值结果的地统计图层。 将对每一个图层进行比较和排名。 | Geostatistical Layer |
out_cv_table | 包含交叉验证统计信息和每个插值结果排名的输出表。 插值结果的最终等级存储在 RANK 字段中。 | Table |
out_geostat_layer (可选) | 具有最高排名的插值结果的输出地统计图层。 此插值结果将具有输出交叉验证表 RANK 字段中的值 1。 如果具有最高排名的插值结果存在并列或所有结果都被排除标准所排除,即使提供了值也不会创建图层。 如果发生这种情况,该工具将返回警告消息。 | Geostatistical Layer |
comparison_method (可选) | 指定将用于比较和排列插值结果的方法。
| String |
criterion (可选) | 指定将用于对插值结果进行排名的标准。
| String |
criteria_hierarchy [[criteria1, tol_type1, tol_val1], [criteria2, tol_type2, tol_val2],...] (可选) | 将用于具有公差的分级排序的标准等级结构。 按优先顺序提供多个标准,第一个标准是最重要的。 插值结果按第一个标准排序,任何并列情况将使用第二个标准继续区分。 如果第二个标准出现并列,就使用第三个标准继续区分,依此类推。 交叉验证统计数据是连续值,通常没有完全并列的情况,因此可以指定容差以在每个标准中创建并列情况。 对于每一行,在第一列中指定标准,在第二列中指定公差类型(百分比或绝对值),在第三列中指定公差值。 如果没有提供公差值,则不使用公差;这对最后一行最有用,这样插值结果就不会出现排名最高的结果。 对于每一行(每个级别),以下条件可用:
例如,您可以在第一行中指定公差为 5% 的 ACCURACY 值,在第二行中指定不带公差的 BIAS 值。 这些选项将首先按最低均方根误差(最高预测精度)对插值结果进行排序,所有均方根误差值在最准确结果的 5% 以内的插值结果将被视为预测精度并列。 在并列结果中,平均误差最接近零(最低偏差)的结果将获得最高排名。 | Value Table |
weighted_criteria [[criteria1, weight1], [criteria2, weight2],...] (可选) | 具有权重的多个标准将用于对插值结果进行排名。 对于每一行,提供一个标准和一个权重。 插值结果将按每个标准独立进行排名,排名的加权平均值将用于确定插值结果的最终排名。
| Value Table |
exclusion_criteria [[criteria1, value1], [criteria2, value2],...] (可选) | 将用于从比较中排除插值结果的标准和关联值。 排除的结果将不会获得排名,并将在输出交叉验证表的 Included 字段中具有 No 值。
| Value Table |
代码示例
以下 Python 脚本演示了如何使用 CompareGeostatisticalLayers 函数。
# Compare Simple kriging, EBK, and Kernel Interpolation results
# Rank results by highest prediction accuracy
# Exclude results with error reductions under 25%
myGALayers = ["Simple Kriging", "EBK", "Kernel Interpolation"]
outTable = "outCVtable"
outGALayer = "Result With Highest Rank"
compMethod = "SINGLE"
criterion = "ACCURACY"
exclCrit = [["MIN_PERC_ERROR", 25]]
arcpy.ga.CompareGeostatisticalLayers(myGALayers, outTable, outGALayer,
compMethod, criterion, None, None, exclCrit)
以下 Python 脚本演示了如何使用 CompareGeostatisticalLayers 函数。
# Compare various interpolation results
# Rank results by highest weighted average rank
# Rank same results by hierarchical sorting
# Import system modules
import arcpy
# Check out the ArcGIS Geostatistical Analyst extension license
arcpy.CheckOutExtension("GeoStats")
# Allow overwriting output
arcpy.env.overwriteOutput = True
### Set shared parameters
# Set input and output locations
directory = "C:/data/"
outgdb = directory + "out.gdb/"
arcpy.env.workspace = directory
# Three interpolation results to compare
myGALayers = ["EBK", "Universal Kriging", "Kernel Interpolation"]
# Exclude results with error reductions under 25%
exclCrit = [["MIN_PERC_ERROR", 25]]
# Output geostatistical layer with highest rank
outGALayer = "Result With Highest Rank"
### Set weighted average rank parameters
# Output table of ranks and cross validation results
outTable = outgdb + "outWeightedAverageTable"
# Use weighted average rank
compMethod = "AVERAGE_RANK"
# Use all criteria with highest weight to prediction accuracy
weightedCrit = [
["ACCURACY", 3],
["BIAS", 1],
["WORST_CASE", 1],
["STANDARD_ERROR", 1],
["PRECISION", 1]
]
# Compare using weighted average rank
arcpy.ga.CompareGeostatisticalLayers(myGALayers, outTable, outGALayer,
compMethod, None, None, weightedCrit, exclCrit)
### Set hierarchical sorting parameters
# Output table of ranks and cross validation results
outTable = outgdb + "outHierSortTable"
# Use hierarchical sorting with tolerances
compMethod = "SORTING"
# Compare using highest prediction accuracy with a 10% tolerance
# Break ties by lowest bias
hierCrit = [
["ACCURACY", "PERCENT", 10],
["BIAS", "PERCENT", None]
]
# Compare using hierarchical sorting with tolerances
arcpy.ga.CompareGeostatisticalLayers(myGALayers, outTable, outGALayer,
compMethod, None, hierCrit, None, exclCrit)
环境
许可信息
- Basic: 需要 Geostatistical Analyst
- Standard: 需要 Geostatistical Analyst
- Advanced: 需要 Geostatistical Analyst