Cross-validatory choice of smoothing parameter
This function uses the technique of cross-validation to select a smoothing parameter suitable for constructing a density estimate or nonparametric regression curve in one or two dimensions.
hcv(x, y = NA, hstart = NA, hend = NA, ...)
x |
a vector, or two-column matrix of data. If |
y |
a vector of response values for nonparametric regression. |
hstart |
the smallest value of the grid points to be used in an initial grid search for the value of the smoothing parameter. |
hend |
the largest value of the grid points to be used in an initial grid search for the value of the smoothing parameter. |
... |
other optional parameters are passed to the |
See Sections 2.4 and 4.5 of the reference below.
The two-dimensional case uses a smoothing parameter derived from a single value, scaled by the standard deviation of each component.
This function does not employ a sophisticated algorithm and some
adjustment of the search parameters may be required for different sets
of data. An initial estimate of the value of h which minimises the
cross-validatory criterion is located from a grid search using values
which are equally spaced on a log scale between hstart
and
hend
. A quadratic approximation is then used to refine this
initial estimate.
the value of the smoothing parameter which minimises the cross-validation criterion over the selected grid.
If the minimising value is located at the end of the grid of search positions,
or if some values of the cross-validatory criterion cannot be evaluated,
then a warning message is printed. In these circumstances altering the
values of hstart
and hend
may improve performance.
As from version 2.1 of the package, a similar effect can be
obtained with the new function h.select
, via
h.select(x, method="cv")
. Users are encouraged to adopt
this route, since hcv
might be not accessible directly
in future releases of the package. When the
sample size is large hcv
uses the raw data while
h.select(x, method="cv")
uses binning. The latter is
likely to produce a more stable choice for h
.
Bowman, A.W. and Azzalini, A. (1997). Applied Smoothing Techniques for Data Analysis: the Kernel Approach with S-Plus Illustrations. Oxford University Press, Oxford.
# Density estimation x <- rnorm(50) par(mfrow=c(1,2)) h.cv <- hcv(x, display="lines", ngrid=32) sm.density(x, h=hcv(x)) par(mfrow=c(1,1)) # Nonparametric regression x <- seq(0, 1, length = 50) y <- rnorm(50, sin(2 * pi * x), 0.2) par(mfrow=c(1,2)) h.cv <- hcv(x, y, display="lines", ngrid=32) sm.regression(x, y, h=hcv(x, y)) par(mfrow=c(1,1))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.