生成仅具有正数的高斯分布

时间:2009-11-05 20:44:39

标签: algorithm statistics gaussian normal-distribution poisson

有没有办法随机生成一组正数,使它们具有所需的均值和标准差?

我有一个算法来生成具有高斯分布的数字,但我不知道如何以保留均值和标准差的方式处理负数。
看起来泊松分布可能是一个很好的近似值,但它只需要一个均值。

编辑:回复中有一些混乱,所以我会试着澄清一下。

我有一组数字给我一个均值和标准差。我想生成一组大小相同的数字,具有相等的均值和标准差。通常情况下,我会使用高斯分布来执行此操作,但在这种情况下,我有一个额外的约束,所有值必须大于零。

我正在寻找的算法不需要基于高斯(根据评论到目前为止判断,它可能不应该是)并且不需要是完美的。如果得到的数字集的平均值/标准偏差略有不同并不重要 - 我只想要通常会出现在球场上的东西。

8 个答案:

答案 0 :(得分:8)

首先,您不能仅从高斯分布中生成正值。

其次,我是否正确理解您正在尝试生成具有给定均值和标准差的随机分布?任何发行版都可以吗?如果是,请使用mean = m和标准差= s。我假设m - s > 0

let n = random integer modulo 2;
if n equals 0 return m - s
else return m + s

此流程返回的值的平均值为m,标准差为s

答案 1 :(得分:7)

您可以使用log-normal发布。

答案 2 :(得分:7)

您可能正在寻找对数正态分布,正如David Norman建议的那样,或者exponentialbinomial或其他一些分布。如果您有一个生成一个分布的算法,那么生成符合另一个分布的数字可能不太好。但只有你知道你的数字是如何分配的。

正态分布时,随机变量的范围是从负无穷大到正无穷大,所以如果你只是寻找正数,那么它不是高斯数。

不同的分布也具有独特的属性,例如,泊松分布,标准偏差总是等于平均值​​。 (这就是为什么你的库函数不会从标准偏差参数中询问,只有平均值)。

在最坏的情况下,您可以生成0到1之间的随机实数,并自行计算概率密度函数。 (根据分布情况,这可能说起来容易做起来难得多)。

答案 3 :(得分:5)

为什么不使用重采样方法?如果样本中有 n 个数字,只需从样本中随机抽取 n 替换。结果集的预期均值和方差与原始样本大致相同,但通常会略有不同。

这说,不知道你为什么需要更多的随机数,就不可能说出正确答案是什么。人们想知道你是否在试图解决错误的问题......

答案 4 :(得分:4)

我无法抗拒 - 我真的很喜欢杰森的角度,但他的回答只涵盖m> s,所以我按照他的想法制定了一个通用的解决方案 给定m,s和正项的最简单分布是

  

概率为p,返回0
  概率(1-p),返回m /(1-p)
  其中(1-p)= m ^ 2 /(m ^ 2 + s ^ 2)

证明:对于分布X,有两个结果lowX,概率为p,highX为概率(1-p),
m = E [X] = p x lowX +(1-p)x highX
s ^ 2 =方差(X)= E [X ^ 2] - E [X] ^ 2 = p x lowX ^ 2 +(1-p)x highX ^ 2 - m ^ 2

将lowX设置为0并在highX和p。

中解析

答案 5 :(得分:2)

您可以使用任何具有正支持的分布,并且可以通过均值和方差来指定。例如,

  • 单参数分布通常不起作用。例如,除非你的方差总是加倍,否则卡方不会起作用。同样,指数不会起作用,除非你的方差等于你的均方。
  • 某些双参数分布在某些情况下不起作用。除非差异小于您的平均值,否则二项分布​​将不起作用。同样地,非中心卡方将不起作用,除非你的方差大于平均值的2倍且小于平均值的4倍!
  • 然而,log-normal和gamma将适用于所有情况。

答案 6 :(得分:1)

如果我理解正确,您希望从具有正面支持的分布中生成随机数。有很多可能的选择。

最简单

卡方:http://en.wikipedia.org/wiki/Chi-square_distribution (这只是两个平方高斯人的总和)

所有不对称分布(指数,威布尔,帕累托,逆高斯,对数正态,伽玛)

歪曲家庭的所有分布(偏斜正常,偏斜的学生......)

以上所有功能都是这样的,任何从它们中抽取的随机数总是正面的。

答案 7 :(得分:-6)

你小丑在谈论什么?标准法线的均值为零,但这是高斯分布的一个特例,它具有参数均值和标准差。随着平均值的增加,当sd保持不变时,产生任何低于零的数字的概率会减小到零。你绝对可以得到没有负数的高斯分布。