Набор гистограмм моделирования rbeta

У меня возникают некоторые проблемы с этой гистограммой. Я запускаю определенное количество бета-симуляций. Затем я сохраняю сумму результатов в массив. Затем я нарисую массив с гистограммой, которая, очевидно, распределяется как нормальная кривая. Теперь то, что я хочу сделать, - это принять среднее и стандартное отклонение этой гистограммы, а в верхней части графика - нормальное распределение. это код, который я получил до сих пор:

simulation = function (n,days,alpha,beta,limsx,limdx) {
 vec= rep(NA, n)
 for (i in 1:n) {
 w=rbeta(days,alpha,beta,ncp=0)
 vec[i] = sum(limsx+w*(limdx-limsx))
 }

 hh=hist(
 vec,
 breaks=round(n/10),
 freq=TRUE,
 xlim=c(
 floor(min(vec)),
 ceiling(max(vec)),
 col="grey"
 )

 sample_mean=mean(vec)
 sample_sd=sd(vec)
 ss=sum (diff (hh$breaks)*hh$counts)

 curve(
 dnorm(
 x/(limdx-limsx),
 mean(vec),
 sd(vec),
 )*ss/(limdx-limsx),
 add=TRUE,
 col="red"
 )
}

В результате я получаю это

Плоская линия на дне должна быть моим нормальным распределением. Может ли кто-нибудь заставить его работать и сказать мне, что я делаю неправильно?

Спасибо вам большое заблаговременно и извините, если вопрос глупо: я начинаю с R и занимаюсь своей диссертацией, которая должна скоро появиться, поэтому я действительно не могу пройти через все аспекты Р.

1 ответ

Ваша проблема - просто масштабирование!

Вам просто нужно изменить freq параметр hist от TRUE до FALSE:

hh=hist(
vec,
breaks=round(n/10),
freq=FALSE,
xlim=c(
 floor(min(vec)),
 ceiling(max(vec)),
col="grey"

)

Поступая таким образом, вы производите график по оси Y по плотности, а не по частоте (номер появления каждого бункера).

licensed under cc by-sa 3.0 with attribution.