Набор гистограмм моделирования 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.