Отказ от ответственности: в следующих пунктах это GROSSLY предполагает, что ваши данные нормально распространяются. Если вы на самом деле что-то разрабатываете, поговорите с сильным профессионалом в области статистики и позвольте этому человеку поставить подпись в строке, сообщив, какой будет уровень. Поговорите с пятью из них или 25 из них. Этот ответ предназначен для студента-строителя, спрашивающего «почему», а не для инженера-строителя, спрашивающего «как».
Я думаю, что вопрос, стоящий за вопросом: «что такое экстремальное распределение стоимости?». Да, это некоторая алгебра - символы. Ну и что? право?
Давайте вспомним о 1000-летних наводнениях. Они большие.
Когда они случаются, они убивают много людей. Много мостов рушится.
Вы знаете, что мост не идет вниз? Я делаю. Вы не ... пока.
Вопрос: Какой мост не разрушится при 1000-летнем наводнении?
Ответ: Мост предназначен для того, чтобы противостоять ему.
Данные, которые вам нужны, чтобы сделать это по-своему:
Допустим, у вас есть 200 лет ежедневных данных о воде. 1000-летнее наводнение там? Не удаленно. У вас есть образец одного хвоста распределения. У вас нет населения. Если бы вы знали всю историю наводнений, то у вас была бы общая совокупность данных. Давайте подумаем об этом. Сколько лет данных вам нужно иметь, сколько выборок, чтобы иметь хотя бы одно значение, вероятность которого равна 1 на 1000? В идеальном мире вам понадобится как минимум 1000 образцов. Реальный мир грязный, поэтому вам нужно больше. Вы начинаете получать шансы 50/50 примерно на 4000 образцов. Вы получаете гарантированно более 1 на 20 000 образцов. Выборка означает не «вода одна секунда против следующей», а показатель для каждого уникального источника вариаций - например, годичных изменений. Одна мера за один год, наряду с другой мерой в течение другого года составляют две выборки. Если у вас нет хороших данных за 4000 лет, то, скорее всего, у вас нет примера 1000-летнего потока данных. Хорошая вещь - вам не нужно столько данных, чтобы получить хороший результат.
Вот как можно получить лучшие результаты с меньшим количеством данных:
если вы посмотрите на годовые максимумы, вы можете подогнать «экстремальное распределение значений» к 200 значениям year-max-level, и вы получите распределение, которое содержит 1000-летнее наводнение. -уровень. Это будет алгебра, а не фактическое «насколько она велика». Вы можете использовать уравнение, чтобы определить, насколько большим будет 1000-летнее наводнение. Затем, учитывая тот объем воды - вы можете построить свой мост, чтобы противостоять ему. Не стреляйте по точному значению, стреляйте по большему, иначе вы проектируете его, чтобы он потерпел неудачу при 1000-летнем наводнении. Если вы смелые, то вы можете использовать повторную выборку, чтобы выяснить, насколько выше точного 1000-летнего значения вам нужно построить его, чтобы оно сопротивлялось.
Вот почему EV / GEV являются релевантными аналитическими формами:
Обобщенное распределение экстремальных значений показывает, насколько изменяется максимум. Изменение в максимуме ведет себя действительно иначе, чем изменение в среднем. Нормальное распределение через центральную предельную теорему описывает множество «центральных тенденций».
Процедура:
- выполните следующие 1000 раз:
i. выбрать 1000 номеров из стандартного нормального распределения
ii. рассчитать максимум этой группы образцов и сохранить его
Теперь построим график распределения результата.
#libraries
library(ggplot2)
#parameters and pre-declarations
nrolls <- 1000
ntimes <- 10000
store <- vector(length=ntimes)
#main loop
for (i in 1:ntimes){
#get samples
y <- rnorm(nrolls,mean=0,sd=1)
#store max
store[i] <- max(y)
}
#plot
ggplot(data=data.frame(store), aes(store)) +
geom_histogram(aes(y = ..density..),
col="red",
fill="green",
alpha = .2) +
geom_density(col=2) +
labs(title="Histogram for Max") +
labs(x="Max", y="Count")
Это НЕ "стандартное нормальное распределение":
Пик составляет 3,2, но максимум возрастает до 5,0. Это имеет перекос. Это не становится ниже около 2,5. Если у вас есть фактические данные (стандартная норма) и вы просто выбираете хвост, то вы равномерно случайным образом выбираете что-то вдоль этой кривой. Если вам повезет, то вы направляетесь к центру, а не к нижнему хвосту. Инжиниринг - это противоположность удачи - это постоянное достижение желаемых результатов каждый раз. « Случайные числа слишком важны, чтобы оставлять их на волю случая » (см. Сноску), особенно для инженера. Семейство аналитических функций, которое наилучшим образом соответствует этим данным - семейство распределений экстремальных значений.
Пример выборки:
допустим, у нас есть 200 случайных значений максимума года из стандартного нормального распределения, и мы собираемся представить, что они являются нашей 200-летней историей максимальных уровней воды (что бы это ни значило). Чтобы получить дистрибутив, мы сделали бы следующее:
- Пример переменной «store» (для краткого / простого кода)
- подходит для обобщенного распределения экстремальных значений
- найти среднее значение распределения
- используйте начальную загрузку, чтобы найти верхний предел 95% ДИ при изменении среднего, поэтому мы можем нацелить нашу разработку на это.
(код предполагает, что выше было выполнено первым)
library(SpatialExtremes) #if it isn't here install it, it is the ev library
y2 <- sample(store,size=200,replace=FALSE) #this is our data
myfit <- gevmle(y2)
Это дает результаты:
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
Их можно подключить к функции генерации для создания 20 000 образцов
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
Построение следующего даст 50/50 шансов на провал в любой год:
среднее (у3)
3,23681
Вот код, чтобы определить, что такое 1000-летний уровень "наводнения":
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
Придерживаясь этого, вы получите 50/50 шансов на неудачу при 1000-летнем наводнении.
p1000
4,510931
Для определения 95% верхнего значения CI я использовал следующий код:
myloc <- 3.0965530
myscale <- 0.2957722
myshape <- -0.1139021
N <- 1000
m <- 200
p_1000 <- vector(length=N)
yd <- vector(length=m)
for (i in 1:N){
#generate samples
yd <- rgev(m,loc=myloc,scale=myscale,shape=myshape)
#compute fit
fit_d <- gevmle(yd)
#compute quantile
p_1000[i] <- qgev(1-(1/1000),loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
}
mytarget <- quantile(p_1000,probs=0.95)
Результат был:
> mytarget
95%
4.812148
Это означает, что для того, чтобы противостоять подавляющему большинству 1000-летних наводнений, учитывая, что ваши данные безукоризненно нормальны (маловероятны), вы должны построить для ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
или
> 1/(1-out)
shape
1077.829
... 1078 год потопа.
Итоги:
- у вас есть выборка данных, а не фактическая общая численность населения. Это означает, что ваши квантили являются оценочными и могут быть отключены.
- Распределения, такие как обобщенное распределение экстремальных значений, построены так, чтобы использовать выборки для определения фактических хвостов. Они гораздо менее хороши при оценке, чем при использовании значений выборки, даже если у вас недостаточно выборок для классического подхода.
- Если вы крепкий, потолок высокий, но результат этого - вы не подведете.
Удачи
PS:
PS: веселее - видео на YouTube (не мое)
https://www.youtube.com/watch?v=EACkiMRT0pc
Сноска: Ковей, Роберт Р. «Генерация случайных чисел слишком важна, чтобы ее можно было оставить на волю случая». Методы прикладной вероятности и Монте-Карло и современные аспекты динамики. Исследования по прикладной математике 3 (1969): 70-111.
extreme value distribution
а неthe overall distribution
подгонять данные, и получить значения 98,5%.