2012-04-03 15 views
7

Próbuję zrozumieć, czy istnieje wbudowana funkcja Pythona do obliczania średniej i wariancji lognormal. Wymagam tylko tych informacji, aby następnie wprowadzić je do scipy.stats.lognorm dla wykresu nałożonego na histogram.Czy istnieje metoda Pythona do obliczania średniej logicznej i wariancji?

Wystarczy za pomocą numpy.meannumpy.std i nie wydaje się być poprawny pomysł, jak lognormal średnia i wariancja są specyficzne i zupełnie inna niż metody NumPy. W Matlabie mają przydatną funkcję o nazwie lognstat, która zwraca średnią i wariancję rozkładu lognormalnego i nie mogę znaleźć analogicznej metody w Pythonie. Łatwo jest zakodować pracę, ale zastanawiam się, czy ta metoda istnieje w bibliotece. Dzięki.

Odpowiedz

5

na co warto, wszystko lognstat w Matlab robi to w ten sposób:

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 

Może istnieć funkcja dla niego w scipy.stats lub scikits-statsmodels, ale nie jestem tego świadomy. Tak czy inaczej, to tylko kilka linii kodu.

+0

"" biorąc pod uwagę średnią (mu) i odchylenie standardowe (sigma) powiązanego rozkładu normalnego. "Ale co, jeśli oryginalne dane nie są rozkładem normalnym? –

Powiązane problemy