2012-04-03 3 views
7

Я пытаюсь понять, есть ли встроенная функция python для вычисления логарифмического среднего и дисперсии. Я требую эту информацию только для ее подачи в scipy.stats.lognorm для сюжета, наложенного поверх гистограммы.Есть ли метод Python для вычисления логнормального среднего и дисперсии?

Просто использование numpy.mean и numpy.std не представляется правильной идеей, так как среднее и дисперсия логарифма являются специфическими и сильно отличаются от методов numpy. В Matlab у них есть удобная функция, называемая lognstat, которая возвращает среднее значение и дисперсию логнормального распределения, и я не могу отследить аналогичный метод в Python. Достаточно легко закодировать работу, но мне интересно, существует ли этот метод в библиотеке. Благодарю.

ответ

0

(я не имею RPY установить на моем ноутбуке в данный момент, поэтому я не могу попробовать это)

Вы можете рассмотреть установить Rpy, что питон интерфейс R.

Тогда вы может быть в состоянии использовать эту функцию R http://rss.acs.unt.edu/Rdoc/library/stats/html/Lognormal.html

5

для все, что стоит, все lognstat в MATLAB делает это:

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.stats или scikits-statsmodels, но я не знаю об этом. В любом случае, это всего лишь пара строк кода.

+0

«задано среднее (mu) и стандартное отклонение (сигма) связанного с ним нормального распределения». Но что, если исходные данные не являются нормальным распределением? –

Смежные вопросы