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 типа для максимумов из распределений с «экспоненциально подобными» хвостами.
Плотность вероятности для распределения Гумбеля:

где
— мода (параметр сдвига), а
— масштабный параметр.Распределение Гумбеля (названо в честь немецкого математика Эмиля Юлия Гумбеля) было использовано очень рано в гидрологической литературе для моделирования наводнений. Оно также используется для моделирования максимальной скорости ветра и интенсивности осадков. Это распределение с «толстыми хвостами» — вероятность события в хвосте распределения больше, чем если бы использовалась гауссова функция, поэтому 100-летние наводнения встречаются удивительно часто. Первоначально наводнения моделировались как гауссовы процессы, что недооценивало частоту экстремальных событий.
Это одно из распределений класса экстремальных значений, обобщенных распределений экстремальных значений (GEV), которое также включает распределения Вейбулла и Фреше.
Математическое ожидание функции равно
, а дисперсия —
.Ссылки
[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)
Демонстрация того, как распределение экстремальных значений может возникнуть из гауссового процесса, и сравнение с гауссовым распределением:
>>> 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()
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.random.gumbel.html