densityQuick.lpp: Kernel Estimation of Intensity on a Network using a 2D Kernel

View source: R/quickndirty.R

densityQuick.lppR Documentation

Kernel Estimation of Intensity on a Network using a 2D Kernel


Estimates the intensity of a point process on a linear network using a two-dimensional smoothing kernel.


densityQuick.lpp(X, sigma=NULL, ...,
         at = c("pixels", "points"),
         what = c("estimate", "se", "var"),
         leaveoneout = TRUE,
         diggle = FALSE,
         edge2D = FALSE,
         weights = NULL,
         positive = FALSE)



Point pattern on a linear network (object of class "lpp").


Smoothing bandwidth. A single numeric value, in the same units as the coordinates of X. Alternatively sigma may be a function which selects a bandwidth when applied to X, for example, bw.scott.iso.


Additional arguments passed to as.mask to determine the pixel resolution.


String (partially matched) specifying the smoothing kernel. Current options are "gaussian", "epanechnikov", "quartic" or "disc".


String (partially matched) specifying whether to compute the intensity values at a fine grid of locations on the network (at="pixels", the default) or only at the points of x (at="points").


String (partially matched) specifying whether to calculate the intensity estimate, or its estimated standard error, or its estimated variance.


Logical value indicating whether to compute a leave-one-out estimator. Applicable only when at="points".


Logical value specifying whether to use the ‘Diggle’ correction.


Logical value specifying whether to apply the usual two-dimensional edge correction procedure to the numerator and denominator of the estimate.


Optional weights to be attached to the points. A numeric vector, an expression, or a pixel image.


Logical value indicating whether to force the resulting values to be positive. Default is FALSE for the sake of speed.


Kernel smoothing is applied to the points of x using a two-dimensional Gaussian kernel, as described in Rakshit et al (2019). The result is a pixel image on the linear network (class "linim") which can be plotted.

Other techniques for kernel smoothing on a network are implemented in density.lpp. The main advantages of using a two-dimensional kernel are very fast computation and insensitivity to changes in the network geometry. The main disadvantage is that it ignores the connectivity of the network. See Rakshit et al (2019) for further explanation.


If at="pixels" (the default), a pixel image on the linear network (object of class "linim").

If at="points", a numeric vector with one entry for each point of x.

Infinite bandwidth

If sigma=Inf, the resulting density estimate is constant over all locations, and is equal to the average density of points per unit length. (If the network is not connected, then this rule is applied separately to each connected component of the network).


Adrian Baddeley, Suman Rakshit and Tilman Davies


Rakshit, S., Davies, T., Moradi, M., McSwiggan, G., Nair, G., Mateu, J. and Baddeley, A. (2019) Fast kernel smoothing of point patterns on a large network using 2D convolution. International Statistical Review 87 (3) 531–556. DOI: 10.1111/insr.12327.

See Also

density.lpp, the main function for density estimation on a network.

bw.scott, bw.scott.iso for bandwidth selection.


   X <- unmark(chicago)
   plot(densityQuick.lpp(X, 500))
   plot(densityQuick.lpp(X, 500, diggle=TRUE))
   plot(densityQuick.lpp(X, bw.scott.iso))
   plot(densityQuick.lpp(X, 500, what="se"))

spatstat.linnet documentation built on March 18, 2022, 6:40 p.m.