你说I have a sample data, the logarithm of which follows a normal distribution.
假设data是包含样本的数组。使此数据适合
使用scipy.stats.lognorm的对数正态分布,使用:s, loc, scale = stats.lognorm.fit(data, floc=0)
假设mu和sigma是
基本正态分布。得到这些值的估计值
从该配合中,使用:estimated_mu = np.log(scale)
estimated_sigma = s
(这些是而不是的平均值和标准差的估计值
data中的样本。有关公式,请参见wikipedia page
对于对数正态分布的均值和方差,用mu和sigma表示。)
要组合直方图和PDF,可以使用,例如import matplotlib.pyplot as plt.
plt.hist(data, bins=50, normed=True, color='c', alpha=0.75)
xmin = data.min()
xmax = data.max()
x = np.linspace(xmin, xmax, 100)
pdf = stats.lognorm.pdf(x, s, scale=scale)
plt.plot(x, pdf, 'k')
如果想查看数据日志,可以执行以下操作
下面。注意,使用了正态分布的PDF
在这里。logdata = np.log(data)
plt.hist(logdata, bins=40, normed=True, color='c', alpha=0.75)
xmin = logdata.min()
xmax = logdata.max()
x = np.linspace(xmin, xmax, 100)
pdf = stats.norm.pdf(x, loc=estimated_mu, scale=estimated_sigma)
plt.plot(x, pdf, 'k')
顺便说一下,与stats.lognorm匹配的另一种方法是匹配log(data)
使用stats.norm.fit:logdata = np.log(data)
estimated_mu, estimated_sigma = stats.norm.fit(logdata)
相关问题: