- implements a univariate kernel density estimator that can handle bounded, discrete, and zero-inflated data.
- provides classical kernel density as well as log-linear and log-quadratic methods.
- is highly efficient due to the Fast Fourier Transform, spline interpolation, and a C++ backend.
For details, see the API documentation.
- the stable release from CRAN:
install.packages("kde1d")- the latest development version:
# install.packages("remotes") remotes::install_github("tnagler/kde1d@dev")
x <- rnorm(100) # simulate data fit <- kde1d(x) # estimate density dkde1d(0, fit) # evaluate density estimate summary(fit) # information about the estimate plot(fit) # plot the density estimate curve(dnorm(x), add = TRUE, # add true density col = "red")
x <- rgamma(100, shape = 1) # simulate data fit <- kde1d(x, xmin = 0, deg = 1) # estimate density dkde1d(seq(0, 5, by = 1), fit) # evaluate density estimate summary(fit) # information about the estimate plot(fit) # plot the density estimate curve(dgamma(x, shape = 1), # add true density add = TRUE, col = "red", from = 1e-3)
x <- rbinom(100, size = 5, prob = 0.5) # simulate data x <- ordered(x, levels = 0:5) # declare as ordered fit <- kde1d(x, xmin = 0, xmax = 5, # estimate density type = "discrete") fit <- kde1d(ordered(x, levels = 0:5)) # alternative API dkde1d(sort(unique(x)), fit) # evaluate density estimate summary(fit) # information about the estimate plot(fit) # plot the density estimate points(ordered(0:5, 0:5), # add true density dbinom(0:5, 5, 0.5), col = "red")
x <- rexp(500, 0.5) # simulate data x[sample(1:500, 200)] <- 0 # add zero-inflation fit <- kde1d(x, xmin = 0, type = "zi") # estimate density plot(fit) # plot the density estimate lines( # add true density seq(0, 20, l = 100), 0.6 * dexp(seq(0, 20, l = 100), 0.5), col = "red" ) points(0, 0.4, col = "red")
x <- rnorm(100) # simulate data weights <- rexp(100) # weights as in Bayesian bootstrap fit <- kde1d(x, weights = weights) # weighted fit plot(fit) # compare with unweighted fit lines(kde1d(x), col = 2)
Geenens, G. (2014). Probit transformation for kernel density estimation on the unit interval. Journal of the American Statistical Association, 109:505, 346-358, arXiv:1303.4121
Geenens, G., Wang, C. (2018). Local-likelihood transformation kernel density estimation for positive random variables. Journal of Computational and Graphical Statistics, 27(4), 822-835. arXiv:1602.04862
Loader, C. (2006). Local regression and likelihood. Springer Science & Business Media.
Nagler, T. (2018a). A generic approach to nonparametric function estimation with mixed data. Statistics & Probability Letters, 137:326–330, arXiv:1704.07457
Nagler, T. (2018b). Asymptotic analysis of the jittering kernel density estimator. Mathematical Methods of Statistics, 27, 32-46. arXiv:1705.05431