Spec-Zone.ru › NumPy 1.10

numpy.random.gumbel

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

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

Генерирует выборки из распределения Гумбеля с заданным сдвигом и масштабом. Более подробную информацию о распределении Гумбеля см. в разделах «Примечания» и «Ссылки» ниже.

Параметры:

loc : float

Сдвиг (смещение) моды распределения.

scale : float

Масштабный параметр распределения.

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

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

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

samples : ndarray или скаляр

См. также

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.

Ссылки

[R223] Гумбел, Э. Ю., «Статистика экстремумов», Нью-Йорк: Издательство Колумбийского университета, 1958 г.
[R224] Райсс, Р.-Д. и Томас, М., «Статистический анализ экстремальных значений из страхования, финансов, гидрологии и других областей», Базель: 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, normed=True)
>>> plt.plot(bins, (1/beta)*np.exp(-(bins - mu)/beta)
...          * np.exp( -np.exp( -(bins - mu) /beta) ),
...          linewidth=2, color='r')
>>> plt.show()

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

../../_images/numpy-random-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, normed=True)
>>> beta = np.std(maxima)*np.pi/np.sqrt(6)
>>> 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()

(png, pdf)

../../_images/numpy-random-gumbel-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.gumbel.html

Spec-Zone.ru

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