Random.nextgaussian()可以从均值和标准差不同的分布中采样值吗?


问题内容

这是Java和基本数学问题的结合。Random.nextGaussian()的文档指出,它是从均值0和标准偏差为1的正态分布中抽样的。如果我想从均值和方差不同的正态分布中抽样,该怎么办?


问题答案:

简短的答案是

Random r = new Random();
double mySample = r.nextGaussian()*desiredStandardDeviation+desiredMean;

例如,此答案在此处给出:http
:
//www.javamex.com/tutorials/random_numbers/gaussian_distribution_2.shtml

我真的不明白为什么会这样,但是在仔细研究之后,我想我已经知道了。采样点的平均值为0,标准差为1;这意味着原始样本也是其自己的z分数(https://en.wikipedia.org/wiki/Standard_score)。引自维基百科:“
z的绝对值表示原始分数和总体平均值之间的距离,以标准差为单位”。公式为z =(x-mean)/ stdev,因此默认值为z =
x。如果我们想保留样本的z分数,但更改均值和标准差,我们将怎么办?

z * stdev +均值= x’,其中z = x,x’表示具有期望均值和标准差的分布样本。