# bw.lppl

##### Likelihood Cross Validation Bandwidth Selection for Kernel Density on a Linear Network

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

##### Usage

```
bw.lppl(X, …, srange=NULL, ns=16, sigma=NULL, weights=NULL,
distance="euclidean", shortcut=FALSE, warn=TRUE)
```

##### Arguments

- X
A point pattern on a linear network (object of class

`"lpp"`

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

.- distance
Argument passed to

`density.lpp`

controlling the type of kernel estimator.- …
Additional arguments passed to

`density.lpp`

.- 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.lpp`

.

The argument `X`

should be a point pattern on a linear network
(class `"lpp"`

).

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_L \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.lpp`

,
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

For point patterns in two-dimensional space, use `bw.ppl`

.

##### Examples

```
# NOT RUN {
if(interactive()) {
b <- bw.lppl(spiders)
plot(b, main="Likelihood cross validation for spiders")
plot(density(spiders, b, distance="e"))
} else {
b1 <- bw.lppl(spiders, ns=2)
b2 <- bw.lppl(spiders, ns=2, shortcut=TRUE)
}
# }
```

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