scipy中的分布以通用的方式通过两个参数的位置和比例进行编码,因此位置是
loc将分布向左或向右移动的参数(),
scale而是压缩或拉伸分布的参数。
对于两个参数的对数正态分布,“均值”和“ std dev”对应于log(
scale)和
shape(可以让
loc=0)。
下面说明了如何拟合对数正态分布以找到感兴趣的两个参数:
In [56]: import numpy as npIn [57]: from scipy import statsIn [58]: logsample = stats.norm.rvs(loc=10, scale=3, size=1000) # logsample ~ N(mu=10, sigma=3)In [59]: sample = np.exp(logsample) # sample ~ lognormal(10, 3)In [60]: shape, loc, scale = stats.lognorm.fit(sample, floc=0) # hold location to 0 while fittingIn [61]: shape, loc, scaleOut[61]: (2.9212650122639419, 0, 21318.029350592606)In [62]: np.log(scale), shape # mu, sigmaOut[62]: (9.9673084420467362, 2.9212650122639419)



