h_K_to_Gauss {FKSUM} | R Documentation |
Bandwidth conversion to Gaussian
Description
A naive and simple, but useful way of transforming a bandwidth for use with a kernel implemented in FKSUM to an appropriate value to be used with the Gaussian kernel. The transformation if based on the relative values for the kernels for the AMISE minimal bandwidth for the purpose of density estimation. The transformation has been useful for other problems as well.
Usage
h_K_to_Gauss(h, beta)
Arguments
h |
positive numeric bandwidth value appropriate for use with the FKSUM kernel with coefficients beta to an appropriate value for use with the Gaussian kernel. |
beta |
numeric vector of kernel coefficients. |
Value
positive numeric value, the bandwidth to be used for estimation using the Gaussian kernel.
References
Hofmeyr, D.P. (2021) "Fast exact evaluation of univariate kernel sums", IEEE Transactions on Pattern Analysis and Machine Intelligence, 43(2), 447-458.
Examples
### Use the package for data driven bandwidth for use with
### the Gaussian kernel in existing implementations
### generate sample from bimodal Gaussian mixture with varying scale
x <- c(rnorm(100000), rnorm(100000)/4 + 2)
### estimate bandwidth with the package using MLCV and convert
bwml <- h_K_to_Gauss(fk_density(x, h = 'mlcv',
beta = c(.25,.25))$h, c(.25,.25))
bwml_binned <- h_K_to_Gauss(fk_density(x, h = 'mlcv',
beta = c(.25,.25), nbin = 10000)$h, c(.25,.25))
xs <- seq(-3, 4, length = 1000)
plot(xs, dnorm(xs)/2+dnorm(xs,2,1/4)/2, type = 'l',
lwd = 4, col = rgb(.7, .7, .7))
lines(density(x, bw = bwml), lty = 2, lwd = 2)
lines(density(x, bw = bwml_binned), lty = 3, lwd = 2)