【问题标题】:why does the kriging give the same values as the observed?为什么克里金法给出的值与观察到的值相同?
【发布时间】:2018-01-27 20:10:39
【问题描述】:

我使用来自spBayes 包的spPredict 进行了克里金,用于贝叶斯克里金法和来自gstat 包的krige 用于非贝叶斯克里金法。我没有使用任何协变量(只有常数均值),并使用 1283 点进行克里金法。在 1283 个点中,1012 个是新位置,271 个是我有数据的位置。

完成克里金法后,为了检查预测性能,我查看了 271 个位置的克里金法值。然后我意识到它们与 271 个位置的数据完全相同。我已经使用相同的代码(但使用协变​​量)完成了克里金法,并且根本没有遇到过这种问题。我不知道出了什么问题...这是spPredict 和krige 的简单代码。我还附上了校准图。如果您有任何建议,我将不胜感激。

pred.covar=cbind(rep(1,1283))
spPredict(fitted, pred.coords=grid.fin_km, pred.covars=pred.covar,
                   start = burn.in, thin = 10, verbose=FALSE)
krige(formula=n_temp~1, locations=~x1+x2, data=merged.f, newdata=grid.fin_km,
         model=var.fit.w1)

【问题讨论】:

    标签: r kriging gstat


    【解决方案1】:

    这是克里金的一个众所周知的性质;它来自这样一个事实,即克里金法的基础模型假设一个值与其自身完全相关。预测一个已知值总是会导致该值,预测误差为零。这也是同一观测位置重复观测产生误差的原因。

    如果您不希望这种情况发生,您想要的是平滑或过滤;您假设一个过程 S(x) = Z(x) + e(x),其中观测值是 Z,并且您想要预测 S;这不是克里金所做的。在包 gstat 中,您可以在指定 Err 变异函数组件而不是 Nug nugget 效果时进行过滤。

    【讨论】:

      猜你喜欢
      • 2017-05-06
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 2019-03-07
      • 2020-05-13
      • 2017-10-17
      相关资源
      最近更新 更多