Learn R Programming

spBayes (version 0.4-8)

mkSpCov: Function for calculating univariate and multivariate covariance matrices

Description

The function mkSpCov calculates a spatial covariance matrix given spatial locations and spatial covariance parameters.

Usage

mkSpCov(coords, K, Psi, theta, cov.model)

Value

C

the \(nq\times nq\) spatial covariance matrix.

Arguments

coords

an \(n \times 2\) matrix of the observation coordinates in \(R^2\) (e.g., easting and northing).

K

the \(q \times q\) spatial cross-covariance matrix. For a univariate model this corresponds to the partial sill, \(\sigma^2\).

Psi

the \(q \times q\) non-spatial covariance matrix. For a univariate model this corresponds to the nugget, \(\tau^2\).

theta

a vector of \(q\) spatial decay parameters. If cov.model is "matern" then theta is a vector of length \(2\times q\) with the spatial decay parameters in the first \(q\) elements and the spatial smoothness parameters in the last \(q\) elements.

cov.model

a quoted keyword that specifies the covariance function used to model the spatial dependence structure among the observations. Supported covariance model key words are: "exponential", "matern", "spherical", and "gaussian". See below for details.

Author

Andrew O. Finley finleya@msu.edu,
Sudipto Banerjee baner009@umn.edu

Details

Covariance functions return the covariance \(C(h)\) between a pair locations separated by distance \(h\). The covariance function can be written as a product of a variance parameter \(\sigma^2\) and a positive definite correlation function \(\rho(h)\): \(C(h) = \sigma^2 \rho(h)\), see, e.g., Banerjee et al. (2004) p. 27 for more details. The expressions of the correlations functions available in spBayes are given below. More will be added upon request.

For all correlations functions, \(\phi\) is the spatial decay parameter. Some of the correlation functions will have an extra parameter \(\nu\), the smoothness parameter. \(K_\nu(x)\) denotes the modified Bessel function of the third kind of order \(\nu\). See documentation of the function besselK for further details. The following functions are valid for \(\phi>0\) and \(\nu>0\), unless stated otherwise.

gaussian
$$\rho(h) = \exp[-(\phi h)^2]$$

exponential
$$\rho(h) = \exp(-\phi h)$$

matern
$$\rho(h) = \frac{1}{2^{\nu-1}\Gamma(\nu)}(\phi h)^\nu K_{\nu}(\phi h)$$

spherical
$$\rho(h) = \left\{ \begin{array}{ll} 1 - 1.5\phi h + 0.5(\phi h)^3 \mbox{ , if $h$ < $\frac{1}{\phi}$} \cr 0 \mbox{ , otherwise} \end{array} \right.$$

Examples

Run this code
if (FALSE) {
##A bivariate spatial covariance matrix

n <- 2 ##number of locations
q <- 2 ##number of responses at each location
nltr <- q*(q+1)/2 ##number of triangular elements in the cross-covariance matrix

coords <- cbind(runif(n,0,1), runif(n,0,1))

##spatial decay parameters
theta <- rep(6,q)

A <- matrix(0,q,q)
A[lower.tri(A,TRUE)] <- rnorm(nltr, 5, 1)
K <- A%*%t(A)

Psi <- diag(1,q)

C <- mkSpCov(coords, K, Psi, theta, cov.model="exponential")
}

Run the code above in your browser using DataLab