Learn R Programming

RandomFields (version 3.0.62)

RMparswm: Parsimonious Multivariate Whittle Matern Model

Description

RMparswm is a multivariate stationary isotropic covariance model whose corresponding covariance function only depends on the distance $r \ge 0$ between two points and is given for $i,j \in {1,2}$ by $$C_{ij}(r)= c_{ij} W_{\nu_{ij}}(r).$$ Here $W_\nu$ is the covariance of the RMwhittle model.

RMparswmX ist defined as $$\rho_{ij} C_{ij}(r)$$ where $\rho_{ij}$ is any covariance matrix.

Usage

RMparswm(nudiag, var, scale, Aniso, proj)
RMparswmX(nudiag, rho, var, scale, Aniso, proj)

Arguments

nudiag
a vector of arbitrary length of positive values; each entry positive; the vector $(\nu_{11},\nu_{22},...)$. The offdiagonal elements $\nu_{ij}$ are calculated as $0.5 (\nu_{ii} + \nu_{jj})$.
rho
any positive definite $m \times m$ matrix; here $m$ equals length(nudiag) For the calculation of $c_{ij}$ see Details.
var,scale,Aniso,proj
optional arguments; same meaning for any RMmodel. If not passed, the above covariance function remains unmodified.

Value

Details

In the equation above we have $$c_{ij} = \rho_{ij} \sqrt{G_{ij}}$$ and $$G_{ij} = \frac{\Gamma(\nu_{11} + d/2) \Gamma(\nu_{22} + d/2) \Gamma(\nu_{12})^2}{\Gamma(\nu_{11}) \Gamma(\nu_{22}) \Gamma(\nu_{12}+d/2)^2}$$ where $\Gamma$ is the Gamma function and $d$ is the dimension of the space.

Note that the definition of RMparswmX is RMschur(M=rho, RMparswm(nudiag, var, scale, Aniso, proj)) .

References

  • Gneiting, T., Kleiber, W., Schlather, M. (2010) Matern covariance functions for multivariate random fieldsJASA

See Also

RMbiwm, RMwhittle, RMmodel, RFsimulate, RFfit.

Examples

Run this code
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again

rho <- matrix(nc=3, c(1, 0.5, 0.2, 0.5, 1, 0.6, 0.2, 0.6, 1))
model <- RMparswmX(nudiag=c(1.3, 0.7, 2), rho=rho)
x.seq <- y.seq <- seq(-10, 10, if (interactive()) 0.1 else 5)
z <- RFsimulate(model = model, x=x.seq, y=y.seq)
plot(z)

FinalizeExample()

Run the code above in your browser using DataLab