1

我对变量 T(温度)进行空间建模。我使用文献中常用的方法——执行回归(使用高度等变量),然后使用 IDW 对残差进行空间插值。R package gstat 似乎有这个选项:

interpolated <- idw(T ~ altitude, stations, grid, idp=6)
spplot(interpolated["var1.pred"])

但是在idw()他们的文档中写道:

函数 idw 执行 [...] 。不要在公式中与预测变量一起使用。

实际上,结果看起来就像只执行回归,没有残差的空间插值。我知道我可以手动完成:

m1 <- lm(T ~ altitude, data = data.frame(stations))
Tres <- resid(m1)
res.int <- idw(Tres ~ 1, stations, grid, idp=6)
Tpred <- predict.lm(m1, grid)
spplot(SpatialGridDataFrame(grid, data.frame(T = Tpred + data.frame(res.int)['var1.pred'])))

但这有很多缺点——模型不在一个对象中,所以你不能直接做总结,检查偏差,残差,最重要的是,做交叉验证......一切都必须手动完成。所以,

有没有办法在 R 中的一个模型中进行回归和 IDW?

请注意,我不想使用不同的空间插值方法,因为 IDW 用于该建模领域并且已针对这些目的进行了很好的测试。

4

1 回答 1

2

所以你想要的是先做回归,然后对残差执行 IDW。从理论和软件的角度来看,这不能一次性完成:

  • 理论上,克里金法提供了一种使用线性模型一次性处理模型和残差的统一方法,并创建预测,即具有空间相关残差的线性回归。在混合模型的情况下,这个理论框架不存在。由于这种临时性质,我不建议这样做。
  • 实际上,gstat 根本不支持一次性执行此操作。

我建议简单地使用克里金法,这是一种非常成熟和公开的方法。如果这在您的专业领域中没有被大量使用,那么现在是介绍它的好时机。您还可以查看包中的Tps功能fields

几年前,我为荷兰气象局写了一份您可能感兴趣的技术报告,它涉及蒸发的插值。

于 2013-07-31T07:53:28.167 回答