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 = "matern", realisations,
method.lik = "ML", components = FALSE,
nospatial = TRUE, limits = likfit.limits(),
print.pars = FALSE, messages.screen = TRUE, ...)
coords
and
data
as described next.
Typically an object of the class "geodata"
- a geoR
data-set.
If not provided the arguments
coords
and data
coords
of the argument geodata
, if provided.data
of the argument geodata
, if provided.trend.spatial
for further details.
Defaults to "cte"
.DETAILS
below.fix.nugget = TRUE
) or should be
estimated (fix.nugget = FALSE
). Defaults to
FALSE
.fix.nugget = TRUE
otherwise
as the initial value for the
minimization algorithm.
Defaults to zero.fix.kappa = TRUE
) or should be
estimated (fix.kappa = FALSE
). Defaults to
TRUE
.fix.kappa = TRUE
otherwise as the initial value for the
minimization algorithm. Defaults to
$0.5$. This parameter is valid only if the covariance function is fix.lambda = TRUE
) or should be
be estimated (fix.lambda = FALSE
). Defaults to
TRUE
.fix.lambda = TRUE
otherwise
as the initial value for the
minimization algorithm. Defaults to
$1$. Two particular cases are $\lambda = 1fix.psiA = TRUE
) or should
be estimated (fix.psiA = FALSE
). Defaults to
TRUE
.fix.psiA = TRUE
otherwise as the initial value for the
minimization algorithm.
Defaults to $0$. See
fix.psiR = TRUE
) or should be
estimated (fix.psiR = FALSE
). Defaults to
TRUE
.fix.psiR = TRUE
otherwise as the initial value for the
minimization algorithm.
Defaults to $1$. See
cov.spatial
.
Defaults are equivalent to the exponential model.as.geodata
."ML"
for maximum likelihood and "REML"
for
restricted maximum likelihood. Defaults to "ML"
.DETAILS
below for the model specification.TRUE
parameter estimates for the
model without spatial component are included in the output.likfit.limits()
is called to set the
limits.TRUE
the parameters and the value
of the negative log-likelihood (up to a constant) are printed each
time the function to be minimised is called.control()
which controls the
behavior of the minimization algorithm. For further details see documentation
for the minimization fu"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:fix.nugget = FALSE
otherwise, a fixed
value."matern"
,
"powered.exponential"
, "cauchy"
or "gneiting.matern"
.fix.lambda = TRUE
otherwise the estimate value."ML"
(maximum likelihood)
or "REML"
(restricted maximum likelihood).likfit
. Two cases of particular interest are $\lambda = 1$
indicating no transformation and $\lambda = 0$
indicating log-transformation.
Parameter estimation is performed numerically using the Rfunction optim
to minimize the
negative log-likelihood computed by negloglik.GRF
.
Lower and upper limits for parameter values can be
individually specified using the function likfit.limits()
.
For example, including the following in the function call:
limits = likfit.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.
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
\time 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
model parameters. The set with results in the maximum value of the
log-likelihood is then used to start the minimisation algorithm.
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 minimization function.if(is.R()) data(s100)
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, met = "REML")
summary(reml)
plot(variog(s100))
lines(ml)
lines(reml, lty = 2)
<testonly>ap <- grf(50, cov.pars=c(1, .3), nug=.3)
ml <- likfit(ap, ini=c(0.5, 0.5), nug=0.2)
ml <- likfit(ap, ini=c(0.5, 0.5), fix.nug=TRUE, nug=0.2)
ml <- likfit(ap, data=exp(ap$data), ini=c(0.5, 0.5), nug=0.2, fix.lambda=FALSE)
ml <- likfit(ap, ini=c(0.5, 0.5), nug=0.2, fix.psiR = FALSE)
ml <- likfit(ap, ini=c(0.5, 0.5), nug=0.2, fix.psiA = FALSE, fix.psiR = FALSE)
ml <- likfit(ap, ini=c(0.5, 0.5), cov.model="matern", fix.kappa=TRUE, kappa=2)
ml <- likfit(ap, ini=c(0.5, 0.5), cov.model="matern", fix.kappa=FALSE)
ml <- likfit(ap, ini=expand.grid(c(.5,1,1.5),c(.1,.2,.3)))
ml <- likfit(ap, ini=expand.grid(c(.5,1),c(.1,.2)), nug=c(.2,.3))
## Multiple realizations
ap1 <- grf(30, cov.pars=c(1, .3))
ap2 <- grf(20, cov.pars=c(1, .3))
ap3 <- grf(40, cov.pars=c(1, .3))
ap <- list(coords = rbind(ap1$coords, ap2$coords, ap3$coords), data = c(ap1$data, ap2$data, ap3$data))
ap$realisations <- c(rep(1,30), rep(2,20), rep(3,40))
ap.fit <- likfit(ap, ini=c(.5, .5), reali=ap$real)</testonly>
Run the code above in your browser using DataLab