Learn R Programming

spatstat.linnet (version 3.2-2)

densityfun.lpp: Kernel Estimate of Intensity on a Linear Network as a Spatial Function

Description

Computes a kernel estimate of the intensity of a point process on a linear network, and returns the intensity estimate as a function of spatial location.

Usage

# S3 method for lpp
densityfun(X, sigma, ..., weights=NULL, nsigma=1, verbose=FALSE)

Value

Function on a linear network (object of class "linfun").

If nsigma=1 (the default), the result is a function giving kernel estimate with bandwidth sigma.

If nsigma > 1, the result is a function with an additional argument k. If k is specified, the function returns the kernel estimate for bandwidth tau = sigma * sqrt(k/nsigma). If k is not specified, results are returned for all k = 1, 2, ..., nsigma.

The result also has attributes

  • attr(result, "dt") giving the time step \(\Delta t\);

  • attr(result, "dx") giving the spacing \(\Delta x\) between sample points in the numerical algorithm;

  • attr(result, "sigma") giving the smoothing bandwidth \(\sigma\) used (or the successive bandwidths used at each sampled time step, if nsigma > 1).

Arguments

X

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

sigma

Bandwidth of kernel (standard deviation of Gaussian kernel), in the same units of length as X.

...

Arguments passed to density.lpp to control the discretisation.

weights

Optional numeric vector of weights associated with the points of X.

nsigma

Integer. The number of different bandwidths for which a result should be returned. If nsigma=1 (the default), the result is a function giving kernel estimate with bandwidth sigma. If nsigma > 1, the result is a function with an additional argument k containing the kernel estimates for the nsigma+1 equally-spaced time steps from 0 to sigma^2.

verbose

Logical value indicating whether to print progress reports.

Author

Greg McSwiggan, with tweaks by Adrian Baddeley Adrian.Baddeley@curtin.edu.au.

Details

Kernel smoothing is applied to the points of X using the diffusion algorithm of McSwiggan et al (2016). The result is a function on the linear network (object of class "linfun") that can be printed, plotted and evaluated at any location.

This is a method for the generic function densityfun for the class "lpp" of point patterns on a linear network.

References

McSwiggan, G., Baddeley, A. and Nair, G. (2016) Kernel Density Estimation on a Linear Network. Scandinavian Journal of Statistics 44, 324--345.

See Also

density.lpp which returns a pixel image on the linear network.

methods.linfun for methods applicable to "linfun" objects.

Examples

Run this code
  X <- unmark(chicago)
  # single bandwidth
  g <- densityfun(X, 30)
  plot(g)
  Y <- X[1:5]
  g(Y)
  # weighted
  gw <- densityfun(X, 30, weights=runif(npoints(X)))
  # sequence of bandwidths 
  g10 <- densityfun(X, 30, nsigma=10)
  g10(Y, k=10)
  g10(Y)
  plot(as.linim(g10, k=5))

Run the code above in your browser using DataLab