spatstat (version 1.23-5)

pcf.ppp: Pair Correlation Function of Point Pattern

Description

Estimates the pair correlation function of a point pattern using kernel methods.

Usage

## S3 method for class 'ppp':
pcf(X, \dots, r = NULL, kernel="epanechnikov", bw=NULL, stoyan=0.15,
                    correction=c("translate", "Ripley"))

Arguments

X
A point pattern (object of class "ppp").
r
Vector of values for the argument $r$ at which $g(r)$ should be evaluated. There is a sensible default.
kernel
Choice of smoothing kernel, passed to density.
bw
Bandwidth for smoothing kernel, passed to density.
...
Other arguments passed to the kernel density estimation function density.
stoyan
Bandwidth coefficient; see Details.
correction
Choice of edge correction.

Value

  • A function value table (object of class "fv"). Essentially a data frame containing the variables
  • rthe vector of values of the argument $r$ at which the pair correlation function $g(r)$ has been estimated
  • theovector of values equal to 1, the theoretical value of $g(r)$ for the Poisson process
  • transvector of values of $g(r)$ estimated by translation correction
  • isovector of values of $g(r)$ estimated by Ripley isotropic correction
  • as required.

Details

The pair correlation function $g(r)$ is a summary of the dependence between points in a spatial point process. The best intuitive interpretation is the following: the probability $p(r)$ of finding two points at locations $x$ and $y$ separated by a distance $r$ is equal to $$p(r) = \lambda^2 g(r) \,{\rm d}x \, {\rm d}y$$ where $\lambda$ is the intensity of the point process. For a completely random (uniform Poisson) process, $p(r) = \lambda^2$ so $g(r) = 1$.

Formally, the pair correlation function of a stationary point process is defined by $$g(r) = \frac{K'(r)}{2\pi r}$$ where $K'(r)$ is the derivative of $K(r)$, the reduced second moment function (aka ``Ripley's $K$ function'') of the point process. See Kest for information about $K(r)$.

For a stationary Poisson process, the pair correlation function is identically equal to 1. Values $g(r) < 1$ suggest inhibition between points; values greater than 1 suggest clustering.

This routine computes an estimate of $g(r)$ by the kernel smoothing method (Stoyan and Stoyan (1994), pages 284--285). By default, their recommendations are followed exactly.

If correction="translate" then the translation correction is used. The estimate is given in equation (15.15), page 284 of Stoyan and Stoyan (1994).

If correction="Ripley" then Ripley's isotropic edge correction is used; the estimate is given in equation (15.18), page 285 of Stoyan and Stoyan (1994).

If correction=c("translate", "Ripley") then both estimates will be computed.

The choice of smoothing kernel is controlled by the argument kernel which is passed to density. The default is the Epanechnikov kernel, recommended by Stoyan and Stoyan (1994, page 285).

The bandwidth of the smoothing kernel can be controlled by the argument bw. Its precise interpretation is explained in the documentation for density. For the Epanechnikov kernel, the argument bw is equivalent to $h/\sqrt{5}$.

Stoyan and Stoyan (1994, page 285) recommend using the Epanechnikov kernel with support $[-h,h]$ chosen by the rule of thumn $h = c/\sqrt{\lambda}$, where $\lambda$ is the (estimated) intensity of the point process, and $c$ is a constant in the range from 0.1 to 0.2. See equation (15.16). If bw is missing, then this rule of thumb will be applied. The argument stoyan determines the value of $c$.

The argument r is the vector of values for the distance $r$ at which $g(r)$ should be evaluated. There is a sensible default. If it is specified, r must be a vector of increasing numbers starting from r[1] = 0, and max(r) must not exceed half the diameter of the window.

References

Stoyan, D. and Stoyan, H. (1994) Fractals, random shapes and point fields: methods of geometrical statistics. John Wiley and Sons.

See Also

Kest, pcf, density

Examples

Run this code
data(simdat)
  <testonly>simdat <- simdat[seq(1,simdat$n, by=4)]</testonly>
  p <- pcf(simdat)
  plot(p, main="pair correlation function for simdat")
  # indicates inhibition at distances r < 0.3

Run the code above in your browser using DataCamp Workspace