numpy.random.gumbel
-
numpy.random.gumbel(loc=0.0, scale=1.0, size=None) -
Генерация выборок из распределения Гумбеля.
Генерация выборок из распределения Гумбеля со заданными параметрами сдвига и масштаба. Дополнительная информация о распределении Гумбеля приведена в примечаниях и ссылках ниже.
Параметры: loc : float или array_like чисел с плавающей точкой, необязательно
Параметр сдвига, определяющий положение моды распределения. По умолчанию 0.
scale : float или array_like чисел с плавающей точкой, необязательно
Параметр масштаба распределения. По умолчанию 1.
size : целое число или кортеж целых чисел, необязательно
Форма выходного массива. Если заданная форма, например,
(m, n, k), тоm * n * kвыборок генерируется. Если size не указан (по умолчанию), то возвращается единственное значение, еслиlocиscaleявляются скалярами. В противном случае,np.broadcast(loc, scale).sizeвыборок генерируется.Возвращает: out : ndarray или скаляр
Сгенерированные выборки из распределения Гумбеля с заданными параметрами.
Примечания
Распределение Гумбеля (или распределение наименьшего экстремального значения (SEV) или распределение наименьшего экстремального значения типа I) — одно из класса распределений обобщённых экстремальных значений (GEV), используемых для моделирования экстремальных значений. Распределение Гумбеля является частным случаем распределения экстремального значения типа I для максимумов из распределений с «экспоненциально убывающими» хвостами.
Функция плотности вероятности для распределения Гумбеля:
где
— мода (параметр сдвига), а
— параметр масштаба.
Распределение Гумбеля (названное в честь немецкого математика Эмиля Юлиуса Гумбеля) было применено в литературе по гидрологии для моделирования наводнений. Оно также используется для моделирования максимальной скорости ветра и интенсивности осадков. Это «распределение с тяжёлыми хвостами» — вероятность события в хвосте распределения выше, чем при использовании Гауссова распределения, отсюда и неожиданно частое возникновение 100-летних наводнений. Наводнения первоначально моделировались как гауссовский процесс, что недооценивало частоту экстремальных событий.
Это одно из распределений класса экстремальных распределений, распределений обобщённых экстремальных значений (GEV), которое также включает в себя распределение Вейбулла и распределение Фреше.
Математическое ожидание функции равно
, а дисперсия равна
.
Ссылки
[R232] Gumbel, E. J., «Statistics of Extremes», New York: Columbia University Press, 1958. [R233] 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, 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()
Иллюстрация того, как распределение экстремальных значений может возникать из гауссовского процесса, и сравнение с гауссовым распределением:
>>> 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()
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.random.gumbel.html