我正在拟合对数正态分布的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()
字符串
它看起来是这样的:
的数据
我是否需要以某种方式为形状、位置和规模提供合理的猜测?
1条答案
按热度按时间gfttwv5a1#
您试图拟合的数据看起来不像对数正态分布。对数正态分布在对数x尺度上绘制时应该看起来像正态分布。您显示的图中并非如此。当分布不适合数据时,您会得到奇怪的参数。
在尝试适应某些东西之前,你需要弄清楚你的数据是如何真正分布的(严格来说,这在SO是离题的)。
这是我们使用从对数正态分布中随机抽取的数据时得到的结果:
字符串
的数据