£ÒÈ÷˺Ͽ - µ»ö°ìÍ÷
- Åê¹Æ¼Ô¡§ ¤ß¤å
- ¥«¥Æ¥´¥ê¡§ ¤Ê¤·
- Í¥ÀèÅÙ¡§ ÉáÄÌ
- ¾õÂÖ¡§ ´°Î»
- Æü»þ¡§ 2009ǯ06·î30Æü 16»þ35ʬ14ÉÃ
- ¶õ´ÖÅý·× ¤
- ¡Úgstat¡Û¥Ð¥ê¥ª¥°¥é¥à¤«¤éÆÃÄê¤Î°ÌÃ֤ˤª¤±¤ëÃͤò¿äÄꤹ¤ë
- ¡ÖThe R Book¡×¤è¤ê°úÍÑ
- Ä̾﷿¥¯¥ê¥®¥ó¥°¥·¥¹¥Æ¥à¤Ï
- ¤È¤¤¤¦ÉÔÊÐÀ¤ò³ÎÊݤ·¤¿¿äÄêʬ»¶¤ÎºÇ¾®²½¤ò²ò¤¯¤³¤È¤Ë¤è¤Ã¤ÆÆÀ¤é¤ì¤ë°Ê²¼¤Î¥·¥¹¥Æ¥à¤ò²ò¤¯¤À¤±¡¢¤é¤·¤¤¡¥
- ¤³¤ì¤Çµá¤Þ¤Ã¤¿£÷¤ò¥¦¥¨¥¤¥È¤À¤È»×¤Ã¤Æ¡¢´Ñ¬¤µ¤ì¤¿¥Ç¡¼¥¿¤ò²Ã½ÅÊ¿¶Ñ¤¹¤ë¡¥¤È¡¢x0¤Î°ÌÃ֤οäÄêÃͤ¬µá¤Þ¤ë¡¥
library(gstat)
library(lattice)
# - ¥á¥¦¥¹Àî
data(meuse)
data(meuse.grid)
x <- variogram(object=log(zinc)~1, locations=~x+y, data=meuse, cutoff=3000)
plot(x)
model1 <- vgm(psill=0.6, model="Sph", range=600, nugget=0)
plot(x, model=model1)
model2 <- fit.variogram(object=x, model=vgm(psill=0.6, model="Sph", range=600, nugget=0))
plot(x, model=model2)
g <- gstat(id="logzn", formula=log(zinc)~1, locations=~x+y, data=meuse, model=model2)
xo <- predict.gstat(g, meuse.grid[,1:2])
# - ¿äÄê
krig_mat <- diag(0, nrow(meuse))
krig_mat[lower.tri(krig_mat)] <- variogramLine(model2, dist_vector=dist(meuse[,c("x","y")]))[,2]
krig_mat <- t(krig_mat)
krig_mat[lower.tri(krig_mat)] <- variogramLine(model2, dist_vector=dist(meuse[,c("x","y")]))[,2]
krig_mat <- rbind(krig_mat, 1)
krig_mat <- cbind(krig_mat, 1)
krig_mat[nrow(meuse)+1,nrow(meuse)+1] <- 0
solve_krig_mat <- solve(krig_mat)
y <-
apply(meuse.grid[,c("x","y")], 1,
function(x, meuse, solve_krig_mat){
x <- c(x[1], x[2])
n <- nrow(meuse)
ret <- variogramLine(model2, dist_vector=sqrt((meuse[,"x"] - x[1])^2 + (meuse[,"y"] - x[2])^2))
krig_vec <- c(ret[,2], 1)
ret <- solve_krig_mat %*% krig_vec
sum(log(meuse$zinc) * ret[1:n])
},
meuse=meuse, solve_krig_mat=solve_krig_mat
)
mean(xo[,3] - y)
plot(xo[,3], y)
- ¤Þ¤¢gstat¤Ê¤é°Ê²¼¤è¤¦¤Ë¤¹¤ì¤Ð¤¤¤¤¤À¤±¤Ê¤ó¤À¤¬¡¥
g <- gstat(id="logzn", formula=log(zinc)~1, locations=~x+y, data=meuse, model=model2)
xo <- predict.gstat(g, meuse.grid[,1:2])
£ÒÈ÷˺Ͽ /¾õÂÖ¶õ´Ö¥â¥Ç¥ê¥ó¥°/donlp2/¤½¤Î¾¤Î¥á¥â