【发布时间】:2019-03-22 13:50:14
【问题描述】:
早安,
在尝试从 gstat 包中完成的反距离克里格计算方差时,我遇到了一些困难。我还想对一组独立的变量测试集进行交叉验证,但我不确定如何在 R 中使用空间数据执行此操作。使用meuse 数据集,这是我尝试计算方差的方法:
data(meuse); coordinates(meuse) <- ~x+y
#randomly sample to get training and test data for later cross-validation
set.seed = (123)
sub1 <- nrow(meuse@data); len1 <- ceiling(sub1*2/3)
m.train <- meuse
m.train@data <- meuse@data[1:len1,]
m.train@coords <- meuse@coords[1:len1,]
m.test <- meuse
m.test@data <- meuse@data[(len1+1):sub1,]
m.test@coords <- meuse@coords[(len1+1):sub1,]
## load grids:
data(meuse.grid); coordinates(meuse.grid) <- ~x+y
gridded(meuse.grid) <- TRUE; fullgrid(meuse.grid) <- TRUE
zinc.id <- krige(zinc~1, m.train, meuse.grid) ## inverse distance weighting
# --- My attempt at calculation of variance
rmse.id <- sqrt(mean((meuse.test@data$zinc - zinc.id@data$var1.pred)^2))
Warning message:
In meuse.test@data$z - zinc.id@data$var1.pred :
longer object length is not a multiple of shorter object length
我知道为什么会出现错误,但我不知道如何继续。我可以在R 之外进行交叉验证,但有点麻烦,但我真的很想把我的所有工作都放在R 之内。任何建议都将受到欢迎。
库尔特
【问题讨论】:
标签: r geospatial spatial