spatstat.core (version 2.3-1)

lgcp.estK: Fit a Log-Gaussian Cox Point Process by Minimum Contrast


Fits a log-Gaussian Cox point process model to a point pattern dataset by the Method of Minimum Contrast.


lgcp.estK(X, startpar=c(var=1,scale=1),
             q = 1/4, p = 2, rmin = NULL, rmax = NULL, ...)



Data to which the model will be fitted. Either a point pattern or a summary statistic. See Details.


Vector of starting values for the parameters of the log-Gaussian Cox process model.


Specification of the covariance model for the log-Gaussian field. See Details.


Optional. An estimate of the intensity of the point process.


Optional. Exponents for the contrast criterion.

rmin, rmax

Optional. The interval of \(r\) values for the contrast criterion.

Optional arguments passed to optim to control the optimisation algorithm. See Details.


An object of class "minconfit". There are methods for printing and plotting this object. It contains the following main components:


Vector of fitted parameter values.


Function value table (object of class "fv") containing the observed values of the summary statistic (observed) and the theoretical values of the summary statistic computed from the fitted model parameters.


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. The \(K\) function of the point pattern will be computed using Kest, 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 the \(K\) function, and this object should have been obtained by a call to Kest 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}. $$ To determine the template model, the string "modelname" will be prefixed by "RM" and the code will search for a function of this name in the RandomFields package. For a list of available models see RMmodel in the RandomFields package. For example the Matern covariance with exponent \(\nu=0.3\) is specified by covmodel=list(model="matern", nu=0.3) corresponding to the function RMmatern in the RandomFields package.

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.


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

lgcp.estpcf for alternative method 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.

RMmodel in the RandomFields package, for covariance function models.

Kest for the \(K\) function.


Run this code
    if(interactive()) {
      u <- lgcp.estK(redwood)
    } 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))
# }

Run the code above in your browser using DataLab