【问题标题】:R simulate inverse normal distributionR模拟逆正态分布
【发布时间】:2013-04-18 14:59:42
【问题描述】:

我想知道 R 中是否有任何函数可以用来模拟与正态分布相反的分布? 相反,我的意思不是从低值开始,逐渐增加到峰值,然后逐渐减少,我希望这个分布从高值开始,然后逐渐减少到小值,然后增加到初始值。 谢谢。

【问题讨论】:

  • 如何将你的函数 g(.) 定义为 1 - normaldist() ?
  • no 这行不通 Drik,因为我希望分布的密度遵循这个形状......
  • 您需要更好地了解您的形状“需要”看起来像什么(以及为什么)。反三角函数和 BathtubFunction 之间的某个地方是您所追求的,但这是一个很大的空间。
  • 你有一个有限域吗?法线是在整条实线上定义的,但您将很难定义一个有效的 pdf,它会随着接近 +/-Inf 而增加。
  • 是的,域是有限的。

标签: r distribution


【解决方案1】:

如果您正在寻找一个开始高、低并结束的概率分布,请尝试beta 分布与alpha = beta = 0.5。在 R 中:

rb <- rbeta(1000, 0.5, 0.5)
hist(rb)

它产生介于(0,1) 之间的值,您可能希望适当地缩放和/或移动它。

【讨论】:

  • 谢谢,我们是否需要以特定方式设置种子以进行 beta 分发?因为我使用了 set.seed(40) 但它在连续重复中发生变化。
  • 如果你想重现结果,你需要set.seed一次(在开始时)。否则不需要set.seed。 R 将根据系统时间/进程 ID 在内部设置种子。
  • 是的,我想重新生成结果。这就是为什么我使用 set.seed 但每次运行实验时结果都会发生变化:-/ ....
  • 这是我的代码seed.set(40) rb &lt;- rbeta(40, 0.5, 0.5) table(cut(rb,10)) plot(table(cut(rb,10)))
  • 我无法重现该问题。 > set.seed(40) > rb1 > set.seed(40) > rb2 > 相同(rb1,rb2) [1]真的
猜你喜欢
  • 2013-11-04
  • 2017-02-19
  • 2017-11-15
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-24
相关资源
最近更新 更多