Learn R Programming

RandomFields (version 3.0.5)

RFfit: 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 linear models

Usage

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

Arguments

model
covariance model, see RMmodel or type RFgetModelNames(type="negative") to get all options. All parameters that are set to NA wi
x
vector of x coordinates, or object of class GridTopology or raster; For more options see
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.
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.
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
bc_lambda
a vector of at most two numerical components (just one component corresponds to two identical ones) which are the parameters of the box-cox-transformation: $\frac{x^\lambda_1-1}\lambda_1+\lambda_2$ If the model is univariate, the first parameter ca
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

...
further options and control arguments for the simulation that are passed to and processed by RFoptions.

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.

Details

For details on the simulation methods see

If x-coordinates are not given, the function will check data for NAs 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.

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

RFratiotest RMmodel, RandomFields, weather.

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


RFoptions(modus_operandi="sloppy")


n <- if (interactive()) 100 else 3

#########################################################
## simulate some data first                            ## 
points <- if (interactive()) 100 else 40
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=n) #1000


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

\dontrun{
#########################################################
## Estimation with fixed sill (variance + nugget       ##
## equals a given constant)                            ##
estmodel <- RMgencauchy(var=NA, scale=NA, alpha=NA, beta=NA) +
            RMnugget(var=NA) + RMtrend(mean=NA)
RFfit(estmodel, data=d, fit.sill=1, fit.optim_var_elimination="try")



#########################################################
## estimation in a anisotropic framework               ##
x <- y <- (1:3)/4
model <- RMexp(Aniso=matrix(nc=2, c(4,2,-2,1)), var=1.5)
d <- RFsimulate(model, x=x, y=y, n=n)
estmodel <- RMexp(Aniso=matrix(nc=2, c(NA,NA,-2,1)), var=NA) +
            RMtrend(mean=NA)
RFfit(estmodel, data=d, fit.nphi=20)



#########################################################
## AN EXAMPLE HOW TO USE OF PARAMETER 'transform'      ##
## estimation of coupled parameters (first column of   ##
##           the matrix 'Aniso' has identical entries) ##
# source("RandomFields/tests/source.R")
RFfit(estmodel, data=d, transform=list()) # shows positions of NAs
f <- function(param) param[c(1,2,2)]
RFfit(estmodel, data=d, transform=list(c(TRUE, TRUE, FALSE), f))


}


RFoptions(modus_operandi="normal")
FinalizeExample()

Run the code above in your browser using DataLab