Uses least-squares cross-validation to select a smoothing bandwidth for spatial smoothing of marks.

```
bw.smoothppp(X, nh = spatstat.options("n.bandwidth"),
hmin=NULL, hmax=NULL, warn=TRUE, kernel="gaussian")
```

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

which can be plotted.

- X
A marked point pattern with numeric marks.

- nh
Number of trial values of smoothing bandwith

`sigma`

to consider. The default is 32.- hmin, hmax
Optional. Numeric values. Range of trial values of smoothing bandwith

`sigma`

to consider. There is a sensible default.- warn
Logical. If

`TRUE`

, issue a warning if the minimum of the cross-validation criterion occurs at one of the ends of the search interval.- kernel
The smoothing kernel. A character string specifying the smoothing kernel (current options are

`"gaussian"`

,`"epanechnikov"`

,`"quartic"`

or`"disc"`

).

Adrian Baddeley Adrian.Baddeley@curtin.edu.au and Rolf Turner r.turner@auckland.ac.nz

This function selects an appropriate bandwidth for the nonparametric
smoothing of mark values using `Smooth.ppp`

.

The argument `X`

must be a marked point pattern
with a vector or data frame of marks. All mark values must be numeric.

The bandwidth is selected by least-squares cross-validation. Let \(y_i\) be the mark value at the \(i\)th data point. For a particular choice of smoothing bandwidth, let \(\hat y_i\) be the smoothed value at the \(i\)th data point. Then the bandwidth is chosen to minimise the squared error of the smoothed values \(\sum_i (y_i - \hat y_i)^2\).

The result of `bw.smoothppp`

is a numerical value giving the selected bandwidth `sigma`

.
The result also belongs to the class `"bw.optim"`

allowing it to be printed and plotted. The plot shows the cross-validation
criterion as a function of bandwidth.

The range of values for the smoothing bandwidth `sigma`

is set by the arguments `hmin, hmax`

. There is a sensible default,
based on the nearest neighbour distances.

If the optimal bandwidth is achieved at an endpoint of the
interval `[hmin, hmax]`

, the algorithm will issue a warning
(unless `warn=FALSE`

). If this occurs, then it is probably advisable
to expand the interval by changing the arguments `hmin, hmax`

.

Computation time depends on the number `nh`

of trial values
considered, and also on the range `[hmin, hmax]`

of values
considered, because larger values of `sigma`

require
calculations involving more pairs of data points.

`Smooth.ppp`

```
op <- spatstat.options(n.bandwidth=8)
b <- bw.smoothppp(longleaf)
b
plot(b)
spatstat.options(op)
```

Run the code above in your browser using DataLab