Look at area <- sum(a$y)*(a$x[1]-a$y[2])
The problem appears to be "a$x[1]-a$y[2]"; that is not the length of the base of an approximating rectangle, whatever it is :-) albyn On Thu, Sep 08, 2011 at 11:36:23AM -0400, Gonçalo Ferraz wrote: > Hi, I have a vector 'data' of 58 probability values (bounded between 0 and 1) > and want to draw a probability density function of these values. For this, I > used the commands: > > data <- runif(58) > > a <- density(data, from=0, to=1) > plot(a, type="l",lwd=3) > > But then, when I try to approximate the area under the plotted curve with the > command: > > area <- sum(a$y)*(a$x[1]-a$y[2]) > > I get an area that is clearly smaller than 1. > > Strangely, if I don't bound the density function with 'to=0,from=1' (which is > against my purpose because it extends the pdf beyond the limits of a > probability value), I get an area of 1.000. This suggests that I am computing > the area well, but using the density function improperly. > > Why is this happening? Does anyone know how to constrain the density function > while still getting a true pdf (summing to 1 under the curve) at the end? > Should I use a different function? I read through the density function notes > but could not figure out a solution. > > Thank you! > > Gonçalo > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > -- Albyn Jones Reed College jo...@reed.edu ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.