首页 > 解决方案 > 对数正态分布

问题描述

当定义一个平均值为 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()

在此处输入图像描述

标签: pythonrandomprobability-density

解决方案


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

检查维基

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

只有这样你才能将 mu 和 sigma 输入到采样、PDF 等例程中


推荐阅读