使用交叉验证评估插值结果

需要 Geostatistical Analyst 许可。

在决定生成用于决策的插值模型之前,应该先研究模型对新位置的值所做预测的准确程度。 但是,如果不知道测量点之间位置的真实值,那么如何才能知道您的模型是否对这些值进行了准确可靠的预测? 在回答这个问题之前,您需要知道尚未采样的位置处的值。 但是,有一种常用且广泛使用的方法,即交叉验证方法,可用来评估插值的准确度和可靠性。

交叉验证

交叉验证是一种留一法重采样方法,该方法首先使用所有输入点来估计插值模型的参数(例如克里金法的半变异函数或反距离加权法的幂值)。 然后移除单个输入点并使用遗留点来预测隐藏点位置处的值,再将预测值与测量值进行比较。 接下来,将隐藏点添加回数据集,并对不同点进行隐藏和预测。 对所有输入点重复此过程。

下图显示了单个点的交叉验证过程。 根据所有蓝点估计插值模型后,隐藏红点值,而遗留点用于预测隐藏点处的值。   然后,将预测值与测量值进行比较。 对所有 10 个点重复此过程。

交叉验证过程
隐藏红点,根据遗留点预测值。 对所有点重复此过程。

交叉验证方法在评估插值模型时非常有效,因为使用该方法可以对新的未测量位置处的值执行预测模拟,但这些位置处的值并非不可测量,只是隐藏了,因此可以根据其已知值验证预测值。 如果插值模型能够准确地预测隐藏点处的值,那么该模型也应能够准确地预测新的未测量位置处的值。 但是,如果交叉验证误差非常大,那么在预测新位置处的值时,您也应该预料到结果会存在很大的误差。

在构建插值模型时,系统自动执行交叉验证,所得结果显示在地统计向导的最后一页。 也可以使用交叉验证工具在现有的地统计图层上计算交叉验证。 如果地统计图层位于地图中,那么您可以通过右键单击该图层并选择交叉验证,或通过单击地统计图层数据功能区菜单中的交叉验证按钮,查看交叉验证统计数据。

但是,交叉验证的缺点是最初使用所有输入点来估计插值模型参数,然后依次隐藏每个点。 由于所有点均有助于估计插值参数,因此这些点在此过程中并没有完全隐藏。 单个点一般对插值参数的估计值影响不大;然而,对于小型数据集和包含异常值的数据集,即使是单个点也会显著改变插值参数的估计值。 要完全隐藏点的值并避免重复使用数据,您可以使用验证来实现。

验证

验证类似于交叉验证,只不过是前者首先移除输入点的整个子集(称为测试数据集), 然后使用遗留点(称为训练数据集)来估计插值模型参数。 之后,插值模型对测试数据集的所有位置进行预测,并针对每个测试点计算验证误差。 由于测试数据集并未以任何方式用于估计插值参数或进行预测,因此验证是一种估计插值模型对具有未知值的新位置作出预测的准确度和可靠性的最严格方法。 但是,验证有一个很大的缺点,那就是您无法使用全部数据来构建插值模型,因此,如果您使用了全部数据,那么参数估计可能就不那么准确了。 由于需要减少数据集的大小,除非数据是过采样数据,否则通常首选交叉验证而不是验证。

您可以使用子集要素工具创建测试数据集和训练数据集。 在训练数据集上构建插值模型(地统计图层)后,您可以使用 GA 图层至点工具执行验证。 提供通过训练数据集创建的地统计图层,对测试数据集进行预测,并对用于插值的字段进行验证。 验证误差和其他验证统计数据保存在输出要素类中。

本主题的其余部分将仅探讨交叉验证,不过其中涉及的所有概念均与验证中的类似。

交叉验证统计数据

