Isenção de responsabilidade: Nos pontos a seguir, GROSSLY presume que seus dados sejam normalmente distribuídos. Se você está realmente criando alguma coisa, converse com um profissional de estatísticas forte e deixe essa pessoa assinar na linha dizendo qual será o nível. Converse com cinco deles, ou 25 deles. Essa resposta é para um estudante de engenharia civil que pergunta "por que" e não para um profissional de engenharia que pergunta "como".
Eu acho que a pergunta por trás da pergunta é "qual é a distribuição de valor extremo?". Sim, são alguns símbolos de álgebra. E daí? certo?
Vamos pensar em inundações de 1000 anos. Eles são grandes.
Quando eles acontecem, eles vão matar muitas pessoas. Muitas pontes estão caindo.
Você sabe que ponte não está caindo? Eu faço. Você não ... ainda.
Pergunta: Qual ponte não está caindo em uma inundação de 1000 anos?
Resposta: A ponte projetada para resistir a ela.
Os dados que você precisa fazer do seu jeito:
Digamos que você tenha 200 anos de dados diários sobre a água. A inundação de 1000 anos está aí? Não remotamente. Você tem uma amostra de uma cauda da distribuição. Você não tem população. Se você soubesse todo o histórico de inundações, teria a população total de dados. Vamos pensar sobre isso. Quantos anos de dados você precisa, quantas amostras, para ter pelo menos um valor cuja probabilidade é de 1 em 1000? Em um mundo perfeito, você precisaria de pelo menos 1000 amostras. O mundo real é confuso, então você precisa de mais. Você começa a obter probabilidades de 50/50 em cerca de 4000 amostras. Você começa a ter garantia de mais de 1 em cerca de 20.000 amostras. Amostra não significa "água um segundo vs. o próximo", mas uma medida para cada fonte única de variação - como a variação de ano para ano. Uma medida em um ano, juntamente com outra medida ao longo de outro ano, constituem duas amostras. Se você não possui 4.000 anos de bons dados, provavelmente não possui um exemplo de inundação de 1000 anos nos dados. O bom é que você não precisa de tantos dados para obter um bom resultado.
Veja como obter melhores resultados com menos dados:
se você observar os máximos anuais, poderá ajustar a "distribuição de valor extremo" aos 200 valores dos níveis máximos do ano e terá a distribuição que contém a inundação de 1000 anos -nível. Será a álgebra, não o real "quão grande é". Você pode usar a equação para determinar o tamanho da inundação de 1000 anos. Então, dado esse volume de água - você pode construir sua ponte para resistir a ela. Não atire para o valor exato, atire para maior, caso contrário, você o está projetando para falhar na enchente de 1000 anos. Se você estiver em negrito, poderá usar a reamostragem para descobrir quanto além do valor exato de 1000 anos para o qual precisa construí-lo para que ele resista.
Eis por que EV / GEV são as formas analíticas relevantes:
A distribuição generalizada de valores extremos é sobre quanto o máximo varia. A variação no máximo se comporta realmente diferente da variação na média. A distribuição normal, através do teorema do limite central, descreve muitas "tendências centrais".
Procedimento:
- faça o seguinte 1000 vezes:
i. escolha 1000 números da distribuição normal padrão
ii. calcular o máximo desse grupo de amostras e armazená-lo
agora plote a distribuição do resultado
#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")
Esta NÃO é a "distribuição normal padrão":
O pico está em 3,2, mas o máximo sobe para 5,0. Tem inclinação. Não fica abaixo de 2,5. Se você tinha dados reais (o padrão normal) e apenas selecionou a cauda, então você está uniformemente escolhendo aleatoriamente algo ao longo desta curva. Se você tiver sorte, estará em direção ao centro e não à cauda inferior. Engenharia é o oposto da sorte - é sempre alcançar os resultados desejados de forma consistente. " Números aleatórios são importantes demais para serem deixados ao acaso " (consulte a nota de rodapé), especialmente para um engenheiro. A família de funções analíticas que melhor se ajusta a esses dados - a família de distribuições de extremo valor.
Ajuste da amostra:
digamos que tenhamos 200 valores aleatórios do ano, no máximo, a partir da distribuição normal padrão, e vamos fingir que são nossos 200 anos de história de níveis máximos de água (o que isso significa). Para obter a distribuição, faríamos o seguinte:
- Exemplo da variável "store" (para facilitar o código curto / fácil)
- ajuste a uma distribuição generalizada de valores extremos
- encontre a média da distribuição
- use o bootstrapping para encontrar o limite superior do IC de 95% na variação da média, para que possamos direcionar nossa engenharia para isso.
(o código presume que o acima foi executado primeiro)
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)
Isso fornece resultados:
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
Eles podem ser conectados à função de geração para criar 20.000 amostras
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
Construir para o seguinte dará chances de 50/50 de falha em qualquer ano:
média (y3)
3,23681
Aqui está o código para determinar qual é o nível de "inundação" de 1000 anos:
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
Construir para o seguinte deve dar 50/50 de chances de falhar na enchente de 1000 anos.
p1000
4.510931
Para determinar o IC superior a 95%, usei o seguinte código:
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)
O resultado foi:
> mytarget
95%
4.812148
Isso significa que, para resistir à grande maioria das inundações de 1000 anos, considerando que seus dados são imaculadamente normais (não é provável), você deve criar para o ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
ou o
> 1/(1-out)
shape
1077.829
... inundação de 1078 anos.
Linhas de fundo:
- você tem uma amostra dos dados, não a população total real. Isso significa que seus quantis são estimativas e podem estar desativados.
- Distribuições como a distribuição generalizada de valores extremos são construídas para usar as amostras para determinar as caudas reais. Eles são muito menos prejudiciais ao estimar do que usar os valores da amostra, mesmo se você não tiver amostras suficientes para a abordagem clássica.
- Se você é robusto, o teto é alto, mas o resultado é: você não falha.
Boa sorte
PS:
PS: mais divertido - um vídeo do youtube (não meu)
https://www.youtube.com/watch?v=EACkiMRT0pc
Nota de rodapé: Coveyou, Robert R. "A geração aleatória de números é importante demais para ser deixada ao acaso." Métodos de Probabilidade Aplicada e Monte Carlo e aspectos modernos da dinâmica. Estudos em matemática aplicada 3 (1969): 70-111.
extreme value distribution
vez dethe overall distribution
ajustar os dados e obter os valores de 98,5%.