The pair correlation function of a stationary point process is
$$
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.

We also apply the same definition to
other variants of the classical \(K\) function,
such as the multitype \(K\) functions
(see `Kcross`

, `Kdot`

) and the
inhomogeneous \(K\) function (see `Kinhom`

).
For all these variants, the benchmark value of
\(K(r) = \pi r^2\) corresponds to
\(g(r) = 1\).

This routine computes an estimate of \(g(r)\)
either directly from a point pattern,
or indirectly from an estimate of \(K(r)\) or one of its variants.

This function is generic, with methods for
the classes `"ppp"`

, `"fv"`

and `"fasp"`

.

If `X`

is a point pattern (object of class `"ppp"`

)
then the pair correlation function is estimated using
a traditional kernel smoothing method (Stoyan and Stoyan, 1994).
See `pcf.ppp`

for details.

If `X`

is a function value table (object of class `"fv"`

),
then it is assumed to contain estimates of the \(K\) function
or one of its variants (typically obtained from `Kest`

or
`Kinhom`

).
This routine computes an estimate of \(g(r)\)
using smoothing splines to approximate the derivative.
See `pcf.fv`

for details.

If `X`

is a function value array (object of class `"fasp"`

),
then it is assumed to contain estimates of several \(K\) functions
(typically obtained from `Kmulti`

or
`alltypes`

). This routine computes
an estimate of \(g(r)\) for each cell in the array,
using smoothing splines to approximate the derivatives.
See `pcf.fasp`

for details.