Learn R Programming

spatstat.linnet (version 3.5-0)

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)

Arguments

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).

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