如何在PHP中创建具有给定标准差(西格玛)的正态分布随机数



我需要正态分布的随机数。因此,我实现了Polar方法,就像这里提到的那样:

极性法

这很有效。但我的问题是,它只给了我标准的正态分布随机数。但我也需要一些有另一个标准差(西格玛)的。

所以我需要这个生成器来生成具有给定标准偏差(sigma)的正态分布随机数。

目前,我只能创建类似蓝色的(标准):图形

这可能吗?

标准正态分布随机数的标准偏差等于1。如果你只是把这些随机数乘以X,其中X是一个正数,那么你就创建了标准偏差等于X:-的正态分布数。

您可能需要检查逆变换采样。它允许您创建任意分布的随机数。

其基本思想是取所需分布的密度函数并对其进行积分。这就得到了CDF(累积分布函数)。水平的x轴显示值,垂直的y轴显示随机值小于或等于其对应的x值并且范围在0和1之间的概率。

然后你取一组均匀分布在0和1之间的随机数,将它们用作y值,并查找相应的x值。然后,x值流将按照您的意愿进行分配。这意味着您实际上需要CDF的倒数来查找x值。因此,"逆变换"采样。

计算具有给定西格玛的正态分布的ICDF并非易事,但您可以查找它。

最新更新