Learn R Programming

CARBayes (version 1.3)

gaussian.bymCAR: Fit the BYM conditional autoregressive (CAR) model to spatial Gaussian data

Description

The function fits a Gaussian random effects models to spatial data, where the random effects are modelled by BYM conditional autoregressive (CAR) model (Besag et. al. 1991). The model represents the mean function for the set of Gaussian responses by a combination of covariates and two sets of random effects. For the latter, the first set are independent, while the second are spatially correlated and come from the IAR model. A set of offsets can also be included on the linear predictor scale. Inference is based on Markov Chain Monte Carlo (MCMC) simulation, using a combination of Gibbs sampling and Metropolis steps.

Usage

gaussian.bymCAR(formula, beta = NULL, phi = NULL, theta = NULL, nu2 = NULL, 
tau2 = NULL, sigma2 = NULL, W, burnin = 0, n.sample = 1000, thin=1, blocksize.phi = 10, 
blocksize.theta = 10, prior.mean.beta = NULL, prior.var.beta = NULL, 
prior.max.nu2 = NULL, prior.max.tau2 = NULL, prior.max.sigma2 = NULL)

Arguments

formula
A formula for the covariate part of the model, using the same notation as for the lm() function. The offsets should also be included here using the offset() function.
beta
A vector of starting values for the regression parameters (including the intercept term). If this argument is not specified the function will randomly generate starting values.
phi
A vector of starting values for the correlated random effects. If this argument is not specified the function will randomly generate starting values.
theta
A vector of starting values for the independent random effects. If this argument is not specified the function will randomly generate starting values.
nu2
A starting value for the variance parameter of the Gaussian responses. If this argument is not specified the function will randomly generate a starting value.
tau2
A starting value for the variance parameter of the correlated random effects. If this argument is not specified the function will randomly generate a starting value.
sigma2
A starting value for the variance parameter of the independent random effects. If this argument is not specified the function will randomly generate a starting value.
W
A binary n by n neighbourhood matrix (where n is the number of spatial units). The jkth element equals one if areas (j, k) are spatially close (e.g. share a common border) and is zero otherwise.
burnin
The number of MCMC samples to discard as the burnin period. Defaults to 0.
n.sample
The number of MCMC samples to generate. Defaults to 1,000.
thin
The level of thinning to apply to the MCMC samples to reduce their temporal autocorrelation. Defaults to 1.
blocksize.phi
The size of the blocks in which to update the correlated random effects in the MCMC algorithm. Defaults to 10.
blocksize.theta
The size of the blocks in which to update the independent random effects in the MCMC algorithm. Defaults to 10.
prior.mean.beta
A vector of prior means for the regression parameters beta (Gaussian priors are assumed). Defaults to a vector of zeros.
prior.var.beta
A vector of prior variances for the regression parameters beta (Gaussian priors are assumed). Defaults to a vector with values 1000.
prior.max.nu2
The maximum allowable value for the Gaussian data variance nu2 (a Uniform(0,M) prior is assumed). Defaults to M=1000.
prior.max.tau2
The maximum allowable value for the correlated random effects variance tau2 (a Uniform(0,M) prior is assumed). Defaults to M=1000.
prior.max.sigma2
The maximum allowable value for the independent random effects variance sigma2 (a Uniform(0,M) prior is assumed). Defaults to M=1000.

Value

  • formulaThe formula for the covariate and offset part of the model.
  • samples.betaA matrix of MCMC samples for the regression parameters beta.
  • samples.phiA matrix of MCMC samples for the correlated random effects phi.
  • samples.thetaA matrix of MCMC samples for the independent random effects theta.
  • samples.nu2A matrix of MCMC samples for the data variance nu2.
  • samples.tau2A matrix of MCMC samples for the correlated random effects variance tau2.
  • samples.sigma2A matrix of MCMC samples for the independent random effects variance sigma2.
  • fitted.valuesA summary matrix of the posterior distributions of the fitted values for each area. The summaries include: Mean, Sd, Median, and credible interval.
  • random.effectsA summary matrix of the posterior distributions of the random effects for each area. The summaries include: Mean, Sd, Median, and credible interval.
  • residualsA summary matrix of the posterior distributions of the residuals for each area. The summaries include: Mean, Sd, Median, and credible interval.
  • DICThe Deviance Information Criterion.
  • p.dThe effective number of parameters in the model.
  • summary.resultsA summary table of the parameters.

Details

For further details about how to apply the function see the examples below and in the main CARBayes helpfile.

References

Besag, J., J. York, and A. Mollie (1991). Bayesian image restoration with two applications in spatial statistics. Annals of the Institute of Statistics and Mathematics 43, 1-59.

Examples

Run this code
##################################################
#### Run the model on simulated data on a lattice
##################################################

#### Set up a square lattice region
x.easting <- 1:10
x.northing <- 1:10
Grid <- expand.grid(x.easting, x.northing)
n <- nrow(Grid)

#### set up distance and neighbourhood (W, based on sharing a common border) matrices
distance <-array(0, c(n,n))
W <-array(0, c(n,n))
	for(i in 1:n)
	{
		for(j in 1:n)
		{
		temp <- (Grid[i,1] - Grid[j,1])^2 + (Grid[i,2] - Grid[j,2])^2
		distance[i,j] <- sqrt(temp)
			if(temp==1)  W[i,j] <- 1 
		}	
	}
	
	
#### Generate the covariates and response data
x1 <- rnorm(n)
x2 <- rnorm(n)
theta <- rnorm(n, sd=0.05)
phi <- mvrnorm(n=1, mu=rep(0,n), Sigma=0.4 * exp(-0.1 * distance))
fitted <- -0.2 +  0.1 * x1 + 0.1*x2 + theta + phi
Y <- rnorm(n=n, mean=fitted, sd=rep(1,n))



#### Run the BYM model
#### Let the function randomly generate starting values for the parameters
#### Use the default priors specified by the function (for details see the help files)
formula <- Y ~ x1 + x2
model <- gaussian.bymCAR(formula=formula, W=W, burnin=5000, n.sample=10000)
model <- gaussian.bymCAR(formula=formula, W=W, burnin=20, n.sample=50)

Run the code above in your browser using DataLab