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