numpy.random.lognormal
-
numpy.random.lognormal(mean=0.0, sigma=1.0, size=None) -
Генерация выборок из логнормального распределения.
Генерирует выборки из логнормального распределения со заданной средним, стандартным отклонением и формой массива. Обратите внимание, что среднее и стандартное отклонение не являются значениями самого распределения, а являются параметрами базового нормального распределения, из которого оно получено.
Параметры: -
mean : float or array_like of floats, optional -
Среднее значение базового нормального распределения. По умолчанию 0.
-
sigma : float or array_like of floats, optional -
Стандартное отклонение базового нормального распределения. Должно быть больше нуля. По умолчанию 1.
-
size : int or tuple of ints, optional -
Форма выходного массива. Если заданная форма, например,
(m, n, k), то генерируютсяm * n * kвыборок. Если размерностьNone(по умолчанию), то возвращается одно значение, еслиmeanиsigmaявляются скалярами. В противном случае генерируютсяnp.broadcast(mean, sigma).sizeвыборок.
Возвращает: -
out : ndarray or scalar -
Сгенерированные выборки из логнормального распределения.
См. также
-
scipy.stats.lognorm - плотность вероятности, распределение, кумулятивная функция распределения и т.д.
Примечания
Переменная
xимеет логнормальное распределение, еслиlog(x)имеет нормальное распределение. Функция плотности вероятности логнормального распределения:где
- среднее значение, а
- стандартное отклонение нормально распределённого логарифма переменной. Логонормальное распределение возникает, если случайная величина является произведением большого числа независимых, одинаково распределённых переменных, так же, как нормальное распределение возникает, если переменная является суммой большого числа независимых, одинаково распределённых переменных.
Ссылки
[1] 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 [2] 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, density=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()Демонстрация того, что произведение случайных выборок из равномерного распределения хорошо описывается функцией плотности вероятности логнормального распределения.
>>> # 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, density=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()
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.random.lognormal.html