# Kinhom

##### Inhomogeneous K-function

Estimates the inhomogeneous $K$ function of a non-stationary point pattern.

- Keywords
- spatial

##### Usage

```
Kinhom(X, lambda, r = NULL, breaks = NULL, slow = FALSE,
correction=c("border", "isotropic", "Ripley", "translate"), ...)
```

##### Arguments

- X
- The observed data point pattern,
from which an estimate of the inhomogeneous $K$ function
will be computed.
An object of class
`"ppp"`

or in a format recognised by`as.ppp()`

- lambda
- Vector of values of the estimated intensity function,
evaluated at the points of the pattern
`X`

. Alternatively this may be a matrix: see Details. - r
- vector of values for the argument $r$ at which the inhomogeneous $K$ function should be evaluated. Not normally given by the user; there is a sensible default.
- breaks
- An alternative to the argument
`r`

. Not normally invoked by the user. See Details. - slow
- Not normally given by the user.
Logical flag which selects the algorithm used to compute the
inhomogeneous $K$ function. The default (
`slow=FALSE`

) is faster than the alternative (`slow=TRUE`

). The slow algorithm is - correction
- A character vector containing any selection of the
options
`"border"`

,`"bord.modif"`

,`"isotropic"`

,`"Ripley"`

or`"translate"`

. It specifies the edge correction(s) to be applied. - ...
- Currently ignored.

##### Details

This computes a generalisation of the $K$ function
for inhomogeneous point patterns, proposed by
Baddeley, Moller and Waagepetersen (2000).
The ``ordinary'' $K$ function
(variously known as the reduced second order moment function
and Ripley's $K$ function), is
described under `Kest`

. It is defined only
for stationary point processes.
The inhomogeneous $K$ function
$K_{\rm inhom}(r)$
is a direct generalisation to nonstationary point processes.
Suppose $x$ is a point process with non-constant intensity
$\lambda(u)$ at each location $u$.
Define $K_{\rm inhom}(r)$ to be the expected
value, given that $u$ is a point of $x$,
of the sum of all terms
$1/\lambda(u)\lambda(x_j)$
over all points $x_j$
in the process separated from $u$ by a distance less than $r$.
This reduces to the ordinary $K$ function if
$\lambda()$ is constant.
If $x$ is an inhomogeneous Poisson process with intensity
function $\lambda(u)$, then
$K_{\rm inhom}(r) = \pi r^2$.

This allows us to inspect a point pattern for evidence of interpoint interactions after allowing for spatial inhomogeneity of the pattern. Values $K_{\rm inhom}(r) > \pi r^2$ are suggestive of clustering.

The argument `lambda`

should be a vector of length equal to the
number of points in the pattern `X`

. It will be interpreted as
giving the (estimated) values of $\lambda(x_i)$ for
each point $x_i$ of the pattern $x$.

Alternatively `lambda`

may be a square matrix of dimensions
$n \times n$ where $n$ is the number of points in
`X`

. In this case `lambda[i,j]`

will be interpreted
as an estimate of
$\lambda(x_i)\lambda(x_j)$.

Edge corrections are used to correct bias in the estimation
of $K_{\rm inhom}$, in exactly the same way
as for the classical $K$ function.
See the documentation for `Kest`

.
The pair correlation function can also be applied to the
result of `Kinhom`

; see `pcf`

.

##### Value

- An object of class
`"fv"`

(see`fv.object`

). Essentially a data frame containing at least the following columns, r the vector of values of the argument $r$ at which the pair correlation function $g(r)$ has been estimated theo vector of values of $\pi r^2$, the theoretical value of $K_{\rm inhom}(r)$ for an inhomogeneous Poisson process - and containing additional columns
according to the choice specified in the
`correction`

argument. The additional columns are named`border`

,`trans`

and`iso`

and give the estimated values of $K_{\rm inhom}(r)$ using the border correction, translation correction, and Ripley isotropic correction, respectively.

##### References

Baddeley, A., Moller, J. and Waagepetersen, R. (2000)
Non- and semiparametric estimation of interaction in
inhomogeneous point patterns.
*Statistica Neerlandica* **54**, 329--350.

##### See Also

##### Examples

```
data(lansing)
# inhomogeneous pattern of maples
X <- unmark(lansing[lansing$marks == "maple",])
<testonly>sub <- sample(c(TRUE,FALSE), X$n, replace=TRUE, prob=c(0.1,0.9))
X <- X[sub , ]</testonly>
# fit spatial trend
fit <- ppm(X, ~ polynom(x,y,2), Poisson())
# predict intensity values at points themselves
lambda <- predict(fit, locations=X, type="trend")
# inhomogeneous K function
Ki <- Kinhom(X, lambda)
plot(Ki)
# SIMULATED DATA
# known intensity function
lamfun <- function(x,y) { 100 * x }
# inhomogeneous Poisson process
Y <- rpoispp(lamfun, 100, owin())
# evaluate intensity at points of pattern
lambda <- lamfun(Y$x, Y$y)
# inhomogeneous K function
Ki <- Kinhom(Y, lambda)
plot(Ki)
```

*Documentation reproduced from package spatstat, version 1.5-5, License: GPL version 2 or newer*