For a marked point pattern, estimate the multitype pair correlation function using kernel methods.

```
pcfmulti(X, I, J, ..., r = NULL,
kernel = "epanechnikov", bw = NULL, stoyan = 0.15,
correction = c("translate", "Ripley"),
divisor = c("r", "d"),
Iname = "points satisfying condition I",
Jname = "points satisfying condition J")
```

An object of class `"fv"`

.

- 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
Subset index specifying the points of

`X`

from which distances are measured.- J
Subset index specifying the points in

`X`

to which distances are measured.- ...
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.

- correction
Choice of edge correction.

- divisor
Choice of divisor in the estimation formula: either

`"r"`

(the default) or`"d"`

.- Iname,Jname
Optional. Character strings describing the members of the subsets

`I`

and`J`

.

Adrian Baddeley Adrian.Baddeley@curtin.edu.au

and Rolf Turner r.turner@auckland.ac.nz

This is a generalisation of `pcfcross`

to arbitrary collections of points.

The algorithm measures the distance from each data point
in subset `I`

to each data point in subset `J`

,
excluding identical pairs of points. The distances are
kernel-smoothed and renormalised to form a pair correlation
function.

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 arguments `I`

and `J`

specify two subsets of the
point pattern `X`

. They may be any type of subset indices, for example,
logical vectors of length equal to `npoints(X)`

,
or integer vectors with entries in the range 1 to
`npoints(X)`

, or negative integer vectors.

Alternatively, `I`

and `J`

may be **functions**
that will be applied to the point pattern `X`

to obtain
index vectors. If `I`

is a function, then evaluating
`I(X)`

should yield a valid subset index. This option
is useful when generating simulation envelopes using
`envelope`

.

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\).

`pcfcross`

,
`pcfdot`

,
`pcf.ppp`

.

```
adult <- (marks(longleaf) >= 30)
juvenile <- !adult
p <- pcfmulti(longleaf, adult, juvenile)
```

Run the code above in your browser using DataLab