Spec-Zone.ru › NumPy 1.10

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.10.1/reference/generated/numpy.random.RandomState.lognormal.html

Spec-Zone.ru

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