numpy.random.RandomState.gumbel
-
RandomState.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), которые также включают распределение Вейбулла и Фреше.
Среднее значение функции равно
, а дисперсия равна
.Ссылки
[R152] Gumbel, E. J., «Статистика экстремумов», Нью-Йорк: Columbia University Press, 1958. [R153] Reiss, R.-D. and Thomas, M., «Статистический анализ экстремальных значений из страхования, финансов, гидрологии и других областей», Базель: 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.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()
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.random.RandomState.gumbel.html