Почему функция hist () не имеет первой области - PullRequest
4 голосов
/ 18 октября 2011

При использовании hist() в R и установке freq=FALSE я должен получить плотности.Тем не менее, я не.Я получаю другие цифры, чем когда он просто показывает количество.Мне все еще нужно нормализовать.

Например:

> 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

Ответы [ 3 ]

7 голосов
/ 18 октября 2011

Если вы изучите оставшуюся часть гистограммы, вы заметите, что столбцы имеют длину 2:

$breaks
[1]  0  2  4  6  8 10

Следовательно, вы должны умножить sum(h$density) на 2, чтобы получить площадь, равную единице. Вы можете увидеть это ясно, если вы посмотрите на гистограмму.

http://i53.tinypic.com/a3mlab.jpg

1 голос
/ 18 октября 2011
sum(h$density*(h$breaks[-1] - h$breaks[-length(h$breaks)]))

[1] 1
1 голос
/ 18 октября 2011

Площадь гистограммы фактически равна 1.0. То, что вы не принимаете во внимание, так это то, что каждая полоса имеет ширину в две единицы:

> h$breaks
[1]  0  2  4  6  8 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...