likfit | R Documentation |
Maximum likelihood (ML) or restricted maximum likelihood (REML) parameter estimation for (transformed) Gaussian random fields.
likfit(geodata, coords = geodata$coords, data = geodata$data,
trend = "cte", ini.cov.pars, fix.nugget = FALSE, nugget = 0,
fix.kappa = TRUE, kappa = 0.5, fix.lambda = TRUE, lambda = 1,
fix.psiA = TRUE, psiA = 0, fix.psiR = TRUE, psiR = 1,
cov.model, realisations, lik.method = "ML", components = TRUE,
nospatial = TRUE, limits = pars.limits(),
print.pars = FALSE, messages, ...)
## S3 method for class 'likGRF'
fitted(object, spatial = TRUE, ...)
## S3 method for class 'likGRF'
resid(object, spatial = FALSE, ...)
geodata |
a list containing elements |
coords |
an |
data |
a vector with n data values. By default it takes the
component |
trend |
specifies the mean part of the model. See documentation
of |
ini.cov.pars |
initial values for the covariance parameters:
|
fix.nugget |
logical, indicating whether the parameter
|
nugget |
value of the nugget parameter.
Regarded as a fixed value if |
fix.kappa |
logical, indicating whether the extra parameter
|
kappa |
value of the extra parameter |
fix.lambda |
logical, indicating whether the Box-Cox transformation parameter
|
lambda |
value of the Box-Cox transformation parameter
|
fix.psiA |
logical, indicating whether the anisotropy angle parameter
|
psiA |
value (in radians) for the anisotropy angle parameter
|
fix.psiR |
logical, indicating whether the anisotropy ratio parameter
|
psiR |
value, always greater than 1, for the anisotropy ratio parameter
|
cov.model |
a string specifying the model for the correlation
function. For further details see documentation for |
realisations |
optional. Logical or a vector indicating the number of replication
for each datum. For further information see |
lik.method |
(formely method.lik) options are |
components |
an |
nospatial |
logical. If |
limits |
values defining lower and upper limits for the model
parameters used in the numerical minimisation.
The auxiliary function |
print.pars |
logical. If |
messages |
logical. Indicates whether status messages should be printed on the screen (or output device) while the function is running. |
... |
additional parameters to be passed to the minimisation
function. Typically arguments of the type |
object |
an object with output of the function |
spatial |
logical, determines whether the spatial component of the model in included in the output. The geostatistical model components are: trend, spatial and residulas. See DETAILS. |
This function estimate the parameters of the Gaussian random field model, specified as:
Y(x) = \mu(x) + S(x) + e
where
x
defines a spatial location. Typically Euclidean
coordinates on a plane.
Y
is the variable been observed.
\mu(x) = X\beta
is the mean component of
the model (trend).
S(x)
is a stationary Gaussian process with variance \sigma^2
(partial sill) and a correlation function parametrized in its
simplest form by \phi
(the range parameter). Possible extra parameters
for the correlation function are the smoothness parameter
\kappa
and the anisotropy parameters \phi_R
and
\phi_A
(anisotropy ratio and angle, respectively).
e
is the error term with variance parameter \tau^2
(nugget variance).
The additional parameter \lambda
allows for the Box-Cox
transformation of the response variable.
If used (i.e. if \lambda \neq 1
) Y(x)
above is replaced by g(Y(x))
such that
g(Y(x)) = \frac{Y^\lambda(x) - 1}{\lambda}.
Two particular cases are \lambda = 1
which indicates no transformation and \lambda = 0
indicating the log-transformation.
Numerical minimization
In general parameter estimation is performed numerically using the R
function optim
to minimise the
negative log-likelihood computed by the function negloglik.GRF
.
If the nugget, anisotropy (\psi_A, \psi_R
),
smoothness (\kappa
) and transformation (\lambda
) parameters
are held fixed then the numerical minimisation can be reduced to
one-dimension and the function optimize
is used instead
of optim
. In this case initial values are irrelevant.
Limits
Lower and upper limits for parameter values can be
individually specified using the function link{pars.limits}
.
For example, including the following in the function call:
limits = pars.limits(phi=c(0, 10), lambda=c(-2.5, 2.5))
,
will change the limits for the parameters \phi
and \lambda
.
Default values are used if the argument limits
is not provided.
There are internal reparametrisation depending on the options for
parameters to be estimated.
For instance for the common situation when fix.nugget=FALSE
the
minimisation is performed in a reduced
parameter space using
\tau^2_{rel} = \frac{\tau^2}{\sigma^2}
.
In this case values of \sigma^2
and \beta
are then given by
analytical expressions which are function of the two parameters
remaining parameters and limits for these two parameters will be ignored.
Since parameter values are found by numerical optimization using
the function optim
,
in given circunstances the algorithm may not converge to correct
parameter values when called with default options and the user may
need to pass extra options for the optimizer. For instance the
function optim
takes a control
argument.
The user should try different initial values and if the parameters have
different orders of magnitude may need to use options to scale the parameters.
Some possible workarounds in case of problems include:
rescale you data values (dividing by a constant, say)
rescale your coordinates (subtracting values and/or dividing by constants)
Use the mechanism to pass control()
options for the
optimiser internally
Transformation
If the fix.lambda = FALSE
and nospatial = FALSE
the
Box-Cox parameter for the model without the spatial component is
obtained numerically, with log-likelihood computed by the function
boxcox.ns
.
Multiple initial values can be specified providing a n
\times 2
matrix for the argument ini.cov.pars
and/or
providing a vector for the values of the remaining model parameters.
In this case the log-likelihood is computed for all combinations of
the model parameters. The parameter set which maximises the
value of the log-likelihood is then used to start the
minimisation algorithm.
Alternatively the argument ini.cov.pars
can take an object of
the class eyefit
or variomodel
. This allows the usage
of an output of the functions eyefit
, variofit
or
likfit
be used as initial value.
The argument realisations allows sets of data assumed to be
independent replications of the same process.
Data on different realisations may or may not be co-located.
For instance, data collected at different times
can be pooled together in the parameter estimation assuming
time independence.
The argument realisations
takes a vector indicating the
replication number (e.g. the times).
If realisations = TRUE
the code looks for an element
named realisations
in the geodata
object.
The log-likelihoods are computed for each replication and added together.
An object of the classes "likGRF"
and "variomodel"
.
The function summary.likGRF
is used to print a summary
of the fitted model.
The object is a list with the following components:
cov.model |
a string with the name of the correlation function. |
nugget |
value of the nugget parameter |
cov.pars |
a vector with the estimates of the parameters
|
kappa |
value of the smoothness parameter. Valid only if
the correlation function is one of: |
beta |
estimate of mean parameter |
beta.var |
estimated variance (or covariance matrix) for the mean
parameter |
lambda |
values of the Box-Cox transformation parameter. A fixed value if
|
aniso.pars |
fixed values or estimates of the anisotropy parameters, according to the function call. |
method.lik |
estimation method used, |
loglik |
the value of the maximized likelihood. |
npars |
number of estimated parameters. |
AIC |
value of the Akaike Information Criteria, |
BIC |
value of the Bayesian Information Criteria,
|
parameters.summary |
a data-frame with all model parameters, their status (estimated or fixed) and values. |
info.minimisation |
results returned by the minimisation function. |
max.dist |
maximum distance between 2 data points. This
information relevant for other functions which use outputs from
|
trend |
the trend (covariates) matrix |
log.jacobian |
numerical value of the logarithm of the Jacobian of the transformation. |
nospatial |
estimates for the model without the spatial component. |
call |
the function call. |
Paulo Justiniano Ribeiro Jr. paulojus@leg.ufpr.br,
Peter J. Diggle p.diggle@lancaster.ac.uk.
Further information on the package
geoR
can be found at:
http://www.leg.ufpr.br/geoR/.
summary.likGRF
for summary of the results,
plot.variogram
, lines.variogram
and
lines.variomodel
for graphical output,
proflik
for computing profile likelihoods,
variofit
and for other estimation methods,
and optim
for the numerical minimisation function.
## Not run:
ml <- likfit(s100, ini=c(0.5, 0.5), fix.nug = TRUE)
ml
summary(ml)
reml <- likfit(s100, ini=c(0.5, 0.5), fix.nug = TRUE, lik.met = "REML")
summary(reml)
plot(variog(s100))
lines(ml)
lines(reml, lty = 2)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.