pcf
Pair Correlation Function
Estimates the pair correlation function of a point pattern.
- Keywords
- spatial
Usage
pcf(X, ..., method="c")
Arguments
- X
- Either the observed data point pattern, or an estimate of its $K$ function, or an array of multitype $K$ functions (see Details).
- ...
- Arguments controlling the smoothing spline
function
smooth.spline
. - method
- Letter
"a"
,"b"
or"c"
indicating the method for deriving the pair correlation function from theK
function.
Details
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.
The argument X
may be either
- a point pattern for which an estimate of the pair correlation function
should be computed. This should be an object of class
"ppp"
, or in a format recognised byas.ppp()
. - an estimated$K$function,
given as a function value table (object of class
"fv"
, seefv.object
). This object should be the value returned byKest
,Kcross
,Kmulti
orKinhom
. - a function array (object of class
"fasp"
, seefasp.object
) containing several estimates of$K$functions. This should have been obtained fromalltypes
with the argumentfun="K"
.
X
is a point pattern, the $K$ function is
first estimated by Kest
.
The smoothing spline operations are performed by
smooth.spline
and predict.smooth.spline
from the modreg
library.
Three 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.
"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.
Value
- Either a function value table
(object of class
"fv"
, seefv.object
) representing a pair correlation function, or a function array (object of class"fasp"
, seefasp.object
) representing an array of pair correlation functions.If
X
is an unmarked point pattern, the return value is a function value table (class"fv"
). It is essentially a data frame containing (at least) the variables r the vector of values of the argument $r$ at which the pair correlation function $g(r)$ has been estimated pcf vector of values of $g(r)$ - If code{X} is a function value table (class
"fv"
) representing the estimated $K$ function of a point pattern (obtained fromKest
,Kinhom
orKest.fft
), then the return value is again a function value table, representing the pair correlation function.If
X
is a multitype point pattern, the return value is a function array (class"fasp"
). This can be thought of as a matrixY
each of whose entriesY[i,j]
is a function value table (class"fv"
) representing the pair correlation function between points of typei
and points of typej
.If
X
is a function array (class"fasp"
) representing an array of estimated $K$ functions (obtained fromalltypes
), the return value is another function array, containing the corresponding pair correlation functions.
References
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.
See Also
Kest
,
Kinhom
,
Kcross
,
Kdot
,
Kmulti
,
alltypes
,
smooth.spline
,
predict.smooth.spline
Examples
# univariate point pattern
data(simdat)
p <- pcf(simdat, spar=0.5, method="b")
plot(p, main="pair correlation function for simdat")
# indicates inhibition at distances r < 0.3
# multitype point pattern
data(betacells)
p <- pcf(alltypes(betacells, "K"), spar=0.5, method="b")
plot(p)
# short range inhibition between all types
# strong inhibition between "on" and "off"