Inhomogeneous Nearest Neighbour Function

Estimates the inhomogeneous nearest neighbour function $G$ of a non-stationary point pattern.

spatial, nonparametric
Ginhom(X, lambda = NULL, lmin = NULL, ...,
        sigma = NULL, varcov = NULL,
        r = NULL, breaks = NULL, ratio = FALSE)
The observed data point pattern, from which an estimate of the inhomogeneous $G$ function will be computed. An object of class "ppp" or in a format recognised by as.ppp()
Optional. Values of the estimated intensity function. Either a vector giving the intensity values at the points of the pattern X, a pixel image (object of class "im") giving the intensity values at all locatio
Optional. The minimum possible value of the intensity over the spatial domain. A positive numerical value.
Optional arguments passed to density.ppp to control the smoothing bandwidth, when lambda is estimated by kernel smoothing.
Extra arguments passed to as.mask to control the pixel resolution, or passed to density.ppp to control the smoothing bandwidth.
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.
An alternative to the argument r. Not normally invoked by the user. See Details.
Logical. If TRUE, the numerator and denominator of the estimate will also be saved, for use in analysing replicated point patterns.

This command computes estimates of the inhomogeneous $G$-function (van Lieshout, 2010) of a point pattern. It is the counterpart, for inhomogeneous spatial point patterns, of the nearest-neighbour distance distribution function $G$ for homogeneous point patterns computed by Gest.

The argument X should be a point pattern (object of class "ppp").

The inhomogeneous $G$ function is computed using the border correction, equation (7) in Van Lieshout (2010). The argument lambda should supply the (estimated) values of the intensity function $\lambda$ of the point process. It may be either [object Object],[object Object],[object Object],[object Object],[object Object] If lambda is a numeric vector, then its length should be equal to the number of points in the pattern X. The value lambda[i] is assumed to be the the (estimated) value of the intensity $\lambda(x_i)$ for the point $x_i$ of the pattern $X$. Each value must be a positive number; NA's are not allowed.

If lambda is a pixel image, the domain of the image should cover the entire window of the point pattern. If it does not (which may occur near the boundary because of discretisation error), then the missing pixel values will be obtained by applying a Gaussian blur to lambda using blur, then looking up the values of this blurred image for the missing locations. (A warning will be issued in this case.)

If lambda is a function, then it will be evaluated in the form lambda(x,y) where x and y are vectors of coordinates of the points of X. It should return a numeric vector with length equal to the number of points in X.

If lambda is omitted, then it will be estimated using a `leave-one-out' kernel smoother, as described in Baddeley, Moller and Waagepetersen (2000). The estimate lambda[i] for the point X[i] is computed by removing X[i] from the point pattern, applying kernel smoothing to the remaining points using density.ppp, and evaluating the smoothed intensity at the point X[i]. The smoothing kernel bandwidth is controlled by the arguments sigma and varcov, which are passed to density.ppp along with any extra arguments.


  • An object of class "fv", see fv.object, which can be plotted directly using plot.fv.


Van Lieshout, M.N.M. and Baddeley, A.J. (1996) A nonparametric measure of spatial interaction in point patterns. Statistica Neerlandica 50, 344--361.

Van Lieshout, M.N.M. (2010) A J-function for inhomogeneous point processes. Statistica Neerlandica 65, 183--201.

See Also

Finhom, Jinhom, Gest

  • Ginhom
plot(Ginhom(swedishpines, sigma=bw.diggle, adjust=2))
  plot(Ginhom(swedishpines, sigma=10))
Documentation reproduced from package spatstat, version 1.34-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.