Python拟合lognormal到直方图

时间:2017-01-30 14:52:59

标签: python scipy normal-distribution

我想对某些数据进行对数正态分布,但我遇到了麻烦。我正在尝试使用scipy.stats lognorm来适应我的数据,我目前有:

from numpy import genfromtxt
from scipy.stats import lognorm
import matplotlib at plt
fig, ax = plt.subplots(1, 1)

data = genfromtext('data.txt')
plt.hist(data, bins=np.logspace(0,5,200))
plt.gca().set_xscale("log")
plt.show()

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

plt.plot(data,pdf)

plt.gca().set_xscale("log")
plt.show()

直方图看起来很不错...... enter image description here但我得到的第二个情节与pdf看起来像废话:enter image description here

一旦我有参数形状,位置和比例,我想使用这个pdf随机生成遵循此分布的数据。

应用程序是使用np.random.uniform(min,max)生成一些随机对象的模拟,但我想使用更真实的分布。我从一个信誉良好的在线资源中找到了我的数据文件,它代表了我想要生成的内容。所以现在我需要的是对数正态拟合。

在你问'为什么不随意从文件中随机选择数据?'之后,我会这样做,但我想生成数以万计的代表性对象,我的数据文件只有3000个。

感谢任何帮助!

0 个答案:

没有答案