Estimates the pair correlation function of a point pattern, given an estimate of the K function.

```
# S3 method for fv
pcf(X, …, method="c")
```

X

An estimate of the \(K\) function
or one of its variants.
An object of class `"fv"`

.

…

Arguments controlling the smoothing spline
function `smooth.spline`

.

method

Letter `"a"`

, `"b"`

, `"c"`

or `"d"`

indicating the
method for deriving the pair correlation function from the
`K`

function.

A function value table
(object of class `"fv"`

, see `fv.object`

)
representing a pair correlation function.

Essentially a data frame containing (at least) the variables

the vector of values of the argument \(r\) at which the pair correlation function \(g(r)\) has been estimated

vector of values of \(g(r)\)

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)\)
from an estimate of \(K(r)\) or its variants,
using smoothing splines to approximate the derivative.
It is a method for the generic function `pcf`

for the class `"fv"`

.

The argument `X`

should be an estimated \(K\) function,
given as a function value table (object of class `"fv"`

,
see `fv.object`

).
This object should be the value returned by
`Kest`

, `Kcross`

, `Kmulti`

or `Kinhom`

.

The smoothing spline operations are performed by
`smooth.spline`

and `predict.smooth.spline`

from the `modreg`

library.
Four numerical methods are available:

**"a"**apply smoothing to \(K(r)\), estimate its derivative, and plug in to the formula above;**"b"**apply smoothing to \(Y(r) = \frac{K(r)}{2 \pi r}\) constraining \(Y(0) = 0\), estimate the derivative of \(Y\), and solve;**"c"**apply smoothing to \(Z(r) = \frac{K(r)}{\pi r^2}\) constraining \(Z(0)=1\), estimate its derivative, and solve.**"d"**apply smoothing to \(V(r) = \sqrt{K(r)}\), estimate its derivative, and solve.

Method `"c"`

seems to be the best at
suppressing variability for small values of \(r\).
However it effectively constrains \(g(0) = 1\).
If the point pattern seems to have inhibition at small distances,
you may wish to experiment with method `"b"`

which effectively
constrains \(g(0)=0\). Method `"a"`

seems
comparatively unreliable.

Useful arguments to control the splines
include the smoothing tradeoff parameter `spar`

and the degrees of freedom `df`

. See `smooth.spline`

for details.

Stoyan, D, Kendall, W.S. and Mecke, J. (1995)
*Stochastic geometry and its applications*.
2nd edition. Springer Verlag.

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

`pcf`

,
`pcf.ppp`

,
`Kest`

,
`Kinhom`

,
`Kcross`

,
`Kdot`

,
`Kmulti`

,
`alltypes`

,
`smooth.spline`

,
`predict.smooth.spline`

```
# NOT RUN {
# univariate point pattern
X <- simdat
# }
# NOT RUN {
K <- Kest(X)
p <- pcf.fv(K, spar=0.5, method="b")
plot(p, main="pair correlation function for simdat")
# indicates inhibition at distances r < 0.3
# }
```

Run the code above in your browser using DataLab