rbeta模拟直方图集

时间:2014-10-03 11:20:50

标签: r histogram normal-distribution

我对这个直方图有些问题。 我正在运行一定数量的beta模拟。然后我将结果的总和存储到一个数组中。然后我用直方图绘制数组,这显然分布为正常曲线。现在我想做的是取这个组合图的均值和标准差,并在其顶部绘制相应的正态分布图。 这是我到目前为止的代码:

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"
  )
}

结果我得到了这个normal hist

底部的扁线应该是我的正态分布。 谁能让它发挥作用并告诉我我做错了什么?

非常感谢你提前和抱歉,如果这个问题很愚蠢:我是R的初学者并且很快就会完成我的论文,所以我真的不能完成R的各个方面。

1 个答案:

答案 0 :(得分:1)

你的问题只是缩放!

您只需将freq的{​​{1}}参数从hist更改为TRUE

FALSE

通过这样做,您可以在y轴上绘制密度而不是频率(每个箱子的出现次数)。