# Kest

##### K-function

Estimates the reduced second moment function $K(r)$ from a point pattern in a window of arbitrary shape.

- Keywords
- spatial, nonparametric

##### Usage

```
Kest(X, ..., r, correction=c("border", "isotropic", "Ripley", "translate"),
nlarge=3000)
```

##### Arguments

- X
- The observed point pattern,
from which an estimate of $K(r)$ will be computed.
An object of class
`"ppp"`

, or data in any format acceptable to`as.ppp()`

. - ...
- Ignored.
- r
- Optional. Vector of values for the argument $r$ at which $K(r)$ should be evaluated. There is a sensible default.
- correction
- Optional. A character vector containing any selection of the
options
`"border"`

,`"bord.modif"`

,`"isotropic"`

,`"Ripley"`

or`"translate"`

. It specifies the edge correction(s) to be appli - nlarge
- Optional. Efficiency threshold.
If the number of points exceeds
`nlarge`

, then only the border correction will be computed, using a fast algorithm.

##### Details

The $K$ function (variously called ``Ripley's K-function''
and the ``reduced second moment function'')
of a stationary point process $X$ is defined so that
$\lambda K(r)$ equals the expected number of
additional random points within a distance $r$ of a
typical random point of $X$. Here $\lambda$
is the intensity of the process,
i.e. the expected number of points of $X$ per unit area.
The $K$ function is determined by the
second order moment properties of $X$.
An estimate of $K$ derived from a spatial point pattern dataset
can be used in exploratory data analysis and formal inference
about the pattern (Cressie, 1991; Diggle, 1983; Ripley, 1988).
In exploratory analyses, the estimate of $K$ is a useful statistic
summarising aspects of inter-point ``dependence'' and ``clustering''.
For inferential purposes, the estimate of $K$ is usually compared to the
true value of $K$ for a completely random (Poisson) point process,
which is $K(r) = \pi r^2$.
Deviations between the empirical and theoretical $K$ curves
may suggest spatial clustering or spatial regularity.
This routine `Kest`

estimates the $K$ function
of a stationary point process, given observation of the process
inside a known, bounded window.
The argument `X`

is interpreted as a point pattern object
(of class `"ppp"`

, see `ppp.object`

) and can
be supplied in any of the formats recognised by
`as.ppp()`

.

The estimation of $K$ is hampered by edge effects arising from
the unobservability of points of the random pattern outside the window.
An edge correction is needed to reduce bias (Baddeley, 1998; Ripley, 1988).
The corrections implemented here are
[object Object],[object Object],[object Object]
Note that the estimator assumes the process is stationary (spatially
homogeneous). For inhomogeneous point patterns, see
`Kinhom`

.

If the point pattern `X`

contains more than about 3000 points,
the isotropic and translation edge corrections can be computationally
prohibitive. The computations for the border method are much faster,
and are statistically efficient when there are large numbers of
points. Accordingly, if the number of points in `X`

exceeds
the threshold `nlarge`

, then only the border correction will be
computed. Setting `nlarge=Inf`

will prevent this from happening.
Setting `nlarge=0`

is equivalent to selecting only the border
correction with `correction="border"`

.

The estimator `Kest`

ignores marks.
Its counterparts for multitype point patterns
are `Kcross`

, `Kdot`

,
and for general marked point patterns
see `Kmulti`

.

Some writers, particularly Stoyan (1994, 1995) advocate the use of
the ``pair correlation function''
$$g(r) = \frac{K'(r)}{2\pi r}$$
where $K'(r)$ is the derivative of $K(r)$.
See `pcf`

on how to estimate this function.

##### Value

- An object of class
`"fv"`

, see`fv.object`

, which can be plotted directly using`plot.fv`

.Essentially a data frame containing columns

r the vector of values of the argument $r$ at which the function $K$ has been estimated theo the theoretical value $K(r) = \pi r^2$ for a stationary Poisson process - together with columns named
`"border"`

,`"bord.modif"`

,`"iso"`

and/or`"trans"`

, according to the selected edge corrections. These columns contain estimates of the function $K(r)$ obtained by the edge corrections named.

##### synopsis

Kest(X, ..., r=NULL, breaks=NULL, correction=c("border", "isotropic", "Ripley", "translate"), nlarge=3000)

##### Warnings

The estimator of $K(r)$ is approximately unbiased for each fixed $r$. Bias increases with $r$ and depends on the window geometry. For a rectangular window it is prudent to restrict the $r$ values to a maximum of $1/4$ of the smaller side length of the rectangle. Bias may become appreciable for point patterns consisting of fewer than 15 points. While $K(r)$ is always a non-decreasing function, the estimator of $K$ is not guaranteed to be non-decreasing. This is rarely a problem in practice.

##### References

Baddeley, A.J. Spatial sampling and censoring.
In O.E. Barndorff-Nielsen, W.S. Kendall and
M.N.M. van Lieshout (eds)
*Stochastic Geometry: Likelihood and Computation*.
Chapman and Hall, 1998.
Chapter 2, pages 37--78.
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.

Ohser, J. (1983)
On estimators for the reduced second moment measure of
point processes. *Mathematische Operationsforschung und
Statistik, series Statistics*, **14**, 63 -- 71.
Ripley, B.D. *Statistical inference for spatial processes*.
Cambridge University Press, 1988.

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

`Fest`

,
`Gest`

,
`Jest`

,
`pcf`

,
`reduced.sample`

,
`Kcross`

,
`Kdot`

,
`Kinhom`

,
`Kmulti`

##### Examples

```
pp <- runifpoint(50)
K <- Kest(pp)
data(cells)
K <- Kest(cells, correction="isotropic")
plot(K)
plot(K, main="K function for cells")
# plot the L function
plot(K, sqrt(iso/pi) ~ r)
plot(K, sqrt(./pi) ~ r, ylab="L(r)", main="L function for cells")
```

*Documentation reproduced from package spatstat, version 1.9-3, License: GPL version 2 or newer*