Estimates the intensity of a point process on a linear network using a two-dimensional smoothing kernel.
densityQuick.lpp(x, sigma=NULL, ...,
kernel="gaussian",
at = c("pixels", "points"),
what = c("estimate", "se", "var"),
leaveoneout = TRUE,
diggle = FALSE,
edge2D = FALSE,
weights = NULL,
positive = FALSE)
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
.
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
or bw.lppl
.
There is a sensible default.
Additional arguments passed to as.mask
to determine the pixel resolution, or arguments passed to
sigma
if it is a function.
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.
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
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.
The argument sigma
specifies the smoothing bandwidth.
If sigma
is missing or NULL
,
the default is one-eighth of the length of the shortest side
of the bounding box of x
.
If sigma
is a function in the R language, it is assumed
to be a bandwidth selection rule, and it will be applied to x
to compute the bandwidth value.
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.
density.lpp
, the main function for density estimation
on a network.
bw.scott
, bw.scott.iso
,
bw.lppl
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"))
Run the code above in your browser using DataLab