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