Inhomogeneous K-function

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

Kinhom(X, lambda)
  Kinhom(X, lambda, r)
  Kinhom(X, lambda, breaks)
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()
Vector of values of the estimated intensity function, evaluated at the points of the pattern X
vector of values for the argument $r$ at which the inhomogeneous $K$ function should be evaluated. There is a sensible default.

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 must 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$.

The pair correlation function can also be applied to the result of Kinhom; see pcf.


  • A data frame containing
  • rthe vector of values of the argument $r$ at which the pair correlation function $g(r)$ has been estimated
  • Kvector of values of $K_{\rm inhom}(r)$
  • theovector of values of $\pi r^2$, the theoretical value of $K_{\rm inhom}(r)$ for an inhomogeneous Poisson process


Kinhom(X, lambda, r = NULL, breaks = NULL)


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

Kest, pcf

  • Kinhom

  # 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 <- mpl(X, ~ polynom(x,y,2), Poisson())
  # predict intensity values at points themselves
  lambda <- predict(fit, newdata=data.frame(x=X$x, y=X$y), type="trend")
  # inhomogeneous K function
  Ki <- Kinhom(X, lambda)
  conspire(Ki, cbind(K, theo) ~ r, subset="r <= 0.4")

  # 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)
  conspire(Ki, cbind(K, theo) ~ r, subset="r <= 0.2")
Documentation reproduced from package spatstat, version 1.2-1, License: GPL version 2 or newer

Community examples

Looks like there are no examples yet.