spatstat (version 1.43-0)

bw.ppl: Likelihood Cross Validation Bandwidth Selection for Kernel Density

Description

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

Usage

bw.ppl(X, ..., srange=NULL, ns=16, weights=NULL)

Arguments

X
A point pattern (object of class "ppp").
...
Ignored.
srange
Optional numeric vector of length 2 giving the range of values of bandwidth to be searched.
ns
Optional integer giving the number of values of bandwidth to search.
weights
Optional. Numeric vector of weights for the points of X. Argument passed to density.ppp.

Value

  • A numerical value giving the selected bandwidth. The result also belongs to the class "bw.optim" which can be plotted.

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 maximise the point process likelihood cross-validation criterion $$\mbox{LCV}(\sigma) = \sum_i \log\hat\lambda_{-i}(x_i) - \int_W \hat\lambda(u) \, {\rm d}u$$ where the sum is taken over all the data points $x_i$, where $\hat\lambda_{-i}(x_i)$ is the leave-one-out kernel-smoothing estimate of the intensity at $x_i$ with smoothing bandwidth $\sigma$, and $\hat\lambda(u)$ is the kernel-smoothing estimate of the intensity at a spatial location $u$ with smoothing bandwidth $\sigma$. See Loader(1999, Section 5.3).

The value of $\mbox{LCV}(\sigma)$ is computed directly, using density.ppp, for ns different values of $\sigma$ between srange[1] and srange[2].

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

Loader, C. (1999) Local Regression and Likelihood. Springer, New York.

See Also

density.ppp, bw.diggle, bw.scott

Examples

Run this code
b <- bw.ppl(redwood)
    plot(b, main="Likelihood cross validation for redwoods")
    plot(density(redwood, b))
  <testonly>b <- bw.ppl(redwood, srange=c(0.03, 0.07), ns=2)</testonly>

Run the code above in your browser using DataCamp Workspace