Calculates an estimate of the cross-type pair correlation function for a multitype point pattern.

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

X

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

i

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)`

.

j

The type (mark value)
of the points in `X`

to which distances are measured.
A character string (or something that will be
converted to a character string).
Defaults to the second level of `marks(X)`

.

…

Ignored.

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.default`

.

bw

Bandwidth for smoothing kernel,
passed to `density.default`

.

stoyan

Coefficient for default bandwidth rule; see Details.

correction

Choice of edge correction.

divisor

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,j}\) has been estimated

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

The cross-type pair correlation function
is a generalisation of the pair correlation function `pcf`

to multitype point patterns.

For two locations \(x\) and \(y\) separated by a distance \(r\),
the probability \(p(r)\) of finding a point of type \(i\) at location
\(x\) and a point of type \(j\) at location \(y\) is
$$
p(r) = \lambda_i \lambda_j g_{i,j}(r) \,{\rm d}x \, {\rm d}y
$$
where \(\lambda_i\) is the intensity of the points
of type \(i\).
For a completely random Poisson marked point process,
\(p(r) = \lambda_i \lambda_j\)
so \(g_{i,j}(r) = 1\).
Indeed for any marked point pattern in which the points of type `i`

are independent of the points of type `j`

,
the theoretical value of the cross-type pair correlation is
\(g_{i,j}(r) = 1\).

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

for information
about \(K(r)\).

The command `pcfcross`

computes a kernel estimate of
the cross-type pair correlation function between marks \(i\) and
\(j\).

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) applied to the points of type `j`

. That is,
\(h = c/\sqrt{\lambda}\),
where \(\lambda\) is the (estimated) intensity of the
point process of type `j`

,
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 `pcfdot`

computes the
corresponding analogue of `Kdot`

.

Mark connection function `markconnect`

.

# NOT RUN { data(amacrine) p <- pcfcross(amacrine, "off", "on") p <- pcfcross(amacrine, "off", "on", stoyan=0.1) plot(p) # }