2013-01-20 14 views
1

geoR 패키지의 ca20-Dataset에 대해 교차 유효성 검사를 수행하고 싶습니다. 예를 들어 meuse-dataset을 사용하면이 방법이 정상적으로 작동하지만 데이터 세트의 경우 SpatialPointsDataFrame의 크기와 관련하여 이상한 문제가 발생합니다. 아마 당신은 자신이를 시도하고 autoKrige.cv 기능이 작동하지 않는 이유 을 설명 할 수 (나는 여러 N 배-값을 시도했지만 이것은 단지 오류 메시지의 위치 값 ... 변경) :automap 패키지를 사용한 교차 유효성 검사 관련 문제

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 개월 이상은 아닙니다 ...).

도움 주셔서 감사합니다.

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

... 그리고 SPDF를 구축 :

+0

주'것을 gstat', 따라서'automap'은 비와 함께 작동하도록 설계되지 않았습니다 투영 된 데이터이므로이 경우인지 확인하십시오. 귀하의 데이터가 투영되지 않는 것 같습니다 ... –

답변

1

첫째, 당신이 당신의 SpatialPointsDataFrame을 구축하는 방식은 더 쉽게 수행 할 수 있습니다

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 
+0

빠른 도움에 대해 대단히 감사합니다! –