geoR (version 1.8-1)

matern: Computer Values of the Matern Correlation Function

Description

This function computes values of the \(\mbox{Mat\'{e}rn}\) correlation function for given distances and parameters.

Usage

matern(u, phi, kappa)

Arguments

u

a vector, matrix or array with values of the distances between pairs of data locations.

phi

value of the range parameter \(\phi\).

kappa

value of the smoothness parameter \(\kappa\).

Value

A vector matrix or array, according to the argument u, with the values of the \(\mbox{Mat\'{e}rn}\) correlation function for the given distances.

Details

The \(\mbox{Mat\'{e}rn}\) model is defined as:

$$\rho(u;\phi,\kappa) =\{2^{\kappa-1} \Gamma(\kappa)\}^{-1} (u/\phi)^\kappa K_\kappa(u/\phi)$$

where \(\phi\) and \(\kappa\) are parameters and \(K_\kappa(\cdot)\) denotes the modified Bessel function of the third kind of order \(\kappa\). The family is valid for \(\phi>0\) and \(\kappa>0\).

See Also

cov.spatial for the correlation functions implemented in geoR, and besselK for computation of the Bessel functions.

Examples

# NOT RUN {
#
# Models with fixed range and varying smoothness parameter
#
curve(matern(x, phi= 0.25, kappa = 0.5),from = 0, to = 1.5,
      xlab = "distance", ylab = expression(rho(h)), lty = 2,
      main=expression(paste("varying  ", kappa, "  and fixed  ", phi)))
curve(matern(x, phi= 0.25, kappa = 1),from = 0, to = 1.5, add = TRUE)
curve(matern(x, phi= 0.25, kappa = 2),from = 0, to = 1.5, add = TRUE,
      lwd = 2, lty=2)
curve(matern(x, phi= 0.25, kappa = 3),from = 0, to = 1.5, add = TRUE,
      lwd = 2)
legend("topright", expression(kappa==0.5, kappa==1.5, kappa==2, kappa==3),
    lty=c(2,1,2,1), lwd=c(1,1,2,2))

#
# Correlations with equivalent "practical range"
# and varying smoothness parameter
#
curve(matern(x, phi = 0.25, kappa = 0.5),from = 0, to = 1,
      xlab = "distance", ylab = expression(gamma(h)), lty = 2,
      main = "models with equivalent \"practical\" range")
curve(matern(x, phi = 0.188, kappa = 1),from = 0, to = 1, add = TRUE)      
curve(matern(x, phi = 0.14, kappa = 2),from = 0, to = 1,
      add = TRUE, lwd=2, lty=2)      
curve(matern(x, phi = 0.117, kappa = 2), from = 0, to = 1,
      add = TRUE, lwd=2)      
legend("topright", expression(list(kappa == 0.5, phi == 0.250),
       list(kappa == 1, phi == 0.188), list(kappa == 2, phi == 0.140),
       list(kappa == 3, phi == 0.117)), lty=c(2,1,2,1), lwd=c(1,1,2,2))
# }