1

geoRパッケージのca20-Datasetの相互検証を行いたい。たとえば、meuse-datasetの場合、これは正常に機能しますが、このデータセットの場合、SpatialPointsDataFrameのディメンションで奇妙な問題が発生します。たぶん、これを自分で試して、autoKrige.cv関数が機能しない理由を説明することができます(いくつかのnfold-valuesを試しましたが、これはエラーメッセージのlocations-valueのみを変更します...):

library(geoR)
library(gstat)
library(automap)
data(ca20)
east=ca20$coords[,1]
north=ca20$coords[,2]
concentration=ca20$data
frame=data.frame(east,north)
data=data.frame(concentration)
points<-SpatialPoints(data.frame(east,north),proj4string=CRS(as.character(NA)))
pointsframe<-SpatialPointsDataFrame(points,data, coords.nrs = numeric(0),proj4string = CRS(as.character(NA)), match.ID = TRUE)
krig=autoKrige(pointsframe$concentration~1,pointsframe)
plot(krig)
cv=autoKrige.cv(pointsframe$concentration~1,pointsframe)

誰かが問題を再現できることを願っています。私のRバージョンは2.15で、すべてのパッケージが最新です(少なくとも1か月ほど前ではありません...)。

ご協力いただきありがとうございます!!

4

1 に答える 1

1

まず、SpatialPointsDataFrameを構築する方法をより簡単に行うことができます。

library(geoR)
library(gstat)
library(automap)

...そしてSPDFを構築します:

pointsframe = data.frame(ca20$coords)
pointsframe$concentration = ca20$data
coordinates(pointsframe) = c("east", "north")

formulaあなたが抱えている問題は、引数の使い方にあります。空間オブジェクトpointsframeを数式に追加します。つまり、ベクトルを数式に直接追加します。次のように、数式で列名を使用する必要があります。

cv=autoKrige.cv(concentration~1,pointsframe)

そしてそれは動作します:

> summary(cv)
            [,1]      
mean_error  -0.01134  
me_mean     -0.0002237
MAE         6.02      
MSE         60.87     
MSNE        1.076     
cor_obspred 0.7081    
cor_predres 0.01343   
RMSE        7.802     
RMSE_sd     0.7041    
URMSE       7.802     
iqr         9.519 
于 2013-01-20T19:23:43.227 に答える