spatstat.core (version 2.1-2)

pcfdot: Multitype pair correlation function (i-to-any)


Calculates an estimate of the multitype pair correlation function (from points of type i to points of any type) for a multitype point pattern.


pcfdot(X, i, ..., r = NULL,
         kernel = "epanechnikov", bw = NULL, stoyan = 0.15,
         correction = c("isotropic", "Ripley", "translate"),
         divisor = c("r", "d"))



The observed point pattern, from which an estimate of the dot-type pair correlation function \(g_{i\bullet}(r)\) will be computed. It must be a multitype point pattern (a marked point pattern whose marks are a factor).


The type (mark value) of the points in X from which distances are measured. A character string (or something that will be converted to a character string). Defaults to the first level of marks(X).



Vector of values for the argument \(r\) at which \(g(r)\) should be evaluated. There is a sensible default.


Choice of smoothing kernel, passed to density.default.


Bandwidth for smoothing kernel, passed to density.default.


Coefficient for default bandwidth rule; see Details.


Choice of edge correction.


Choice of divisor in the estimation formula: either "r" (the default) or "d". See Details.


An object of class "fv", see fv.object, which can be plotted directly using plot.fv.

Essentially a data frame containing columns


the vector of values of the argument \(r\) at which the function \(g_{i\bullet}\) has been estimated


the theoretical value \(g_{i\bullet}(r) = 1\) for independent marks.

together with columns named "border", "bord.modif", "iso" and/or "trans", according to the selected edge corrections. These columns contain estimates of the function g_{i,j}g[i,j] obtained by the edge corrections named.


This is a generalisation of the pair correlation function pcf to multitype point patterns.

For two locations \(x\) and \(y\) separated by a nonzero distance \(r\), the probability \(p(r)\) of finding a point of type \(i\) at location \(x\) and a point of any type at location \(y\) is $$ p(r) = \lambda_i \lambda g_{i\bullet}(r) \,{\rm d}x \, {\rm d}y $$ where \(\lambda\) is the intensity of all points, and \(\lambda_i\) is the intensity of the points of type \(i\). For a completely random Poisson marked point process, \(p(r) = \lambda_i \lambda\) so \(g_{i\bullet}(r) = 1\).

For a stationary multitype point process, the type-i-to-any-type pair correlation function between marks \(i\) and \(j\) is formally defined as $$ g_{i\bullet}(r) = \frac{K_{i\bullet}^\prime(r)}{2\pi r} $$ where \(K_{i\bullet}^\prime\) is the derivative of the type-i-to-any-type \(K\) function \(K_{i\bullet}(r)\). of the point process. See Kdot for information about \(K_{i\bullet}(r)\).

The command pcfdot computes a kernel estimate of the multitype pair correlation function from points of type \(i\) to points of any type.

  • If divisor="r" (the default), then the multitype counterpart of the standard kernel estimator (Stoyan and Stoyan, 1994, pages 284--285) is used. By default, the recommendations of Stoyan and Stoyan (1994) are followed exactly.

  • If divisor="d" then a modified estimator is used: the contribution from an interpoint distance \(d_{ij}\) to the estimate of \(g(r)\) is divided by \(d_{ij}\) instead of dividing by \(r\). This usually improves the bias of the estimator when \(r\) is close to zero.

There is also a choice of spatial edge corrections (which are needed to avoid bias due to edge effects associated with the boundary of the spatial window): correction="translate" is the Ohser-Stoyan translation correction, and correction="isotropic" or "Ripley" is Ripley's isotropic correction.

The choice of smoothing kernel is controlled by the argument kernel which is passed to density. The default is the Epanechnikov kernel.

The bandwidth of the smoothing kernel can be controlled by the argument bw. Its precise interpretation is explained in the documentation for density.default. For the Epanechnikov kernel with support \([-h,h]\), the argument bw is equivalent to \(h/\sqrt{5}\).

If bw is not specified, the default bandwidth is determined by Stoyan's rule of thumb (Stoyan and Stoyan, 1994, page 285). That is, \(h = c/\sqrt{\lambda}\), where \(\lambda\) is the (estimated) intensity of the unmarked point process, and \(c\) is a constant in the range from 0.1 to 0.2. The argument stoyan determines the value of \(c\).

The companion function pcfcross computes the corresponding analogue of Kcross.

See Also

Mark connection function markconnect.

Multitype pair correlation pcfcross, pcfmulti.

Pair correlation pcf,pcf.ppp.



 p <- pcfdot(amacrine, "on")
 p <- pcfdot(amacrine, "on", stoyan=0.1)
# }