bandwidth {stats} | R Documentation |
Bandwidth selectors for gaussian windows in density
.
bw.nrd0(x)
bw.nrd(x)
bw.ucv(x, nb = 1000, lower = 0.1 * hmax, upper = hmax)
bw.bcv(x, nb = 1000, lower = 0.1 * hmax, upper = hmax)
bw.SJ(x, nb = 1000, lower = 0.1 * hmax, upper = hmax,
method = c("ste", "dpi"))
x |
A data vector. |
nb |
number of bins to use. |
lower , upper |
Range over which to minimize. The default is
almost always satisfactory. |
method |
Either |
bw.nrd0
implements a rule-of-thumb for
choosing the bandwidth of a Gaussian kernel density estimator.
It defaults to 0.9 times the
minimum of the standard deviation and the interquartile range divided by
1.34 times the sample size to the negative one-fifth power
(= Silverman's ‘rule of thumb’, Silverman (1986, page 48, eqn (3.31))
unless the quartiles coincide when a positive result
will be guaranteed.
bw.nrd
is the more common variation given by Scott (1992),
using factor 1.06.
bw.ucv
and bw.bcv
implement unbiased and
biased cross-validation respectively.
bw.SJ
implements the methods of Sheather & Jones (1991)
to select the bandwidth using pilot estimation of derivatives.
The algorithm solves an equation (via uniroot
) and
because of that, enlarges the interval c(lower,upper)
when
the boundaries were not user-specified and do not bracket the root.
A bandwidth on a scale suitable for the bw
argument
of density
.
Scott, D. W. (1992) Multivariate Density Estimation: Theory, Practice, and Visualization. Wiley.
Sheather, S. J. and Jones, M. C. (1991) A reliable data-based bandwidth selection method for kernel density estimation. Journal of the Royal Statistical Society series B, 53, 683–690.
Silverman, B. W. (1986) Density Estimation. London: Chapman and Hall.
Venables, W. N. and Ripley, B. D. (2002) Modern Applied Statistics with S. Springer.
density
.
bandwidth.nrd
, ucv
,
bcv
and width.SJ
in
package MASS, which are all scaled to the width
argument
of density
and so give answers four times as large.
require(graphics)
plot(density(precip, n = 1000))
rug(precip)
lines(density(precip, bw="nrd"), col = 2)
lines(density(precip, bw="ucv"), col = 3)
lines(density(precip, bw="bcv"), col = 4)
lines(density(precip, bw="SJ-ste"), col = 5)
lines(density(precip, bw="SJ-dpi"), col = 6)
legend(55, 0.035,
legend = c("nrd0", "nrd", "ucv", "bcv", "SJ-ste", "SJ-dpi"),
col = 1:6, lty = 1)