微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对数正态分布

如何解决对数正态分布

当定义一个均值为 15.1466 且标准差为 0.3738 的对数正态函数时,您应该得到的结果如下:

enter image description here

但是,当我运行以下代码使用 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()

enter image description here

解决方法

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

检查wiki

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。