gpt4 book ai didi

python - 适合直方图的 Scipy lognorm

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:30 24 4
gpt4 key购买 nike

我正在将对数正态 pdf 拟合到一些分箱数据,但我的曲线与数据不太匹配,请参见下图。我的代码是:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import lognorm

data = genfromtxt('data.txt')
data = np.sort(data)

# plot histogram in log space

ax.hist(data, bins=np.logspace(0,5,200),normed=1)
ax.set_xscale("log")

shape,loc,scale = lognorm.fit(data)

print shape, loc, scale

pdf = sp.stats.lognorm.pdf(data, shape, loc, scale)

ax.plot(data,pdf)

plt.show()

这是它的样子:

enter image description here

我是否需要以某种方式提供对形状、位置和比例的合理猜测?

谢谢!

最佳答案

您尝试拟合的数据看起来不像对数正态分布。对数正态分布,当绘制在对数 x 刻度上时,应该看起来像正态分布。您显示的情节并非如此。当分布不能很好地拟合数据时,您会得到奇怪的参数。

在尝试拟合某些东西之前,您需要了解您的数据是如何真正分布的(严格来说,这在 SO 是题外话)。

这是我们使用从对数正态分布中随机抽取的数据时得到的结果:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import lognorm

np.random.seed(42)

data = lognorm.rvs(s=0.5, loc=1, scale=1000, size=1000)

# plot histogram in log space
ax = plt.subplot(111)
ax.hist(data, bins=np.logspace(0,5,200), density=True)
ax.set_xscale("log")

shape,loc,scale = lognorm.fit(data)

x = np.logspace(0, 5, 200)
pdf = lognorm.pdf(x, shape, loc, scale)

ax.plot(x, pdf, 'r')

plt.show()

histogram and PDF of lognorm distribution look like normal distribution when the x-axis is logarithmic

关于python - 适合直方图的 Scipy lognorm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41940726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com