Задачи с генерацией функции распределения вероятностей (PDF) в R - PullRequest
2 голосов
/ 07 октября 2011

Привет! Я использую R для анализа данных, полученных в результате моделирования. Я использую функцию Hist, чтобы сгенерировать pdf, точная команда, которую я даю:

hist(data_delay$delay,freq=F)

В моем понимании значения оси Y на графике должны быть меньше 1, все значения по оси Y должны составлять до 1. Но, к сожалению, я не получаю случайный диапазон по оси Y, иногда значения в 1000 ,

Я прилагаю пример файла ввода. При этом значения оси Y находятся в диапазоне от 0 до 100.

Спасибо за всю помощь, которую вы можете оказать.

Мои данные следующие http://www.mediafire.com/?twyoseg8bai0dr7

Ответы [ 2 ]

10 голосов
/ 07 октября 2011

Согласно документации hist, когда freq=FALSE, «гистограмма имеет общую площадь один». Это не говорит о том, что высота каждого стержня должна быть меньше единицы. Гистограмма, созданная с помощью вашей команды и данных, имеет общую площадь 1.

> data_delay <- read.csv("PATH_TO_DATA_FILE")
> h <- hist(data_delay$delay, plot=F)
> h
$breaks
 [1] 0.000 0.005 0.010 0.015 0.020 0.025 0.030 0.035 0.040 0.045 0.050 0.055
[13] 0.060 0.065 0.070

[SNIP]

$density
 [1] 112.47892074  13.36706015   3.91231029   5.98088814  10.35413153
 [6]  11.21978640  11.80438449   6.55424396  14.14277684   2.63069140
[11]   5.53119730   1.31534570   0.69702080   0.01124227

[SNIP]

Разрывы расположены на равном расстоянии 0,005 друг от друга, поэтому мы можем увидеть общую площадь гистограммы, выполнив следующие действия.

> sum(h$density * 0.005)
[1] 1
1 голос
/ 07 октября 2011

Вы можете предпочесть ?density

как в foo<-density(rnorm(1000)) ; plot(foo)

...