R: Fitting model parameters to spatial data (regionalised...

RFfit {RandomFields} | R Documentation

## Fitting model parameters to spatial data (regionalised variables) and to linear (mixed) models

### Description

The function estimates arbitrary parameters of a random field specification with various methods. Currenty, the model to be fitted can be

- Gaussian random fields

- linear models

The fitting of max-stable random fields and others has not been implemented yet.

### Usage

    RFfit(model, x, y = NULL, z = NULL, T = NULL, grid=NULL, data,
     lower = NULL, upper = NULL, methods,
     sub.methods, optim.control = NULL, users.guess = NULL,
     distances = NULL, dim, transform = NULL, ...)

### Arguments

`model` | covariance model, see `RMmodel` or type `RFgetModelNames(type="variogram")` to get all options. All parameters that are set to `NA` will be estimated; see the examples below.
`x` | vector of x coordinates, or object of class `GridTopology` or `raster`; For more options see RFsimulateAdvanced.
`y` | vector of y coordinates
`z` | vector of z coordinates
`T` | vector of T coordinates; these coordinates are given in triple notation, see `RFsimulate`.
`data` | vector or matrix of values measured at `coord`; If a matrix is given then the columns are interpreted as independent realisations. If also a time component is given, then in the data the indices for the spatial components run the fastest. If an `m`-variate model is used, then each realisation is given as `m` consecutive columns of `data`.
`lower` | list or vector. Lower bounds for the parameters. If `param` is a vector, `lower` has to be a vector as well and its length must equal the number of parameters to be estimated. The order of `param` has to be maintained. A component being `NA` means that no manual lower bound for the corresponding parameter is set. If `param` is a list, `lower` has to be of (exactly) the same structure.
`upper` | list or vector. Upper bounds for the parameters. See also lower.
`grid` | boolean. Whether coordinates build a grid. In nearly all cases the value of `grid` is self-detected, so that `grid` need not be given, in general
`methods` | Main methods to be used for estimating. If several methods, estimation will be performed with each method and the results reported.
`sub.methods` | variants of the least squares fit of the variogram. See Details. variants of the maximum likelihood fit of the covariance function. See Details.
`users.guess` | User's guess of the parameters. All the parameters must be given using the same rules as for either `param` (except that no NA's should be contained) or `model`.
`distances,dim` | Instead of `x`-coordinates, distances might be given. The the dimension of the space `dim` must be given explicitely.
`optim.control` | control list for `optim`, which uses ‘L-BFGS-B’. However `parscale` may not be given.
`transform` | this is an attempt to allow binding between parameters, e.g. one parameter value is supposed to equal another one, See examples below. `transform=list()` is not valid for estimating, but returns structural information to set up the correct function. See examples below.
`...` | further options and control arguments for the simulation that are passed to and processed by `RFoptions`.

### Details

For details on the simulation methods see

- fitgauss for Gaussian random fields

- fitgauss for linear models

If `x`-coordinates are not given, the function will check `data` for `NA`s and will perform imputing.

The function has many more options to tune the optimizer, see `RFoptions` for details.

If the model defines a Gaussian random field, the options for `methods` and `submethods` are currently `"ml"` and `c("self", "plain", "sqrt.nr", "sd.inv", "internal")`, respectively.

### Value

The result depends on the logical value of `spConform`. If `TRUE`, an S4 object is greated. In case the model indicates a Gaussian random field, an RFfit object is created.

If `spConform=FALSE`, a list is returned. In case the model indicates a Gaussian random field, the details are given in fitgauss.

### Note

- An important optional argument is `boxcox` which indicates A Box-Cox transformation see `boxcox` in `RFoptions` and `RFboxcox` for details.

- Instead of `optim`, other optimiser can be used, see RFfitOptimiser.

- Several advanced options can be found in sections ‘General options’ and ‘fit’ of `RFoptions`.

- In particular, `boxcox`, `boxcox_lb`, `boxcox_ub` allow Box-Cox transformation.

- This function does not depend on the value of `RFoptions``()$PracticalRange`. The function `RFfit` always uses the standard specification of the covariance model as given in `RMmodel`

### Author(s)

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

### References

- Burnham, K. P. and Anderson, D. R. (2002) Model selection and Multi-Model Inference: A Practical Information-Theoretic Approach. 2nd edition. New York: Springer.

### See Also

RFfitOptimiser `RFlikelihood`, `RFratiotest`, `RMmodel`, `RandomFields`, `weather`.

### Examples

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

    RFoptions(modus_operandi="sloppy")

    #########################################################
    ## simulate some data first                            ##
    points <- 100
    x <- runif(points, 0, 3)
    y <- runif(points, 0, 3) ## random points in square [0, 3]^2
    model <- RMgencauchy(alpha=1, beta=2)
    d <- RFsimulate(model, x=x, y=y, grid=FALSE, n=100) #1000

    #########################################################
    ## estimation; 'NA' means: "to be estimated"           ##
    estmodel <- RMgencauchy(var=NA, scale=NA, alpha=NA, beta=2) +
                RMtrend(mean=NA)
    RFfit(estmodel, data=d)

    #########################################################
    ## coupling alpha and beta                             ##
    estmodel <- RMgencauchy(var=NA, scale=NA, alpha=NA, beta=NA) +
                RMtrend(NA)
    RFfit(estmodel, data=d, transform = NA) ## just for information
    trafo <- function(a) c(a[1], rep(a[2], 2))
    fit <- RFfit(estmodel, data=d,
                 transform = list(c(TRUE, TRUE, FALSE), trafo))
    print(fit)
    print(fit, full=TRUE)

[Package RandomFields version 3.1.50 Index]