在Excel中生成具有正态分布的随机数

时间:2011-06-05 08:28:51

标签: excel random normal-distribution

我想生成100个正态分布的随机数(μ= 10,σ= 7),然后绘制这些数字的数量图。

如何在Excel 2010中生成具有特定分布的随机数?

还有一个问题:

例如,当我生成带有RANDBETWEEN(Bottom,Top)的20个随机数时,每次重新计算工作表时数字都会改变。我该如何防止这种情况发生?

8 个答案:

答案 0 :(得分:88)

NORMINV功能与RAND()一起使用:

=NORMINV(RAND(),10,7)

要保持随机值集不变,请选择所有值,复制它们,然后将值(特殊)粘贴回相同的范围。


样本输出(A列),使用此公式生成的500个数字:

enter image description here

答案 1 :(得分:5)

如果你有excel 2007,你可以使用

=NORMSINV(RAND())*SD+MEAN

因为2010年有关于excel功能的重大变化

答案 2 :(得分:3)

正如@osknows在上面的评论中所说的那样(而不是一个答案,这就是为什么我要添加这个),Analysis Pack有随机数生成来生成一组数字。一个很好的摘要链接在http://www.bettersolutions.com/excel/EUN147/YI231420881.htm

答案 3 :(得分:2)

Rand()确实生成0到1之间随机数的均匀分布,但是norminv(或norm.inv)函数将统一分布式Rand()作为输入来生成正态分布的样本集。

答案 4 :(得分:1)

random numbers上关于使用抽样技术的维基百科文章中获取战利品。您可以通过插入this一个

找到正态分布的等式

pdf for normal distro

(维基百科方程式)

关于第二个问题,请转到圈子Office图标下的选项,转到公式,然后将计算更改为“手动”。这将保持您的工作表,而不是每次重新计算公式。

答案 5 :(得分:1)

关于重新计算:

通过将automatic recalculation调整为manual recalculate,您可以在每次进行调整时保持随机值的设置不变。 (重新)计算仅在按F9时完成。或者换班F9。

请参阅此链接(虽然对于较旧的excel版本而不是当前的2013版本)有关它的一些信息:https://support.office.com/en-us/article/Change-formula-recalculation-iteration-or-precision-73fc7dac-91cf-4d36-86e8-67124f6bcce4

答案 6 :(得分:0)

另一种有趣的方法是使用 Box-Muller 方法。这使您可以使用 0 和 1 之间的两个均匀随机分布生成均值为 0 且标准差 σ(或方差 σ2)为 1 的正态分布。然后您可以采用此 Norm(0,1 ) 分布并将其缩放到您想要的任何均值和标准差。

这里是正态(0, 1)分布的excel公式:

=SQRT(-2*LN( RAND()))*COS(2 * PI()*RAND())

然后使用此公式将正态分布缩放为均值 10 和标准差 7:

范数(µ=b, σ=a) = a*范数(µ=0, σ2=1) + b

这将使 Excel 中的等式:

=7* SQRT(-2*LN( RAND()))*COS(2 * PI()*RAND()) + 10

您可以在 en.Wikipedia

上阅读有关此 Box-Muller 方程背后的数学的更多信息

请注意,此等式仅适用于使用弧度计算余弦函数的情况。

答案 7 :(得分:-3)

生成的数字
=NORMINV(RAND(),10,7)

是统一分布的。如果你想要正常分配数字,我必须编写一个函数。