如果删除了数据框列,autoKrige会给出不同的结果

时间:2014-10-01 04:56:01

标签: r kriging

我可能在这里做错了,但我发现如果通过删除不相关的列来简化数据框,则automap库中的autoKrige函数会产生不同的结果。我已经使用automap库中的meuse数据重现了这个问题。

library(automap)
data(meuse)
colnames(meuse)
 [1] "x"       "y"       "cadmium" "copper"  "lead"    "zinc"    "elev"   
 [8] "dist"    "om"      "ffreq"   "soil"    "lime"    "landuse" "dist.m" 

coordinates(meuse) =~ x+y
data(meuse.grid)
gridded(meuse.grid) =~ x+y
kriging_result_01 = autoKrige(zinc~1, meuse)
plot(kriging_result_01)

meuse <- NULL
data(meuse)
meuse <- meuse[, c(1,2,6)]

coordinates(meuse) =~ x+y
data(meuse.grid)
gridded(meuse.grid) =~ x+y
kriging_result_02 = autoKrige(zinc~1, meuse)
plot(kriging_result_02)

identical(kriging_result_01, kriging_result_02)
[1] FALSE

情节的细节也各不相同。

这是预期的行为吗?

谢谢, 比尔

1 个答案:

答案 0 :(得分:0)

问题不在于删除的列,而是应用拟合模型的网格。使用您的示例,您可以看到:

library(automap)
set.seed(42)

data(meuse)
coordinates(meuse) =~ x+y
data(meuse.grid)
gridded(meuse.grid) =~ x+y
kriging_result_01 = autoKrige(zinc~1, meuse)

meuse <- NULL
data(meuse)
meuse <- meuse[, c(1,2,6)]
coordinates(meuse) =~ x+y

kriging_result_02 = autoKrige(zinc~1, meuse)


kriging_result_01$krige_output@grid
                            x1           x2
cellcentre.offset 178635.12844 329744.86186
cellsize              32.93423     32.93423
cells.dim             84.00000    118.00000

kriging_result_02$krige_output@grid
                            x1           x2
cellcentre.offset 178614.42379 329741.35016
cellsize              32.93423     32.93423
cells.dim             85.00000    118.00000

正如你所看到的,网格略有不同,有4999和 分别为4996个网格点。

如果您使用

kriging_result_01 = autoKrige(zinc~1, meuse, meuse.grid)
kriging_result_02 = autoKrige(zinc~1, meuse, meuse.grid)

kriging_result_01$krige_output@grid
                       x      y
cellcentre.offset 178460 329620
cellsize              40     40
cells.dim             78    104

kriging_result_02$krige_output@grid
                       x      y
cellcentre.offset 178460 329620
cellsize              40     40
cells.dim             78    104

网格类似。