Learn R Programming

spatstat.explore (version 3.5-3)

bw.diggle: Cross Validated Bandwidth Selection for Kernel Density

Description

Uses cross-validation to select a smoothing bandwidth for the kernel estimation of point process intensity.

Usage

bw.diggle(X, ..., correction="good", hmax=NULL, nr=512, warn=TRUE)

Arguments

Value

A single numerical value giving the selected bandwidth. The result also belongs to the class "bw.optim"

(see bw.optim.object) which can be plotted to show the bandwidth selection criterion as a function of sigma.

Details

This function selects an appropriate bandwidth sigma for the kernel estimator of point process intensity computed by density.ppp.

The bandwidth \(\sigma\) is chosen to minimise the mean-square error criterion defined by Diggle (1985). The algorithm uses the method of Berman and Diggle (1989) to compute the quantity $$ M(\sigma) = \frac{\mbox{MSE}(\sigma)}{\lambda^2} - g(0) $$ as a function of bandwidth \(\sigma\), where \(\mbox{MSE}(\sigma)\) is the mean squared error at bandwidth \(\sigma\), while \(\lambda\) is the mean intensity, and \(g\) is the pair correlation function. See Diggle (2003, pages 115-118) for a summary of this method.

The result is a numerical value giving the selected bandwidth. The result also belongs to the class "bw.optim" which can be plotted to show the (rescaled) mean-square error as a function of sigma.

References

Berman, M. and Diggle, P. (1989) Estimating weighted integrals of the second-order intensity of a spatial point process. Journal of the Royal Statistical Society, series B 51, 81--92.

Diggle, P.J. (1985) A kernel method for smoothing point process data. Applied Statistics (Journal of the Royal Statistical Society, Series C) 34 (1985) 138--147.

Diggle, P.J. (2003) Statistical analysis of spatial point patterns, Second edition. Arnold.

See Also

density.ppp, bw.optim.object.

Alternative methods: bw.ppl, bw.scott, bw.CvL, bw.frac.

Examples

Run this code
  attach(split(lansing))
  b <- bw.diggle(hickory)
  plot(b, ylim=c(-2, 0), main="Cross validation for hickories")
  if(interactive()) {
   plot(density(hickory, b))
  }

Run the code above in your browser using DataLab