Search code examples
rkernel-densityprobability-densitydensity-plot

Exact kernel density value for any point in R


I was wondering if there is a R base way to obtain the exact kernel density at any point desired? As an example, how can I get the exact kernel density at the 3 following points -2, 0, +2 on X-Axis in a plot like below?

set.seed(2937107)
plot( density(rnorm(1e4)) )

enter image description here


Solution

  • Use linear interpolation to find it.

    d <- density(rnorm(10000))
    approx(d$x, d$y, xout = c(-2, 0, 2))
    

    The precision of interpolation can be higher if you set a larger n in density. By default n = 512 so interpolation is based on 512 points.