Fit the Thomas Point Process by Minimum Contrast

Fits the Thomas point process to a point pattern dataset by the Method of Minimum Contrast.

models, spatial
thomas.estK(X, startpar=c(kappa=1,sigma2=1), lambda=NULL,
            q = 1/4, p = 2, rmin = NULL, rmax = NULL, ...)
Data to which the Thomas model will be fitted. Either a point pattern or a summary statistic. See Details.
Vector of starting values for the parameters of the Thomas process.
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.

This algorithm fits the Thomas 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 the Thomas point process to X, by finding the parameters of the Thomas model which give the closest match between the theoretical $K$ function of the Thomas process and the observed $K$ function. For a more detailed explanation of the Method of Minimum Contrast, see mincontrast. The Thomas point process is described in Moller and Waagepetersen (2003, pp. 61--62). It is a cluster process formed by taking a pattern of parent points, generated according to a Poisson process with intensity $\kappa$, and around each parent point, generating a random number of offspring points, such that the number of offspring of each parent is a Poisson random variable with mean $\mu$, and the locations of the offspring points of one parent are independent and isotropically Normally distributed around the parent point with standard deviation $\sigma$.

The theoretical $K$-function of the Thomas process is $$K(r) = \pi r^2 + \frac 1 \kappa (1 - \exp(-\frac{r^2}{4\sigma^2})).$$ The theoretical intensity of the Thomas process is $\lambda = \kappa \mu$.

In this algorithm, the Method of Minimum Contrast is first used to find optimal values of the parameters $\kappa$ and $\sigma^2$. Then the remaining parameter $\mu$ is inferred from the estimated intensity $\lambda$.

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 Thomas process can be simulated, using rThomas.

Homogeneous or inhomogeneous Thomas process models can also be fitted using the function kppm.

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.


  • 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.


Moller, J. and Waagepetersen, R. (2003). Statistical Inference and Simulation for Spatial Point Processes. Chapman and Hall/CRC, Boca Raton.

Waagepetersen, R. (2006). An estimation function approach to inference for inhomogeneous Neyman-Scott processes. Submitted.

See Also

kppm, lgcp.estK, matclust.estK, mincontrast, Kest, rThomas to simulate the fitted model.

  • thomas.estK
    u <- thomas.estK(redwood, c(kappa=10, sigma2=0.1))
Documentation reproduced from package spatstat, version 1.16-2, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.