## Not run:
# rmvn <- function(n, mu=0, V = matrix(1)){
# p <- length(mu)
# if(any(is.na(match(dim(V),p))))
# stop("Dimension problem!")
# D <- chol(V)
# t(matrix(rnorm(n*p), ncol=p)%*%D + rep(mu,rep(n,p)))
# }
#
# set.seed(1)
#
# n <- 200
# coords <- cbind(runif(n,0,1), runif(n,0,1))
# X <- as.matrix(cbind(1, rnorm(n)))
#
# B <- as.matrix(c(1,5))
# p <- length(B)
# sigma.sq <- 10
# tau.sq <- 0.01
# phi <- 3/0.5
#
# D <- as.matrix(dist(coords))
# R <- exp(-phi*D)
# w <- rmvn(1, rep(0,n), sigma.sq*R)
# y <- rnorm(n, X%*%B + w, sqrt(tau.sq))
#
# ##partition the data for out of sample prediction
# mod <- 1:100
# y.mod <- y[mod]
# X.mod <- X[mod,]
# coords.mod <- coords[mod,]
#
# n.samples <- 1000
#
# starting <- list("phi"=3/0.5, "sigma.sq"=50, "tau.sq"=1)
# tuning <- list("phi"=0.1, "sigma.sq"=0.1, "tau.sq"=0.1)
# priors <- list("beta.Flat", "phi.Unif"=c(3/1, 3/0.1),
# "sigma.sq.IG"=c(2, 5), "tau.sq.IG"=c(2, 0.01))
# cov.model <- "exponential"
#
# m.1 <- spLM(y.mod~X.mod-1, coords=coords.mod, starting=starting, tuning=tuning,
# priors=priors, cov.model=cov.model, n.samples=n.samples)
#
# m.1.pred <- spPredict(m.1, pred.covars=X, pred.coords=coords,
# start=0.5*n.samples)
#
# y.hat <- apply(m.1.pred$p.predictive.samples, 1, mean)
#
# quant <- function(x){quantile(x, prob=c(0.025, 0.5, 0.975))}
#
# y.hat <- apply(m.1.pred$p.predictive.samples, 1, quant)
#
# plot(y, y.hat[2,], pch=19, cex=0.5, xlab="observed y", ylab="predicted y")
# arrows(y[-mod], y.hat[2,-mod], y[-mod], y.hat[1,-mod], angle=90, length=0.05)
# arrows(y[-mod], y.hat[2,-mod], y[-mod], y.hat[3,-mod], angle=90, length=0.05)
# ## End(Not run)
Run the code above in your browser using DataLab