R: User Defined Function

RMuser {RandomFields} | R Documentation

## User Defined Function

### Description

`RMuser` allows for a user defined covariance function, variogram model, or arbitrary function.

RMuser is very slow – users should avoid this model whenever possible.

### Usage

    RMuser(type, domain, isotropy, vdim, beta,
           varnames = c("x", "y", "z", "T"), fctn, fst, snd, envir,
           var, scale, Aniso, proj)

### Arguments

`type` | See `RMmodelgenerator` for the range of values of the arguments. Default: `"shape function"`.
`domain` | See `RMmodelgenerator` for the range of values of the arguments. Default: `XONLY`.
`isotropy` | See `RMmodelgenerator` for the range of values of the arguments. Default: `'isotropic'` if `type` equals `'tail correlation function'`, `'positive definite'` or `'negative definite'`; `'cartesian system'` if `type` indicates a process or simulation method or a shape function.
`vdim` | multivariability. Default: `vdim` is identified from `beta` if given; otherwise the default value is `1`.
`beta` | a fixed matrix that is multiplied to the return value of the given function; the dimension must match. Defining a vector valued function and `beta` as a vector, an arbitrary linear model can be defined. Estimation of `beta` is, however, not established yet.
`varnames` | Just the names of the variables. More variable names might be given here than used in the function. See Detail for the interpretation of variables.
`fctn, fst, snd` | a user defined function and its first, second and third derivative, given as `quote(myfunction(x))` or as `quote(myfunction(x, y))`, see Details an Examples below.
`envir` | the environment where the given function shall be evaluated
`var,scale,Aniso,proj` | optional arguments; same meaning for any `RMmodel`. If not passed, the above covariance function remains unmodified.

### Details

Primarily, a function is expected that depends on a vector whose components, x, y, z, T, are given separately as scalar quantities.

Alternatively, the function might depend only on the first argument given by `varnames`.

A kernel should depend on the first two arguments given by `varnames`.

### Value

`RMuser` returns an object of class `RMmodel`.

### Note

- The use of `RMuser` is completely on the risk of the user. There is no way to check whether the expressions of the user are correct in any sense.

- Note that `x`, `y`, `z` and `T` are reserved argument names that define solely the coordinates. Hence, none of these names might be used for other arguments within these functions.

- In the user-defined functions the models of RandomFields are not recognised, so they cannot be included in the function definitions.

- `RMuser` may not be used in connection with obsolete commands of RandomFields.

### Author(s)

Martin Schlather, schlather@math.uni-mannheim.de http://ms.math.uni-mannheim.de/de/publications/software

### See Also

`RMcovariate`, `RMfixcov`, `RFfit`, `RMmodelgenerator` `RMmodel`, `RFsimulate`, RC_ISONAMES, RC_DOMAIN_NAMES

### Examples

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

    ## Alternatively to 'model <- RMexp()' one may define the following
    ## (which is, however, much slower and cannot use all features of
    ## RandomFields)

    ## user-defined exponential covariance model
    model <- RMuser(type="positive definite", domain="single variable",
                    iso="isotropic", fctn=exp(-x))
    x <- y <- seq(1, 10, len=100)
    plot(model)
    z <- RFsimulate(model, x=x, y=y)
    plot(z)

    ## the kernel, which is the scalar product (not programmed (yet) in
    ## RandomFields) %to do
    model <- RMnugget(var=1e-5) +
             RMuser(type="positive definite", domain="kernel",
                    iso="symmetric", fctn=sum(x * y))
    x <- y <- seq(1, 10, len=35)
    z <- RFsimulate(model, x=x, y=y, n=6, svdtol=1e-9)
    plot(z)

[Package RandomFields version 3.1.50 Index]