lgcp.estK {spatstat.model} | R Documentation |
Fit a Log-Gaussian Cox Point Process by Minimum Contrast
Description
Fits a log-Gaussian Cox point process model to a point pattern dataset by the Method of Minimum Contrast.
Usage
lgcp.estK(X, startpar=c(var=1,scale=1),
covmodel=list(model="exponential"),
lambda=NULL,
q = 1/4, p = 2, rmin = NULL, rmax = NULL, ...)
Arguments
X |
Data to which the model will be fitted. Either a point pattern or a summary statistic. See Details. |
startpar |
Vector of starting values for the parameters of the log-Gaussian Cox process model. |
covmodel |
Specification of the covariance model for the log-Gaussian field. See Details. |
lambda |
Optional. An estimate of the intensity of the point process. |
q , p |
Optional. Exponents for the contrast criterion. |
rmin , rmax |
Optional. The interval of |
... |
Optional arguments passed to |
Details
This algorithm fits a log-Gaussian Cox point process (LGCP) model to a point pattern dataset by the Method of Minimum Contrast, using the K function of the point pattern.
The shape of the covariance of the LGCP must be specified: the default is the exponential covariance function, but other covariance models can be selected.
The argument X
can be either
- a point pattern:
An object of class
"ppp"
representing a point pattern dataset. TheK
function of the point pattern will be computed usingKest
, and the method of minimum contrast will be applied to this.- a summary statistic:
An object of class
"fv"
containing the values of a summary statistic, computed for a point pattern dataset. The summary statistic should be theK
function, and this object should have been obtained by a call toKest
or one of its relatives.
The algorithm fits a log-Gaussian Cox point process (LGCP)
model to X
, by finding the parameters of the LGCP model
which give the closest match between the
theoretical K
function of the LGCP model
and the observed K
function.
For a more detailed explanation of the Method of Minimum Contrast,
see mincontrast
.
The model fitted is a stationary, isotropic log-Gaussian Cox process
(Moller and Waagepetersen, 2003, pp. 72-76).
To define this process we start with
a stationary Gaussian random field Z
in the two-dimensional plane,
with constant mean \mu
and covariance function C(r)
.
Given Z
, we generate a Poisson point process Y
with intensity
function \lambda(u) = \exp(Z(u))
at
location u
. Then Y
is a log-Gaussian Cox process.
The K
-function of the LGCP is
K(r) = \int_0^r 2\pi s \exp(C(s)) \, {\rm d}s.
The intensity of the LGCP is
\lambda = \exp(\mu + \frac{C(0)}{2}).
The covariance function C(r)
is parametrised in the form
C(r) = \sigma^2 c(r/\alpha)
where \sigma^2
and \alpha
are parameters
controlling the strength and the scale of autocorrelation,
respectively, and c(r)
is a known covariance function
determining the shape of the covariance.
The strength and scale parameters
\sigma^2
and \alpha
will be estimated by the algorithm as the values
var
and scale
respectively.
The template covariance function c(r)
must be specified
as explained below.
In this algorithm, the Method of Minimum Contrast is first used to find
optimal values of the parameters \sigma^2
and \alpha
. Then the remaining parameter
\mu
is inferred from the estimated intensity
\lambda
.
The template covariance function c(r)
is specified
using the argument covmodel
. This should be of the form
list(model="modelname", ...)
where
modelname
is a string identifying the template model
as explained below, and ...
are optional arguments of the
form tag=value
giving the values of parameters controlling the
shape of the template model.
The default is the exponential covariance
c(r) = e^{-r}
so that the scaled covariance is
C(r) = \sigma^2 e^{-r/\alpha}.
For a list of available models see kppm
.
If the argument lambda
is provided, then this is used
as the value of \lambda
. Otherwise, if X
is a
point pattern, then \lambda
will be estimated from X
.
If X
is a summary statistic and lambda
is missing,
then the intensity \lambda
cannot be estimated, and
the parameter \mu
will be returned as NA
.
The remaining arguments rmin,rmax,q,p
control the
method of minimum contrast; see mincontrast
.
The optimisation algorithm can be controlled through the
additional arguments "..."
which are passed to the
optimisation function optim
. For example,
to constrain the parameter values to a certain range,
use the argument method="L-BFGS-B"
to select an optimisation
algorithm that respects box constraints, and use the arguments
lower
and upper
to specify (vectors of) minimum and
maximum values for each parameter.
Value
An object of class "minconfit"
. There are methods for printing
and plotting this object. It contains the following main components:
par |
Vector of fitted parameter values. |
fit |
Function value table (object of class |
Note
This function is considerably slower than lgcp.estpcf
because of the computation time required for the integral
in the K
-function.
Computation can be accelerated, at the cost of less accurate results,
by setting spatstat.options(fastK.lgcp=TRUE)
.
Author(s)
Rasmus Plenge Waagepetersen rw@math.auc.dk. Adapted for spatstat by Adrian Baddeley Adrian.Baddeley@curtin.edu.au. Further modifications by Rasmus Waagepetersen and Shen Guochun, and by Ege Rubak rubak@math.aau.dk.
References
Moller, J, Syversveen, A. and Waagepetersen, R. (1998) Log Gaussian Cox Processes. Scandinavian Journal of Statistics 25, 451–482.
Moller, J. and Waagepetersen, R. (2003). Statistical Inference and Simulation for Spatial Point Processes. Chapman and Hall/CRC, Boca Raton.
Waagepetersen, R. (2007) An estimating function approach to inference for inhomogeneous Neyman-Scott processes. Biometrics 63, 252–258.
See Also
kppm
and
lgcp.estpcf
for alternative methods of fitting LGCP.
matclust.estK
,
thomas.estK
for other models.
mincontrast
for the generic minimum contrast
fitting algorithm, including important parameters that affect
the accuracy of the fit.
Kest
for the K
function.
Examples
if(interactive()) {
u <- lgcp.estK(redwood)
print(u)
plot(u)
} else {
# faster - better starting point
u <- lgcp.estK(redwood, c(var=1.05, scale=0.1))
}
if(FALSE) {
## takes several minutes!
lgcp.estK(redwood, covmodel=list(model="matern", nu=0.3))
}