Spec-Zone.ru › NumPy 1.17

numpy.random.mtrand.RandomState.gumbel

метод

RandomState.gumbel(loc=0.0, scale=1.0, size=None)

Извлечь выборки из распределения Гумбеля.

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

Параметры:
loc : float or array_like of floats, optional

Местоположение моды распределения. По умолчанию 0.

scale : float or array_like of floats, optional

Параметр масштаба распределения. По умолчанию 1. Должно быть неотрицательным.

size : int or tuple of ints, optional

Выходная форма. Если заданная форма, например, (m, n, k), то извлекаются m * n * k выборок. Если размер равен None (по умолчанию), возвращается одно значение, если loc и scale являются скалярами. В противном случае извлекаются np.broadcast(loc, scale).size выборок.

Возвращает:
out : ndarray or scalar

Извлеченные выборки из параметризованного распределения Гумбеля.

См. также

scipy.stats.gumbel_l, scipy.stats.gumbel_r, scipy.stats.genextreme, weibull

Примечания

Распределение Гумбеля (или наименьшее экстремальное значение (SEV) или наименьшее экстремальное значение типа I) является одним из класса обобщенных экстремальных распределений (GEV), используемых для моделирования задач экстремальных значений. Распределение Гумбеля является частным случаем распределения экстремального значения типа I для максимумов из распределений с «экспоненциально-подобными» хвостами.

Плотность вероятности для распределения Гумбеля равна

p(x) = \frac{e^{-(x - \mu)/ \beta}}{\beta} e^{ -e^{-(x - \mu)/
\beta}},

где \mu - мода, параметр местоположения, а \beta - параметр масштаба.

Распределение Гумбеля (названное в честь немецкого математика Эмиля Юлиуса Гумбеля) очень рано использовалось в литературе по гидрологии для моделирования возникновения наводнений. Оно также используется для моделирования максимальной скорости ветра и интенсивности осадков. Это распределение с «толстыми хвостами» — вероятность события в хвосте распределения больше, чем если бы использовалось гауссово распределение, отсюда и удивительно частое возникновение 100-летних наводнений. Наводнения первоначально моделировались как гауссовский процесс, который недооценивал частоту экстремальных событий.

Это одно из класса экстремальных распределений, обобщенных экстремальных распределений (GEV), которое также включает в себя распределение Вейбулла и Фреше.

Функция имеет среднее значение \mu + 0.57721\beta и дисперсию \frac{\pi^2}{6}\beta^2.

Ссылки

[1] Gumbel, E. J., “Statistics of Extremes,” New York: Columbia University Press, 1958.
[2] Reiss, R.-D. and Thomas, M., “Statistical Analysis of Extreme Values from Insurance, Finance, Hydrology and Other Fields,” Basel: Birkhauser Verlag, 2001.

Примеры

Извлечь выборки из распределения:

>>> mu, beta = 0, 0.1 # location and scale
>>> s = np.random.gumbel(mu, beta, 1000)

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

>>> import matplotlib.pyplot as plt
>>> count, bins, ignored = plt.hist(s, 30, density=True)
>>> plt.plot(bins, (1/beta)*np.exp(-(bins - mu)/beta)
...          * np.exp( -np.exp( -(bins - mu) /beta) ),
...          linewidth=2, color='r')
>>> plt.show()
../../../_images/numpy-random-mtrand-RandomState-gumbel-1_00_00.png

Показать, как экстремальное распределение может возникнуть из гауссовского процесса, и сравнить с гауссовским:

>>> means = []
>>> maxima = []
>>> for i in range(0,1000) :
...    a = np.random.normal(mu, beta, 1000)
...    means.append(a.mean())
...    maxima.append(a.max())
>>> count, bins, ignored = plt.hist(maxima, 30, density=True)
>>> beta = np.std(maxima) * np.sqrt(6) / np.pi
>>> mu = np.mean(maxima) - 0.57721*beta
>>> plt.plot(bins, (1/beta)*np.exp(-(bins - mu)/beta)
...          * np.exp(-np.exp(-(bins - mu)/beta)),
...          linewidth=2, color='r')
>>> plt.plot(bins, 1/(beta * np.sqrt(2 * np.pi))
...          * np.exp(-(bins - mu)**2 / (2 * beta**2)),
...          linewidth=2, color='g')
>>> plt.show()
../../../_images/numpy-random-mtrand-RandomState-gumbel-1_01_00.png

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.17.0/reference/random/generated/numpy.random.mtrand.RandomState.gumbel.html

Spec-Zone.ru

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