我想对某些数据进行对数正态分布,但我遇到了麻烦。我正在尝试使用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()
直方图看起来很不错...... 但我得到的第二个情节与pdf看起来像废话:
一旦我有参数形状,位置和比例,我想使用这个pdf随机生成遵循此分布的数据。
应用程序是使用np.random.uniform(min,max)
生成一些随机对象的模拟,但我想使用更真实的分布。我从一个信誉良好的在线资源中找到了我的数据文件,它代表了我想要生成的内容。所以现在我需要的是对数正态拟合。
在你问'为什么不随意从文件中随机选择数据?'之后,我会这样做,但我想生成数以万计的代表性对象,我的数据文件只有3000个。
感谢任何帮助!