Use direct plug-in methodology to select the bandwidth of a kernel density estimate.
dpik(x, scalest = "minim", level = 2L, kernel = "normal",
canonical = FALSE, gridsize = 401L, range.x = range(x),
truncate = TRUE)
numeric vector containing the sample on which the kernel density estimate is to be constructed.
estimate of scale.
"stdev"
- standard deviation is used.
"iqr"
- inter-quartile range divided by 1.349 is used.
"minim"
- minimum of "stdev"
and "iqr"
is used.
number of levels of functional estimation used in the plug-in rule.
character string which determines the smoothing kernel.
kernel
can be:
"normal"
- the Gaussian density function (the default).
"box"
- a rectangular box.
"epanech"
- the centred beta(2,2) density.
"biweight"
- the centred beta(3,3) density.
"triweight"
- the centred beta(4,4) density.
This can be abbreviated to any unique abbreviation.
logical flag: if TRUE
, canonically scaled kernels are used
the number of equally-spaced points over which binning is performed to obtain kernel functional approximation.
vector containing the minimum and maximum values of x
at which to compute the estimate.
The default is the minimum and maximum data values.
logical flag: if TRUE
, data with x
values outside the
range specified by range.x
are ignored.
the selected bandwidth.
This method for selecting the bandwidth of a kernel density estimate was proposed by Sheather and Jones (1991) and is described in Section 3.6 of Wand and Jones (1995).
The direct plug-in approach, where unknown functionals that appear in expressions for the asymptotically optimal bandwidths are replaced by kernel estimates, is used. The normal distribution is used to provide an initial estimate.
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.
Wand, M. P. and Jones, M. C. (1995). Kernel Smoothing. Chapman and Hall, London.
# NOT RUN {
data(geyser, package="MASS")
x <- geyser$duration
h <- dpik(x)
est <- bkde(x, bandwidth=h)
plot(est,type="l")
# }
Run the code above in your browser using DataLab