执行交叉验证时,针对各个点计算各类统计数据。 这些统计数据可以在“交叉验证”对话框的选项卡上查看,也可以使用交叉验证工具保存在要素类中。 针对各个点创建以下字段:

  • 测量 - 隐藏点的测量值。
  • 预测 - 根据交叉验证方法得到的隐藏点位置处的预测值。
  • 误差 - 预测值与测量值之间的差值(即预测值减去测量值所得的值)。 正误差表示预测值大于测量值,负误差表示预测值小于测量值。
  • 标准误差 - 预测值的标准误差。 如果误差呈正态分布,那么大约三分之二的测量值相对于预测值的偏差不超过一个标准误差,而大约 95% 的测量值相对于预测值的偏差不超过两个标准误差。
  • 标准化误差 - 除以标准误差后得到的误差。 要使用分位数或概率输出类型,标准化误差值应遵循标准正态分布(即平均值等于 0,标准差等于 1)。

此外,对于经验贝叶斯克里金系列方法中的模型,可以使用以下交叉验证统计数据:

  • 连续分级概率评分 - 用来衡量预测值的准确度和精密度的正数,值越小表示准确度和精密度越高。 值本身难以解释自身,但误差越接近于零且标准误差越小,连续分级概率评分就越低。 从根本上讲,此统计数据用来衡量测量值与预测分布之间的距离(并非典型的地理距离),由此解释预测值和标准误差的准确度。 窄预测分布(误差接近于零、标准误差小)以测量值为中心,其连续分级概率评分接近于零。 该值以平方数据单位表示,因此不应在具有不同单位或值范围的数据集之间进行比较。
  • 验证分位数 - 测量值相对于预测分布的分位数。 如果模型配置正确,那么其验证分位数均匀分布在 0 与 1 之间,并且不显示任何模式。 如果模型配置错误,那么其验证分位数通常聚集在中间值(大多数值接近于 0.5)或极值(大多数值接近于 0 或 1)位置。
  • 位于 90% 区间内 - 一个用于衡量测量值是否位于 90% 预测区间(类似于置信区间)内的指标(1 或 0)。 如果模型配置正确,那么大约 90% 的点落在该区间内且具有值 1。
  • 位于 95% 区间内 - 一个用于衡量测量值是否位于 95% 预测区间内的指标(1 或 0)。 如果模型配置正确,那么大约 95% 的点落在该区间内且具有值 1。

注:

不支持预测标准误差输出类型的插值方法只能用于计算测量值、预测值和误差值。

交叉验证汇总统计数据

每个隐藏点所对应的单独交叉验证统计数据可提供有关模型性能的详细信息,但对于大量输入点而言,需要汇总相关信息才能快速解释其对插值结果的意义。 交叉验证汇总统计数据可以在“交叉验证”对话框的汇总选项卡上查看,并且可以通过交叉验证工具打印为消息。 可得到以下汇总统计数据:

注:

在所有公式中,n 表示点数。si 表示隐藏点的位置。z(si) 表示隐藏点位置处的测量值。z-hat(si) 表示预测值。σ-hat 表示预测值的标准误差。

  • 平均误差 - 交叉验证误差的平均值。 该值应尽可能接近于 0。 平均误差用来衡量模型偏差,其中正平均误差表示对测量值的预测值过高,而负平均误差表示对测量值的预测值过低。 此统计数据以数据值的单位表示。
    • 平均误差
  • 均方根误差 - 均方根预测误差的平方根。 该值应尽可能小。 此统计数据用来衡量预测准确度,该值近似于预测值相对于测量值的平均偏差。 该值以数据值的单位表示。 例如,对于以摄氏度为单位的温度插值,均方根误差值为 1.5 表示:平均而言,预测值相对于测量值的偏差约为 1.5 度。
    • 均方根误差
  • 平均标准化误差 - 标准化误差的平均值(即误差除以标准误差所得的值)。 该值应尽可能接近于 0。 此统计数据用来衡量在标准化范围内的模型偏差,以便在具有不同值和单位的数据集之间进行比较。
    • 平均标准化误差
  • 平均标准误差 - 标准误差的二次平均值(均方根)。 此统计数据用来衡量模型的精密度,即生成紧密以预测值为中心的窄预测分布的趋势。 该值应尽可能小,但也应近似等于均方根误差。
    • 平均标准误差
    • 由于方差可以相加,而标准误差不可以相加,因此对交叉验证方差(标准误差的平方)求平均值。
  • 均方根标准化误差 - 标准化误差的均方根。 此统计数据通过比较交叉验证误差与估计标准误差之间的变异性来衡量标准误差的准确度。 该值应尽可能接近于 1。 值小于 1 表示估计标准误差过大,值大于 1 表示估计标准误差过小。 该值可以表示为反比;例如,值为 3 表示:平均而言,标准误差是其理论值的三分之一。 类似地,值为 0.5,表示标准误差是其理论值的两倍。
    • 均方根标准化误差

