2014-11-24 3 views
0

У меня есть небольшой набор данных о местах и ​​концентрации бензола в мг/кгКовариационные Параметры для Krig в Geor ksline

WELL.ID X   Y  BENZENE 
1 MW-02 268.8155 282.83 0.00150 
2 IW-06 271.6961 377.01 0.00050 
3 IW-07 251.0236 300.41 0.01040 
4 IW-08 278.9238 300.37 0.03190 
5 MW-10 281.4008 414.15 2.04000 
6 MW-12 391.3973 449.40 0.01350 
7 MW-13 309.5307 335.55 0.01940 
8 MW-15 372.8967 370.04 0.01620 
9 MW-17 250.0000 428.04 0.01900 
10 MW-24 424.4025 295.69 0.00780 
11 MW-28 419.3205 250.00 0.00100 
12 MW-29 352.9197 277.27 0.00031 
13 MW-31 309.3174 370.92 0.17900 

и я пытаюсь Krig значения в сетке (собственность эти скважины проживают на) как так

setwd("C:/.....") 
getwd() 

require(geoR) 
require(ggplot2) 


a <- read.table("krigbenz_loc.csv", sep = ",", header = TRUE) 
b <- data.matrix(a) 
c <- as.geodata(b) 

x.range <- as.integer(range(a[,2])) 
y.range <- as.integer(range(a[,3])) 
x = seq(from=x.range[1], to=x.range[2], by=1) 
y = seq(from=y.range[1], to=y.range[2], by=1) 
length(x) 
length(y) 
xv <- rep(x,length(y)) 
yv <- rep(y, each=length(x)) 
in_mat <- as.matrix(cbind(xv, yv)) 

это когда я начинаю Krig с

q <- ksline(c, cov.model="exp", cov.pars=c(10,3.33), nugget=0, locations=in_mat) 

однако, если смотреть на выход из этого с

cbind(q$predict[1:10], q$krige.var[1:10]) 

я вижу

  [,1]  [,2] 
[1,] 343.8958 10.91698 
[2,] 343.8958 10.91698 
[3,] 343.8958 10.91698 
[4,] 343.8958 10.91698 
[5,] 343.8958 10.91698 
[6,] 343.8958 10.91698 
[7,] 343.8958 10.91698 
[8,] 343.8958 10.91698 
[9,] 343.8958 10.91698 
[10,] 343.8958 10.91698 

эти значения не изменяются в течение первых 5000 строк ... (вид косяка больше, потому что max.print = 5000 ... не знаю, как чтобы изменить это либо, но это касательная ..)

Я понял, что мой

cov.pars = c(10,3.33) 

быть диапазон и подоконник, являются пр это вопрос.

geoR.pdf, стр. 19 описывает, что ожидается от cov.pars, однако я не уверен, как я должен решить, какими должны быть эти параметры ковариации.

Есть ли способ найти соответствующие значения из моих существующих данных или я могу установить их в общие значения, где мой вывод будет похож на кригинг, выполненный в пакете пространственного анализа ArcGIS ESRI?

ZR

:::: EDIT :::

мой объект геоданных был неправильно преобразовал ... здесь является правильный способ сделать это

c <- as.geodata(b, coords.col = 2:3, data.col = 4,) 

также ... для вариограммы,

v1 <- variog(c) 
length(v1$n) 
v1.summary <- cbind(c(1:11), v1$v, v1$n) 
colnames(v1.summary) <- c("lag", "semi-variance", "# of pairs") 
v1.summary 
+0

Существует несколько способов оценки этих параметров. Вы посмотрели на функцию variofit? – blindjesse

+0

У меня нет ... вы могли бы привести пример? – c0ba1t

+1

Прочтите виньетку http://www.leg.ufpr.br/geoR/geoRdoc/vignette/geoRintro.pdf. В этом стоит вопрос о статистической методологии – mnel

ответ

2

Один из способов сделать это - использовать variofit (также в пакете geoR) для оценки параметров ковариации. Например, используя данные и начальные значения:

vario <- variog(c) # See other options here for binning, etc 
# Note that the order of the cov.pars is variance, then range, (see your question) 
fitted_model <- variofit(vario=vario, ini.cov.pars=c(10, 3.33), cov.model='exp') 
q <- ksline(c, cov.model=fitted_model$cov.model, cov.pars=fitted_model$cov.pars, 
      nugget=fitted_model$nugget, locations=in_mat) 

Это стоит вашего времени, чтобы посмотреть на вариограммой, кстати.

+0

Прекрасно заниженный вывод! – mnel

+0

Почему вы все еще используете значения 10 и 3.33 для установленного_model ini.cov.pars? – c0ba1t

+0

Пожалуйста, ознакомьтесь с справкой для variofit. Вам нужно предоставить некоторые разумные стартовые значения, и он оптимизируется оттуда. Я просто использовал то, что вы поставили. – blindjesse