Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does the hist() function not have area one

Tags:

r

histogram

area

When using hist() in R and setting freq=FALSE I should get a densities. However, I do not. I get other numbers than when it just shows the count. I still need to normalize.

For example:

> h = hist(c(1,2,1,3,1,4,5,4,5,8,2,4,1,7,6,10,7,4,3,7,3,5), freq=FALSE)
> h$density
  0.13636364 0.15909091 0.09090909 0.09090909 0.02272727
> sum(h$density)
  [1] 0.5
> h$density/sum(h$density)
  [1] 0.27272727 0.31818182 0.18181818 0.18181818 0.0454545
like image 746
eran Avatar asked Dec 27 '22 12:12

eran


2 Answers

If you examine the rest of the histogram output, you will notice that the bars have length 2:

$breaks
[1]  0  2  4  6  8 10

Hence you should multiple the sum(h$density) by 2 to get the area equal to one. You can see this clearly if you look at the histogram.

enter image description here

like image 170
csgillespie Avatar answered Jan 06 '23 01:01

csgillespie


The area of the histogram is, in fact, 1.0. What you're not taking into account is that every bar is two units wide:

> h$breaks
[1]  0  2  4  6  8 10
like image 43
NPE Avatar answered Jan 06 '23 00:01

NPE