我对变量 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 用于该建模领域并且已针对这些目的进行了很好的测试。