Let $$\delta_{ij} = \mu + \gamma_{ij} + 1.$$
Then,
$$C_{n}(h) = c_{ij} (C_{n, \delta} (h / s_{ij}))_{i,j=1,2}$$
and $C_{n, \delta}$
is the generalised Gneiting model
with parameters $n$ and $\delta$, see
RMgengneiting
, i.e.,
$$C_{\kappa=0, \delta}(r) = (1-r)^\beta 1_{[0,1]}(r), \qquad \beta=\delta
+ 2\kappa + 1/2;$$
$$C_{\kappa=1, \delta}(r) = \left(1+\beta r \right)(1-r)^{\beta} 1_{[0,1]}(r),
\qquad \beta = \delta + 2\kappa + 1/2;$$
$$C_{\kappa=2, \delta}(r)=\left( 1 + \beta r + \frac{\beta^{2} -
1}{3}r^{2} \right)(1-r)^{\beta} 1_{[0,1]}(r), \qquad
\beta=\delta + 2\kappa + 1/2;$$
$$C_{\kappa=3, \delta}(r)=\left( 1 + \beta r + \frac{(2\beta^{2}-3)}{5} r^{2}+
\frac{(\beta^2 - 4)\beta}{15} r^{3} \right)(1-r)^\beta 1_{[0,1]}(r),
\qquad \beta=\delta+2\kappa+1/2.$$
RMbigneiting(kappa, mu, s, sred12, gamma, cdiag, rhored, c, var, scale, Aniso, proj)
mu
has to be greater than or equal to
$\frac{d}{2}$ where $d$ is the (arbitrary)
dimension of the randomfield.sred12 *
$\min{s_{11},s_{22}}$.gamma
equals
$(\gamma_{11},\gamma_{21},\gamma_{22})$.
Note that $\gamma_{12} =\gamma_{21}$. Either
rhored
and cdiag
or c
must be given.
RMmodel
The constant $m$ in the formula above is obtained as follows: $$m = \min{1, m_{-1}, m_{+1}}$$ Let $$a = 2 \gamma_{12} - \gamma_{11} -\gamma_{22}$$ $$b = -2 \gamma_{12} (s_{11} + s_{22}) + \gamma_{11} (s_{12} + s_{22}) + \gamma_{22} (s_{12} + s_{11})$$ $$e = 2 \gamma_{12} s_{11}s_{22} - \gamma_{11}s_{12}s_{22} - \gamma_{22}s_{12}s_{11}$$ $$d = b^2 - 4ae$$ $$t_j =\frac{- b + j \sqrt d}{2 a}$$ If $d \ge0$ and $t_j \not\in (0, s_{12})$ then $m_j=\infty$ else $$m_j = \frac{(1 - t_j/s_{11})^{\gamma_{11}}(1 - t_j/s_{22})^{\gamma_{22}}}{(1 - t_j/s_{12})^{2 \gamma_{11}} }{ m_j = (1 - t_j/s_{11})^{\gamma_{11}} (1 - t_j/s_{22})^{\gamma_{22}} / (1 - t_j/s_{12})^{2 \gamma_{11}} }$$
In the function c
is
passed, then the above condition is checked, or rhored
is passed
then $c_{12}$ is calculated by the above formula.
set.seed(0)model <- RMbigneiting(kappa=2, mu=0.5, gamma=c(0, 3, 6), rhored=1)
x <- seq(0, 10, if (interactive()) 0.02 else 1)
plot(model, ylim=c(0,1))
plot(RFsimulate(model, x=x))
Run the code above in your browser using DataLab