numpy.random.RandomState.gumbel
метод
-
RandomState.gumbel(loc=0.0, scale=1.0, size=None)
-
Генерация выборок из распределения Гумбеля.
Генерация выборок из распределения Гумбеля со заданными параметрами сдвига и масштаба. Дополнительная информация о распределении Гумбеля представлена в разделе «Примечания и ссылки» ниже.
Примечание
Новый код должен использовать метод
gumbelэкземпляраdefault_rng(); см.random-quick-start.- Параметры
-
-
locfloat or array_like of floats, optional -
Параметр сдвига, определяющий положение моды распределения. По умолчанию 0.
-
scalefloat or array_like of floats, optional -
Параметр масштаба распределения. По умолчанию 1. Должен быть неотрицательным.
-
sizeint or tuple of ints, optional -
Форма выходных данных. Если заданная форма, например,
(m, n, k), то генерируетсяm * n * kвыборок. Если размер равенNone(по умолчанию), возвращается одно значение, еслиlocиscaleявляются скалярами. В противном случае генерируетсяnp.broadcast(loc, scale).sizeвыборок.
-
- Возвращаемое значение
-
-
outndarray or scalar -
Сгенерированные выборки из распределения Гумбеля.
-
См. также
scipy.stats.gumbel_l,scipy.stats.gumbel_r,scipy.stats.genextreme,weibull-
Generator.gumbel -
который следует использовать в новом коде.
Примечания
Распределение Гумбеля (или распределение наименьших экстремальных значений (SEV) или распределение наименьших экстремальных значений типа I) является одним из класса распределений обобщенных экстремальных значений (GEV), используемых в задачах моделирования экстремальных значений. Распределение Гумбеля является частным случаем распределения экстремальных значений типа I для максимумов из распределений с «экспоненциально-подобными» хвостами.
Плотность вероятности для распределения Гумбеля:
где
— режим, параметр местоположения, а
— параметр масштаба.
Распределение Гумбеля (названное в честь немецкого математика Эмиля Юлия Гумбеля) было использовано на ранних этапах в гидрологической литературе для моделирования наводнений. Оно также применяется для моделирования максимальной скорости ветра и интенсивности осадков. Это распределение с «толстыми хвостами» — вероятность события в хвосте распределения выше, чем если бы использовалась гауссова функция, поэтому так часто встречаются наводнения с 100-летней периодичностью. Изначально наводнения моделировались как гауссовский процесс, что недооценивало частоту экстремальных событий.
Это одно из семейства распределений экстремальных значений, распределений обобщенных экстремальных значений (GEV), которое также включает в себя распределения Вейбулла и Фреше.
Функция имеет среднее значение
и дисперсию
.
Ссылки
-
1 -
Гумбел, Э. Ю., «Статистическое изучение экстремумов», Нью-Йорк: Издательство Колумбийского университета, 1958.
-
2 -
Райсс, Р.-Д. и Томас, М., «Статистический анализ экстремальных значений в страховании, финансах, гидрологии и других областях», Базель: 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()
Демонстрация того, как распределение экстремальных значений может возникнуть из гауссовского процесса, и сравнение с гауссовским распределением:
>>> 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()
-
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/random/generated/numpy.random.RandomState.gumbel.html