2012-04-03 8 views
7

Ich versuche zu verstehen, ob es eine eingebaute Python-Funktion gibt, um den Lognormal-Mittelwert und die Varianz zu berechnen. Ich benötige diese Information nur, um sie dann in scipy.stats.lognorm für ein Diagramm zu überlagern, das über einem Histogramm überlagert ist.Gibt es eine Python-Methode, um Lognormal-Mittelwert und Varianz zu berechnen?

Die einfache Verwendung der numpy.mean und numpy.std scheint nicht die richtige Idee zu sein, da der lognormale Mittelwert und die Varianz spezifisch sind und sich ziemlich von den numpigen Methoden unterscheiden. In Matlab haben sie eine praktische Funktion namens lognstat, die den Mittelwert und die Varianz einer logarithmischen Normalverteilung zurückgibt, und ich kann anscheinend keine analoge Methode in Python finden. Es ist einfach genug, eine Arbeit zu programmieren, aber ich frage mich, ob diese Methode in einer Bibliothek existiert. Vielen Dank.

Antwort

5

für das, was es wert ist, alle lognstat in Matlab tut, ist dies:

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 

Es kann eine Funktion dafür in scipy.stats oder scikits-statsmodels sein, aber ich bin mir dessen nicht bewusst. So oder so, es sind nur ein paar Zeilen Code.

+0

"'nach dem Mittelwert (μ) und der Standardabweichung (Sigma) der zugehörigen Normalverteilung." "Aber was, wenn die Originaldaten keine Normalverteilung sind? –

Verwandte Themen