ln((x-loc)/scale)
通过常用对数演算,这是一样的
ln(x-loc) - ln(scale)
在对数正态分布的规范定义该术语简单地是ln(x) - μ
。比较SciPy的方法和规范方法提供了至关重要的见解:ln(scale)
代表μ。然而,loc
在规范定义中没有对应关系,最好留在0处。下面我进一步讨论了形状(s
)为σ的事实。
证明 >>> import math
>>> from scipy.stats import lognorm
>>> mu = 2
>>> sigma = 2
>>> l = lognorm(s=sigma, loc=0, scale=math.exp(mu))
>>> print("mean: %.5f stddev: %.5f" % (l.mean(), l.std()))
mean: 54.59815 stddev: 399.71719
我使用的WolframAlpha作为参考。它为对数正态分布的均值和标准差提供分析确定的值。
http://www.wolframalpha.com/input/?i=log-normal+distribution%2C+mean%3D2%2C+sd%3D2
的值相匹配。
WolframAlpha以及SciPy通过评估分析术语来得出平均值和标准偏差。让我们进行了实证检验,从SciPy的分配采取了许多样品,并计算出它们的平均值和标准偏差“手动”(从整个样本集):
>>> import numpy as np
>>> samples = l.rvs(size=2*10**7)
>>> print("mean: %.5f stddev: %.5f" % (np.mean(samples), np.std(samples)))
mean: 54.52148 stddev: 380.14457
这仍然是不完美的融合,但我认为这足以证明样本符合WolframAlpha假设的相同分布,假设μ= 2和σ= 2。
而另一个小编辑:它看起来像一个搜索引擎的正确使用方法会有所帮助,我们不是第一个被这个被困:
https://stats.stackexchange.com/questions/33036/fitting-log-normal-distribution-in-r-vs-scipy http://nbviewer.ipython.org/url/xweb.geos.ed.ac.uk/~jsteven5/blog/lognormal_distributions.ipynb scipy, lognormal distribution - parameters
另一个编辑:现在我知道它是如何表现的,我意识到原则上的行为是有记录的。在the "notes" section我们可以读到:
与形状参数西格玛和尺度参数EXP(亩)
那真的很不明显(我们都无法体会到这种小句的重要性) 。我想我们无法理解这句话意味着什么的原因是注释部分中显示的分析表达式而不是包括loc
和scale
。我想这是值得一个错误报告/文档改进。
原来的答复:
事实上,形状参数主题没有寻找到的文档页面的特定分配时,详细记录。我建议在看看主要统计资料 - 上有形状参数部分:
http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html#shape-parameters
看起来应该有一个lognorm.shapes
属性,告诉你有关s
参数是什么意思,具体。
编辑: 只有一个参数,确实:
>>> lognorm.shapes
's'
当比较对数正态分布(维基百科)的一般定义:
和式由给定的scipy文档:
lognorm.pdf(x, s) = 1/(s*x*sqrt(2*pi)) * exp(-1/2*(log(x)/s)**2)
它变成很显然s
是真正的σ(sigma
)。
但是,从文档来看,loc
参数与μ(mu
)的关系并不明显。
它可以像在ln(x-loc)
,这将不对应通式到μ,或者它可以是ln(x)-loc
,这将确保loc
和μ之间的对应关系。试试看! :)
编辑2
我已经之间进行比较什么的WolframAlpha(WA)和SciPy的说。西澳大利亚很清楚,它通常使用μ和σ(正如链接的维基百科文章中所定义的)。
>>> l = lognorm(s=2, loc=0)
>>> print("mean: %.5f stddev: %.5f" % (l.mean(), l.std()))
mean: 7.38906 stddev: 54.09584
这匹配WA's output。
现在,对于loc
不为零,则存在不匹配。例如:
>>> l = lognorm(s=2, loc=1)
>>> print("mean: %.5f stddev: %.5f" % (l.mean(), l.std()))
mean: 8.38906 stddev: 54.09584
WA gives 20.08均值和你有它的147有一个标准偏差,loc
不不对应的对数正态分布的经典定义μ。