## 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 <- 100
# 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 <- 2
# tau.sq <- 0.1
# 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))
#
# 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)
#
# ##too restrictive of prior on beta
# priors.1 <- list("beta.Norm"=list(rep(0,p), diag(1,p)),
# "phi.Unif"=c(3/1, 3/0.1), "sigma.sq.IG"=c(2, 2),
# "tau.sq.IG"=c(2, 0.1))
#
# ##more reasonable prior for beta
# priors.2 <- list("beta.Norm"=list(rep(0,p), diag(1000,p)),
# "phi.Unif"=c(3/1, 3/0.1), "sigma.sq.IG"=c(2, 2),
# "tau.sq.IG"=c(2, 0.1))
#
# cov.model <- "exponential"
#
# n.report <- 500
# verbose <- TRUE
#
# m.1 <- spLM(y~X-1, coords=coords, starting=starting,
# tuning=tuning, priors=priors.1, cov.model=cov.model,
# n.samples=n.samples, verbose=verbose, n.report=n.report)
#
# m.2 <- spLM(y~X-1, coords=coords, starting=starting,
# tuning=tuning, priors=priors.2, cov.model=cov.model,
# n.samples=n.samples, verbose=verbose, n.report=n.report)
#
# ##non-spatial model
# m.3 <- spLM(y~X-1, n.samples=n.samples, verbose=verbose, n.report=n.report)
#
# burn.in <- 0.5*n.samples
#
# ##recover beta and spatial random effects
# m.1 <- spRecover(m.1, start=burn.in, verbose=FALSE)
# m.2 <- spRecover(m.2, start=burn.in, verbose=FALSE)
#
# ##lower is better for DIC, GPD, and GRS
# print(spDiag(m.1))
# print(spDiag(m.2))
# print(spDiag(m.3))
# ## End(Not run)
Run the code above in your browser using DataLab