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

对数正态分布的 PDF

如何解决对数正态分布的 PDF

我尝试绘制具有给定均值和标准差的分布函数。但是,绘制分布函数显示直方图而不显示分布函数,不知道为什么没有绘制:

mean = 15.14
stdev = 0.3738
phi = (stdev ** 2 + mean ** 2) ** 0.5
mu = np.log(mean ** 2 / phi)
sigma = (np.log(phi ** 2 / mean ** 2)) ** 0.5
data=np.random.lognormal(mu,sigma,1000)
mu,n= lognorm.fit(data) 
plt.hist(data,bins=30,density=True,alpha=0.5,color='b')
# Plot the PDF.
xmin,xmax = plt.xlim()
x = np.linspace(xmin,xmax,1000)
p = lognorm.pdf(x,mu,sigma)
plt.plot(x,p,'k',linewidth=2)
title = "Lognormal distribution: Media: {:.2f} y Dev.Est: {:.2f}".format(mean,stdev)
plt.title(title)
plt.show()

我得到的结果:

enter image description here

解决方法

注意线:

g.V(id).properties('phone').hasValue(startingWith('Mobile')).value()

您正在覆盖稍后使用的 mu,sigma,n = lognorm.fit(data) mu 值。
sigma 返回零,因为您正在评估远离平均值的 PDF,其中 PDF 实际上为零。
为了正确地将 PDF 放在平均值上,您应该替换这行代码:

lognorm.pdf(x,mu,sigma)

与:

p = lognorm.pdf(x,sigma)

完整代码

p = lognorm.pdf(x = x,scale = mean,s = sigma)

enter image description here

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