ruvk {kernelboot} | R Documentation |
Random generation from univariate kernel density
Description
Random generation from univariate kernel density
Usage
ruvk(
n,
y,
bw = bw.nrd0(y),
kernel = c("gaussian", "epanechnikov", "rectangular", "triangular", "biweight",
"cosine", "optcosine"),
weights = NULL,
adjust = 1,
shrinked = FALSE
)
Arguments
n |
number of observations. If |
y |
numeric vector. |
bw |
the smoothing bandwidth to be used. The kernels are scaled
such that this is the standard deviation of the smoothing
kernel (see |
kernel |
a character string giving the smoothing kernel to be used. This must partially match one of "gaussian", "rectangular", "triangular", "epanechnikov", "biweight", "cosine" or "optcosine", with default "gaussian", and may be abbreviated. |
weights |
numeric vector of length equal to |
adjust |
scalar; the bandwidth used is actually |
shrinked |
if |
Details
Univariate kernel density estimator is defined as
where is a vector of weights such that all
and
(by default uniform
weights are used),
is kernel
parametrized by bandwidth
and
is a vector of data points used for estimating the kernel density.
For estimating kernel densities use the density
function.
The random generation algorithm is described in the documentation of
kernelboot
function.
References
Deng, H. and Wickham, H. (2011). Density estimation in R. http://vita.had.co.nz/papers/density-estimation.pdf
See Also
Examples
# ruvk() produces samples from kernel densities as estimated using
# density() function from base R
hist(ruvk(1e5, mtcars$mpg), 100, freq = FALSE, xlim = c(5, 40))
lines(density(mtcars$mpg, bw = bw.nrd0(mtcars$mpg)), col = "red")
# when using 'shrinked = TRUE', the samples differ from density() estimates
# since they are shrinked to have the same variance as the underlying data
hist(ruvk(1e5, mtcars$mpg, shrinked = TRUE), 100, freq = FALSE, xlim = c(5, 40))
lines(density(mtcars$mpg, bw = bw.nrd0(mtcars$mpg)), col = "red")
# Comparison of different univariate kernels under standard parametrization
kernels <- c("gaussian", "epanechnikov", "rectangular", "triangular",
"biweight", "cosine", "optcosine")
partmp <- par(mfrow = c(2, 4), mar = c(3, 3, 3, 3))
for (k in kernels) {
hist(ruvk(1e5, 0, 1, kernel = k), 25, freq = FALSE, main = k)
lines(density(0, 1, kernel = k), col = "red")
}
par(partmp)