2012-04-03 17 views
7

Sto cercando di capire se esiste una funzione python integrata per calcolare la media e la varianza lognormali. Ho bisogno di queste informazioni solo per alimentarle in scipy.stats.lognorm per un grafico sovrapposto a un istogramma.Esiste un metodo Python per calcolare la media e la varianza lognormali?

Utilizzare semplicemente numpy.mean enon sembra essere l'idea corretta, poiché la media lognormale e la varianza sono specifiche e molto diverse dai metodi numpy. In Matlab hanno una comoda funzione chiamata lognstat che restituisce la media e la varianza di una distribuzione lognormale, e non riesco a rintracciare un metodo analogo in Python. È abbastanza facile codificare un lavoro, ma mi chiedo se questo metodo esista in una libreria. Grazie.

risposta

5

per quel che vale, tutto lognstat in mATLAB fa è questo:

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 

Potrebbe esserci una funzione in scipy.stats o scikits-statsmodels, ma non ne sono a conoscenza. Ad ogni modo, sono solo un paio di righe di codice.

+0

"' data la media (mu) e la deviazione standard (sigma), della distribuzione normale associata. "Ma cosa succede se i dati originali non sono una distribuzione normale? –

Problemi correlati