我正在尝试在相当大的区域(约 100 万公里 ^ 2)的 geoR 中进行克里金法。这是为了我的论文,所以很遗憾我不能分享数据。我已经检查了坐标和实际数据中的重复项,看看这是否是求解出现错误的原因。我尝试了不同的方式来写趋势,例如长手或“第二”。我看到过类似的错误,但它们都是回归建模示例。我的“test.geo”数据与坐标和数据一起排列,我的变异函数有效。所以我知道 .geo 数据的初始部分正在工作,我模型的克里金组件只是不想工作。
我的代码是:
my.bdr <- map.shp2@polygons[[1]]@Polygons[[1]]@coords
x <- my.bdr[,1]
y <- my.bdr[,2]
krige.grid <- expand.grid(seq(min(x), max(x), l=1000),
seq(min(y), max(y), l=1000))
test.ply <- as.matrix(cbind(x, y))
test <- krige.conv(test.geo,
krige = krige.control(
type.krige = "OK",
trend.d = trend.spatial(~ 1 + test.geo$coords[,1] + test.geo$coords[,2]
+ I(test.geo$coords[,1]* test.geo$coords[,1])
+ I(test.geo$coords[,1]*test.geo$coords[,2])
+ I(test.geo$coords[,2]*test.geo$coords[,2])),
trend.l = trend.spatial(~ 1 + krige.grid[,1] + krige.grid[,2]
+ I(krige.grid[,1]* krige.grid[,1])
+ I(krige.grid[,1]*krige.grid[,2])
+ I(krige.grid[,2]*krige.grid[,2])),
obj.model = test.svm),
locations = krige.grid, borders=test.ply)
我不断收到此错误:
Error in solve.default(ttivtt, crossprod(ivtt, as.vector(data))) :
system is computationally singular: reciprocal condition number = 4.81502e-36
我将不胜感激为解决此问题而提供的任何建议或帮助!谢谢!