Spec-Zone.ru › NumPy 1.10

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

Плотность вероятности для распределения Гумбеля:

p(x) = \frac{e^{-(x - \mu)/ \beta}}{\beta} e^{ -e^{-(x - \mu)/
\beta}},

где \mu - это мода, параметр сдвига, а \beta - параметр масштаба.

Распределение Гумбеля (названное в честь немецкого математика Эмиля Юлиуса Гумбеля) было использовано на ранних этапах в литературе по гидрологии для моделирования наводнений. Оно также используется для моделирования максимальной скорости ветра и интенсивности осадков. Это «распределение с толстыми хвостами» - вероятность события в хвосте распределения больше, чем если бы использовалась гауссова функция, отсюда и удивительно частая встречаемость наводнений 100-летней давности. Наводнения первоначально моделировались как гауссовский процесс, что недооценивало частоту экстремальных событий.

Это одно из семейства распределений экстремальных значений, распределения обобщенных экстремальных значений (GEV), которое также включает в себя распределения Вейбулла и Фреше.

Математическое ожидание функции равно \mu + 0.57721\beta, а дисперсия равна \frac{\pi^2}{6}\beta^2.

Ссылки

[R152] Гумбел, Э. Ю., «Статистика экстремальных значений», Нью-Йорк: Издательство Колумбийского университета, 1958.
[R153] Райсс, Р.-Д. и Томас, М., «Статистический анализ экстремальных значений из страхования, финансов, гидрологии и других областей», Базель: Издательство Биркхаузера, 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)

../../_images/numpy-random-RandomState-gumbel-1_00_00.png

Демонстрация, как распределение экстремальных значений может возникнуть из гауссовского процесса, и сравнение с гауссовым распределением:

>>> 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()

(png, pdf)

../../_images/numpy-random-RandomState-gumbel-1_01_00.png

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.random.RandomState.gumbel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API