对数正态分布

Lognormal Distribution

定义均值为 15.1466、标准差为 0.3738 的对数正态函数时,应得到的结果如下:

但是当我运行下面的代码用python来做时,我得到的结果是不一样的。

mu, sigma = 15.1466, 0.3738
s = np.random.lognormal(mu, sigma, 10000)
count, bins, ignored = plt.hist(s, 30,
                                density=True, 
                                color='blue')
x = np.linspace(min(bins),
                max(bins), 10000)
  
pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))
       / (x * sigma * np.sqrt(2 * np.pi)))
  
plt.plot(x, pdf, color='black')
plt.grid()
plt.show()

均值和标准差与对数正态分布参数 mu 和 sigma 不同

勾选wiki

基本上,给定均值和 std.dev,计算均值和方差,然后求解两个方程组以求得 mu 和 sigma

只有这样,您才能将 mu 和 sigma 送入例程以进行采样、PDF 等