# bw.ppl

##### Likelihood Cross Validation Bandwidth Selection for Kernel Density

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, sigma=NULL, weights=NULL,
shortcut=FALSE, warn=TRUE)
```

##### Arguments

- X
A point pattern (object of class

`"ppp"`

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

- sigma
Optional. Vector of values of the bandwidth to be searched. Overrides the values of

`ns`

and`srange`

.- weights
Optional. Numeric vector of weights for the points of

`X`

. Argument passed to`density.ppp`

.- …
Additional arguments passed to

`density.ppp`

.- shortcut
Logical value indicating whether to speed up the calculation by omitting the integral term in the cross-validation criterion.

- warn
Logical. If

`TRUE`

, issue a warning if the maximum of the cross-validation criterion occurs at one of the ends of the search interval.

##### 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`

.

If `shortcut=TRUE`

, the computation is accelerated by
omitting the integral term in the equation above. This is valid
because the integral is approximately constant.

##### Value

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

which can be plotted.

##### References

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

##### See Also

`density.ppp`

,
`bw.diggle`

,
`bw.scott`

,
`bw.CvL`

,
`bw.frac`

.

For point patterns on a linear network, use `bw.lppl`

.

##### Examples

```
# NOT RUN {
if(interactive()) {
b <- bw.ppl(redwood)
plot(b, main="Likelihood cross validation for redwoods")
plot(density(redwood, b))
}
# }
```

*Documentation reproduced from package spatstat, version 1.63-0, License: GPL (>= 2)*