Learn R Programming

geoR (version 1.0-0)

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$.

References

Further information about geoR can be found at: http://www.maths.lancs.ac.uk/~ribeiro/geoR.html.

See Also

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

Examples

Run this code
dval <- seq(0,1,l=101)
#
# Models with fixed range and varying smoothness parameter
#
mat.5 <-  matern(dval, phi = .25, kappa = 0.5)
mat1 <-  matern(dval, phi = .25, kappa = 1)
mat2 <-  matern(dval, phi = .25, kappa = 2)
mat3 <-  matern(dval, phi = .25, kappa = 3)
plot(0:1, 0:1, type="n", xlab="distance", ylab=expression(rho(h)),
main=expression(paste("varying  ", kappa, "and fixed  ", phi)))
lines(dval, mat.5, lty=2)
lines(dval, mat1)
lines(dval, mat2, lwd=2, lty=2)
lines(dval, mat3, lwd=2)
legend(0.6,1, c(expression(kappa == 0.5), expression(kappa == 1),
    expression(kappa == 2), expression(kappa == 3)),
    lty=c(2,1,2,1), lwd=c(1,1,2,2))
#
# Correlations with equivalent "practical range"
# and varying smoothness parameter
#
mat.5 <-  matern(dval, phi = .25, kappa = 0.5)
mat1 <-  matern(dval, phi = .188, kappa = 1)
mat2 <-  matern(dval, phi = .140, kappa = 2)
mat3 <-  matern(dval, phi = .117, kappa = 3)
plot(0:1, 0:1, type="n", xlab="distance", ylab=expression(rho(h)),
    main="models with the equivalent "practical" range")
lines(dval, mat.5, lty=2)
lines(dval, mat1)
lines(dval, mat2, lwd=2, lty=2)
lines(dval, mat3, lwd=2)
legend(0.5,1, c(expression(paste(kappa == 0.5, "and  ",
    phi == 0.250)),
    expression(paste(kappa == 1, "and  ", phi == 0.188)),
    expression(paste(kappa == 2, "and  ", phi == 0.140)),
    expression(paste(kappa == 3, "and  ", phi == 0.117))),
    lty=c(2,1,2,1), lwd=c(1,1,2,2))

Run the code above in your browser using DataLab