# Kmulti

##### Marked K-Function

For a marked point pattern,
estimate the multitype \(K\) function
which counts the expected number of points of subset \(J\)
within a given distance from a typical point in subset `I`

.

- Keywords
- spatial, nonparametric

##### Usage

`Kmulti(X, I, J, r=NULL, breaks=NULL, correction, …, ratio=FALSE)`

##### Arguments

- X
The observed point pattern, from which an estimate of the multitype \(K\) function \(K_{IJ}(r)\) will be computed. It must be a marked point pattern. See under Details.

- I
Subset index specifying the points of

`X`

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

`X`

to which distances are measured. See Details.- r
numeric vector. The values of the argument \(r\) at which the multitype \(K\) function \(K_{IJ}(r)\) should be evaluated. There is a sensible default. First-time users are strongly advised not to specify this argument. See below for important conditions on \(r\).

- breaks
This argument is for internal use only.

- correction
A character vector containing any selection of the options

`"border"`

,`"bord.modif"`

,`"isotropic"`

,`"Ripley"`

,`"translate"`

,`"translation"`

,`"none"`

or`"best"`

. It specifies the edge correction(s) to be applied. Alternatively`correction="all"`

selects all options.- …
Ignored.

- ratio
Logical. If

`TRUE`

, the numerator and denominator of each edge-corrected estimate will also be saved, for use in analysing replicated point patterns.

##### Details

The function `Kmulti`

generalises `Kest`

(for unmarked point
patterns) and `Kdot`

and `Kcross`

(for
multitype point patterns) to arbitrary marked point patterns.

Suppose \(X_I\), \(X_J\) are subsets, possibly overlapping, of a marked point process. The multitype \(K\) function is defined so that \(\lambda_J K_{IJ}(r)\) equals the expected number of additional random points of \(X_J\) within a distance \(r\) of a typical point of \(X_I\). Here \(\lambda_J\) is the intensity of \(X_J\) i.e. the expected number of points of \(X_J\) per unit area. The function \(K_{IJ}\) is determined by the second order moment properties of \(X\).

The argument `X`

must be a point pattern (object of class
`"ppp"`

) or any data that are acceptable to `as.ppp`

.

The arguments `I`

and `J`

specify two subsets of the
point pattern. 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 argument `r`

is the vector of values for the
distance \(r\) at which \(K_{IJ}(r)\) should be evaluated.
It is also used to determine the breakpoints
(in the sense of `hist`

)
for the computation of histograms of distances.

First-time users would be strongly advised not to specify `r`

.
However, if it is specified, `r`

must satisfy `r[1] = 0`

,
and `max(r)`

must be larger than the radius of the largest disc
contained in the window.

This algorithm assumes that `X`

can be treated
as a realisation of a stationary (spatially homogeneous)
random spatial point process in the plane, observed through
a bounded window.
The window (which is specified in `X`

as `Window(X)`

)
may have arbitrary shape.

Biases due to edge effects are
treated in the same manner as in `Kest`

.
The edge corrections implemented here are

- border
the border method or ``reduced sample'' estimator (see Ripley, 1988). This is the least efficient (statistically) and the fastest to compute. It can be computed for a window of arbitrary shape.

- isotropic/Ripley
Ripley's isotropic correction (see Ripley, 1988; Ohser, 1983). This is currently implemented only for rectangular and polygonal windows.

- translate
Translation correction (Ohser, 1983). Implemented for all window geometries.

The pair correlation function `pcf`

can also be applied to the
result of `Kmulti`

.

##### Value

An object of class `"fv"`

(see `fv.object`

).

Essentially a data frame containing numeric columns

the values of the argument \(r\) at which the function \(K_{IJ}(r)\) has been estimated

the theoretical value of \(K_{IJ}(r)\) for a marked Poisson process, namely \(\pi r^2\)

If ratio=TRUE then the return value also has two attributes called "numerator" and "denominator" which are "fv" objects containing the numerators and denominators of each estimate of K(r).

##### Warnings

The function \(K_{IJ}\) is not necessarily differentiable.

The border correction (reduced sample) estimator of \(K_{IJ}\) used here is pointwise approximately unbiased, but need not be a nondecreasing function of \(r\), while the true \(K_{IJ}\) must be nondecreasing.

##### References

Cressie, N.A.C. *Statistics for spatial data*.
John Wiley and Sons, 1991.

Diggle, P.J. *Statistical analysis of spatial point patterns*.
Academic Press, 1983.

Diggle, P. J. (1986).
Displaced amacrine cells in the retina of a
rabbit : analysis of a bivariate spatial point pattern.
*J. Neurosci. Meth.* **18**, 115--125.

Harkness, R.D and Isham, V. (1983)
A bivariate spatial point pattern of ants' nests.
*Applied Statistics* **32**, 293--303

Lotwick, H. W. and Silverman, B. W. (1982).
Methods for analysing spatial processes of several types of points.
*J. Royal Statist. Soc. Ser. B* **44**, 406--413.

Ripley, B.D. *Statistical inference for spatial processes*.
Cambridge University Press, 1988.

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

Van Lieshout, M.N.M. and Baddeley, A.J. (1999)
Indices of dependence between types in multivariate point patterns.
*Scandinavian Journal of Statistics* **26**, 511--532.

##### See Also

##### Examples

```
# NOT RUN {
# Longleaf Pine data: marks represent diameter
trees <- longleaf
# }
# NOT RUN {
K <- Kmulti(trees, marks(trees) <= 15, marks(trees) >= 25)
plot(K)
# functions determining subsets
f1 <- function(X) { marks(X) <= 15 }
f2 <- function(X) { marks(X) >= 15 }
K <- Kmulti(trees, f1, f2)
# }
```

*Documentation reproduced from package spatstat, version 1.63-3, License: GPL (>= 2)*