Skip to content
Prev 23066 / 398502 Next

density() returns a density function that does not add up to 1

jonathan> Dear R users,
    jonathan> I ran into this curious problem:

    >> d <- rnorm(100)
    >> d.density <- density(d)
    >> sum( d.density$x * d.density$y)
    jonathan> [1] 2.517502

I get 6.5

    jonathan> Admittedly the method of computing the mass under the density curve at
    jonathan> line 3 is crude.

It's actually wrong.   You aren't computing an integral, you need the
the approximate area under d.density$y[i], NOT the value of the X
axis. 

    jonathan> But 2.5 is pretty far from 1, the value it should be.

nope.

    jonathan> I tried a few other dataset and got similar result. Am I missing
    jonathan> something obvious?
    jonathan> Or is the return of density() not supposed to be normalized?

You just need to integrate properly.  You are attempting Riemann
integration, but need to change things a bit.

best,
-tony