2012-04-03 31 views
7

我想了解是否有內置的python函數來計算對數正態均值和方差。我只需要這些信息,然後將其饋送到scipy.stats.lognorm中,以獲得覆蓋在直方圖頂部的陰謀。是否有Python方法來計算對數正態均值和方差?

簡單地使用numpy.meannumpy.std似乎並不是正確的想法,因爲對數正態均值和方差是特定的,並且與numpy方法完全不同。在Matlab中,他們有一個稱爲lognstat的方便函數,它返回對數正態分佈的均值和方差,我似乎無法追蹤Python中的類似方法。編寫一個工作很容易,但我想知道這個方法是否存在於一個庫中。謝謝。

回答

5

不管它的價值,在MATLAB所有lognstat確實是這樣的:

import numpy as np 

def lognstat(mu, sigma): 
    """Calculate the mean of and variance of the lognormal distribution given 
    the mean (`mu`) and standard deviation (`sigma`), of the associated normal 
    distribution.""" 
    m = np.exp(mu + sigma**2/2.0) 
    v = np.exp(2 * mu + sigma**2) * (np.exp(sigma**2) - 1) 
    return m, v 

scipy.statsscikits-statsmodels中可能有它的功能,但我不知道它是否正確。無論哪種方式,這只是幾行代碼。

+0

「'給出相關正態分佈的平均值(μ)和標準偏差(σ)。」但是如果原始數據不是正態分佈呢? – 2018-02-06 13:17:10