Learn R Programming

spatstat (version 1.31-3)

lgcp.estK: 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(sigma2=1,alpha=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 $r$ values for the contrast criterion.
...
Optional arguments passed to optim to control the optimisation algorithm. See Details.

Value

  • An object of class "minconfit". There are methods for printing and plotting this object. It contains the following main components:
  • parVector of fitted parameter values.
  • fitFunction 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.

Details

This algorithm fits a log-Gaussian Cox point process model to a point pattern dataset by the Method of Minimum Contrast, using the K function.

The argument X can be either [object Object],[object Object] 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. 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. It may be any of the covariance functions recognised by the command Covariance in the RandomFields package. The default is the exponential covariance $c(r) = e^{-r}$ so that the scaled covariance is $$C(r) = \sigma^2 e^{-r/\alpha}.$$ The argument covmodel should be of the form list(model="modelname", ...) where modelname is the string name of one of the covariance models recognised by the command Covariance in the RandomFields package, and ... are arguments of the form tag=value giving the values of parameters controlling the shape of these models. For example the exponential covariance is specified by covmodel=list(model="exponential") while the Matern covariance with exponent $\nu=0.3$ is specified by covmodel=list(model="matern", nu=0.3). 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.

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

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. Covariance in the RandomFields package, for covariance function models. Kest for the $K$ function.

Examples

Run this code
u <- lgcp.estK(redwood)
    u <- lgcp.estK(redwood, c(sigma2=1, alpha=0.1))
    u
    if(interactive()) plot(u)

    <testonly>if(require(RandomFields)) {
      K <- Kest(redwood, r=seq(0, 0.1, length=9))
      op <- spatstat.options(fastK.lgcp=TRUE)
      lgcp.estK(K, covmodel=list(model="matern", nu=0.3),
                control=list(maxit=2))
      spatstat.options(op)
      }</testonly>
    if(require(RandomFields)) {
      lgcp.estK(redwood, covmodel=list(model="matern", nu=0.3))
      }

Run the code above in your browser using DataLab