Spec-Zone.ru › NumPy 1.11

numpy.random.RandomState.lognormal

RandomState.lognormal(mean=0.0, sigma=1.0, size=None)

Генерация выборок из логарифмически-нормального распределения.

Генерирует выборки из логарифмически-нормального распределения с заданным средним, стандартным отклонением и формой массива. Обратите внимание, что среднее значение и стандартное отклонение не являются значениями самого распределения, а значениями базового нормального распределения, от которого оно происходит.

Параметры:

mean : float

Среднее значение базового нормального распределения

sigma : float, > 0.

Стандартное отклонение базового нормального распределения

size : int или кортеж из целых чисел, необязательно

Форма выходного массива. Если заданная форма, например, (m, n, k), то m * n * k выборок генерируются. По умолчанию None, в этом случае возвращается единственное значение.

Возвращаемое значение:

samples : ndarray или float

Полученные выборки. Массив такой же формы, как size, если задан, если size равно None, возвращается float.

См. также

scipy.stats.lognorm
функция плотности вероятности, распределение, функция кумулятивного распределения и т.д.

Примечания

Переменная x имеет логарифмически-нормальное распределение, если log(x) имеет нормальное распределение. Функция плотности вероятности для логарифмически-нормального распределения:

p(x) = \frac{1}{\sigma x \sqrt{2\pi}}
e^{(-\frac{(ln(x)-\mu)^2}{2\sigma^2})}

где \mu — среднее значение, а \sigma — стандартное отклонение нормально распределенного логарифма переменной. Логарифмически-нормальное распределение возникает, если случайная величина является произведением большого числа независимых, одинаково распределённых переменных, так же, как нормальное распределение возникает, если величина является суммой большого числа независимых, одинаково распределённых переменных.

Сноски

[R164] Limpert, E., Stahel, W. A., and Abbt, M., “Log-normal Distributions across the Sciences: Keys and Clues,” BioScience, Vol. 51, No. 5, May, 2001. http://stat.ethz.ch/~stahel/lognormal/bioscience.pdf
[R165] Reiss, R.D. and Thomas, M., “Statistical Analysis of Extreme Values,” Basel: Birkhauser Verlag, 2001, pp. 31-32.

Примеры

Генерация выборок из распределения:

>>> mu, sigma = 3., 1. # mean and standard deviation
>>> s = np.random.lognormal(mu, sigma, 1000)

Отображение гистограммы выборок вместе с функцией плотности вероятности:

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 100, normed=True, align='mid')
>>> x = np.linspace(min(bins), max(bins), 10000)
>>> pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))
...        / (x * sigma * np.sqrt(2 * np.pi)))
>>> plt.plot(x, pdf, linewidth=2, color='r')
>>> plt.axis('tight')
>>> plt.show()

(Исходный код, png, pdf)

../../_images/numpy-random-RandomState-lognormal-1_00_00.png

Демонстрация того, как произведение случайных выборок из равномерного распределения может хорошо соответствовать логарифмически-нормальной функции плотности вероятности.

>>> # Generate a thousand samples: each is the product of 100 random
>>> # values, drawn from a normal distribution.
>>> b = []
>>> for i in range(1000):
...    a = 10. + np.random.random(100)
...    b.append(np.product(a))
>>> b = np.array(b) / np.min(b) # scale values to be positive
>>> count, bins, ignored = plt.hist(b, 100, normed=True, align='mid')
>>> sigma = np.std(np.log(b))
>>> mu = np.mean(np.log(b))
>>> x = np.linspace(min(bins), max(bins), 10000)
>>> pdf = (np.exp(-(np.log(x) - mu)**2 / (2 * sigma**2))
...        / (x * sigma * np.sqrt(2 * np.pi)))
>>> plt.plot(x, pdf, color='r', linewidth=2)
>>> plt.show()

(png, pdf)

../../_images/numpy-random-RandomState-lognormal-1_01_00.png

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.random.RandomState.lognormal.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API