此外,对于经验贝叶斯克里金系列方法中的模型,也可以使用以下交叉验证汇总统计数据:

  • 平均 CRPS - 连续分级概率评分 (CRPS) 值的平均值。 该值应尽可能小。 对于具有低平均 CRPS 的模型,必须进行准确且精密的预测值和标准误差估计。
  • 位于 90% 区间内 - 落在 90% 预测区间内的测量值所占的百分比。 该值应接近于 90。 此统计数据用来衡量标准误差是否与预测值一致。 值高于 90 表示相对于预测值的标准误差过大; 值低于 90 表示相对于预测值的标准误差过小。
  • 位于 95% 区间内 - 落在 95% 预测区间内的测量值所占的百分比。 该值应接近于 95。 此统计数据用来衡量标准误差是否与预测值一致。

注:

不支持预测标准误差输出类型的插值方法只能用于计算平均误差和均方根误差统计数据。

插值模型比较

交叉验证可用于评估单个地统计模型的质量,但更常见的应用是比较两个或多个候选模型,以确定在分析中使用哪一个。 如果候选模型的数量较少,那么可以使用多个交叉验证对话框来浏览这些模型。 通过并排对齐对话框,您可以同时查看所有结果并深入了解每个模型的详细信息。

但是,如果存在大量候选模型,或在自动创建模型时,比较地统计图层工具可用来使用可自定义的条件自动比较模型以及对模型进行分级。 您可以根据单个条件(例如最低均方根误差或最接近于零的平均误差)、多个条件的加权平均等级或多个条件的等级排序(其中根据各个条件建立的关联被等级中的后续条件打破)对模型进行分级。 排除条件还可用于从比较中排除不符合最低质量标准的插值结果。 探索性插值工具也可用来执行这些交叉验证比较,不过该工具会自动从数据集和字段生成地统计图层。 此工具可用于快速确定最适合您的数据的插值方法,而不必单独执行各个插值方法。

交叉验证图表

交叉验证弹出对话框中提供了各种图表,可供以交互方式可视化和浏览交叉验证统计数据。 该对话框的图表部分包含五个主选项卡,这些主选项卡分别显示不同的图表。

预测选项卡以散点图显示预测值与测量值,其中蓝色与回归线数据拟合。 由于预测值应等于测量值,因此提供了一条参考线以查看回归线与该理想值的接近程度。 但实际上,回归线的坡度通常比参考线的坡度要陡峭,因为插值模型(尤其是使用克里金法得到的插值模型)倾向于平滑处理数据值,对高值的预测值过低,而对低值的预测值过高。

注:

图下方的回归函数值是使用稳健回归过程计算得到的。 此过程首先将标准线性方程的线与散点图拟合。 接下来,移除回归线上方或下方超过两个标准差的所有点,并计算新的回归方程。 此过程可确保少量异常值不会使坡度和截距的估计值产生偏差。 所有点都显示在散点图中,即使这些点不用于估计回归函数也是如此。

