plugin.density {plugdensity} | R Documentation |
Kernel Density Estimation by Plug-In Bandwidth Selection
Description
The function plugin.density()
provides kernel density estimation
with iterative plug-in bandwidth selection.
bw.EH()
computes the bandwidth (smoothing parameter) which
plugin.density()
also uses.
Usage
plugin.density(x, nout = 201, xout = NULL, na.rm = FALSE)
bw.EH(x)
Arguments
x |
vector of numbser whose density is to be estimated. |
nout |
integer specifying the number of equispaced |
xout |
numeric vector of abscissa values at which the density is
to be evaluated. By default, an equispaced sequence of values
covering (slightly more than) the range of |
na.rm |
logical; if |
Value
bw.EH()
returns the bandwidth computed by Eva Herrmann's
plugin bandwith selector.
plugin.density()
returns an object of class "densityEHpi"
inheriting also from class "density"
.
It is a list
with components
x |
the |
y |
the estimated density values. |
bw |
the bandwidth used. |
n |
the sample size after elimination of missing values. |
call |
the call which produced the result. |
data.name |
the deparsed name of the |
Author(s)
Algorithm and C code: Eva Herrmann eherrmann@mathematik.tu-darmstadt.de; R interface: Martin Maechler maechler@R-project.org.
Source
Original code, no longer available, from ‘http://www.unizh.ch/biostat/Software/’ .
References
J. Engel, Eva Herrmann and Theo Gasser (1994). An iterative bandwidth selector for kernel estimation of densities and their derivatives. Journal of Nonparametric Statistics 4, 21–34.
See Also
Examples
data(co2)
plot(dco2 <- density(co2), ylim = c(0, 0.03))
(pdco2 <- plugin.density(co2, xout = dco2$x))
lines(pdco2, col = "red")
plot(pdco2)# calls 'plot.density' method
str(pdco2 <- plugin.density(co2))
xo <- pdco2 $x
str(d.co2 <- density(co2, n = length(xo), from=xo[1],to=max(xo),
width= 4 * pdco2$bw))
nms <- c("x","y", "bw", "n")
all.equal(d.co2[nms], pdco2[nms])
## are close: "Component 2 (= 'y'): Mean relative difference: 0.0009..."
## be.EH() directly computes the bandwidth only:
stopifnot(all.equal(bw.EH(co2), pdco2$bw, tol = 3e-16))