预测与测量

误差标准化误差选项卡与“预测”选项卡类似,只是前面两者用于绘制交叉验证误差和标准化误差与测量值间的比较。 在这些图中,回归线应该是平坦的,并且点应该不显示任何模式。 但实际上,由于平滑,坡度通常为负。

正态 QQ 图选项卡用于显示标准化误差与标准正态分布等值分位数的散点图。 如果交叉验证误差呈正态分布且标准误差估计准确,那么图中的点应该都落在参考线附近。 最重要的是,在使用分位数或概率输出类型时查看此图,因为它们需要正态分布误差。

正态 QQ 图

分布选项卡用于显示交叉验证统计数据的分布情况(使用核密度分析进行估计)。 使用字段下拉菜单可以更改显示的统计数据。 有一个特别有用的选项(如下图所示),那就是将测量值和预测值的分布叠加在同一张图表上,以这种方式查看它们的对齐程度。 这两个分布应看起来尽可能相似;但是,由于平滑,预测的分布通常比测量的分布更高且更窄。

测量值和预测值分布

上下文中的交叉验证统计数据解释

关于交叉验证和其他模型验证程序的一个常见误解是,它们旨在确定模型是否适用于数据。 事实上,对于从现实世界收集的数据而言,模型永远不可能完全正确,不过即使不那么精准,也能为决策提供可操作信息。 统计学家 George Box (1978) 的格言“所有的模式都是错误的,但是有一些是有用的”很好地概括了这一概念。 将交叉验证统计数据视为量化模型可用性的手段,而不是确定模型是否正确的清单。 借助许多可用的统计数据(单个值、汇总统计数据和图表),可以密切关注相关情况,发现其中的问题,并求得相对于理想值和模式的偏差。 模型永远不可能是完美的,因为模型永远无法完全表示数据。

在查看交叉验证结果时,请务必记住分析的目标和期望很重要。 例如,假设您以摄氏度为单位对温度进行插值,以期在热浪期间提出公共健康卫生建议。 在这种场景中,您应该如何解释平均误差值 0.1? 从字面上理解,这表示该模型具有正偏差,且往往对温度值的预测值过高。 然而,平均偏差仅为 0.1 度,这表示可能与公共卫生政策的相关性不是很大。 另一方面,均方根误差值为 10 度表示:平均而言,预测值与实际温度相差 10 度。 该模型的准确度可能太差,因此该模型的可用性不大,因为相差 10 度可能会引发您给出截然不同的公共卫生建议。

另一个需要考虑的重要因素是您是否打算为预测值创建置信区间或误差幅度。 例如,预测温度值为 ±28 度。 如果您不打算创建误差幅度,那么与标准误差相关的统计数据并不是很重要,因为它们的主要目的是确定误差幅度的准确度。 虽然在某些情况下,标准误差的准确度问题可能会导致预测值出现问题,但对于插值模型而言,预测准确而估计误差幅度不准确的情况屡见不鲜。

插值模型的极值(也就是数据集的最大值和最小值)最难建模。 插值模型使用预测位置邻域内测量值的加权平均值进行预测。 通过对数据值求平均值,预测值靠近相邻点的平均值,这种现象称为平滑。 在不同程度上,平滑几乎存在于所有插值模型中,可以在各种交叉验证图表的坡度中看到。 您应该尽量减少平滑,但实际上,您应该对最大和最小数据值邻域内的预测值持极大的怀疑态度。

最后,您对交叉验证结果的期望取决于数据的质量和数量。 如果点数很少或各点之间的距离很大,您希望交叉验证统计数据能够反映点中提供的有限信息。 即使模型的配置正确,如果数据集中没有足够的信息可供做出准确的预测,那么交叉验证误差仍然会很大。 类似地,在拥有大量信息丰富且具代表性的数据的情况下,即使模型的参数不准确且配置不当,仍然可以生成准确可靠的预测。

相关主题