Descargo de responsabilidad: En algunos puntos de lo que sigue, esto supone GROSAMENTE que sus datos se distribuyen normalmente. Si realmente estás diseñando algo, habla con un profesional de las estadísticas y deja que esa persona firme en la línea diciendo cuál será el nivel. Habla con cinco de ellos, o con 25. Esta respuesta está pensada para un estudiante de ingeniería civil que pregunta "por qué", no para un profesional de la ingeniería que pregunta "cómo".
Creo que la pregunta que hay detrás es "¿qué es la distribución de valores extremos?". Sí, es un poco de álgebra - símbolos. ¿Y qué?
Pensemos en las inundaciones de 1000 años. Son grandes.
Cuando se produzcan, van a matar a mucha gente. Muchos puentes van a caer.
¿Sabes qué puente no va a caer? Lo sé. Tú no... todavía.
Pregunta: ¿Qué puente no se va a caer en una inundación de 1000 años?
Respuesta: El puente diseñado para soportarlo.
Los datos que necesitas para hacerlo a tu manera:
Digamos que tienes 200 años de datos diarios sobre el agua. ¿Está la inundación de 1000 años ahí? Ni de lejos. Tienes una muestra de una cola de la distribución. No tienes la población. Si conocieras toda la historia de las inundaciones entonces tendrías la población total de datos. Pensemos en esto. ¿Cuántos años de datos necesitas tener, cuántas muestras, para tener al menos un valor cuya probabilidad sea de 1 en 1000? En un mundo perfecto, se necesitarían al menos 1000 muestras. El mundo real es desordenado, así que necesitas más. Empiezas a tener probabilidades de 50/50 a partir de unas 4000 muestras. Empiezas a tener garantías de más de 1 en torno a las 20.000 muestras. Muestra no significa "agua un segundo frente al siguiente", sino una medida para cada fuente de variación única, como la variación de un año a otro. Una medida sobre un año, junto con otra medida sobre otro año constituyen dos muestras. Si no tienes 4.000 años de buenos datos, entonces es probable que no tengas un ejemplo de inundación de 1000 años en los datos. Lo bueno es que no se necesitan tantos datos para obtener un buen resultado.
He aquí cómo obtener mejores resultados con menos datos:
Si se observan los máximos anuales, se puede ajustar la "distribución de valores extremos" a los 200 valores de los niveles máximos anuales y se tendrá la distribución que contiene el nivel de inundación de 1000 años. Será el álgebra, no el verdadero "cómo es de grande". Puedes utilizar la ecuación para determinar el tamaño de la inundación de 1000 años. Entonces, dado ese volumen de agua, puedes construir tu puente para resistirlo. No te fijes en el valor exacto, sino en el más grande, ya que de lo contrario lo estarás diseñando para que falle en la crecida de 1.000 años. Si te atreves, puedes utilizar el remuestreo para calcular cuánto más allá del valor exacto de 1000 años necesitas construirlo para que resista.
He aquí por qué EV/GEV son las formas analíticas pertinentes:
La distribución generalizada de valores extremos se refiere a cuánto varía el máximo. La variación del máximo se comporta de forma muy diferente a la variación de la media. La distribución normal, a través del teorema del límite central, describe muchas "tendencias centrales".
Procedimiento:
- haz lo siguiente 1000 veces:
i. elegir 1000 números de la distribución normal estándar
ii. calcular el máximo de ese grupo de muestras y almacenarlo
-
ahora trazar la distribución del 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 NO es la "distribución normal estándar":
El pico está en 3,2 pero el máximo sube hacia 5,0. Tiene una inclinación. No llega por debajo de 2,5. Si tienes datos reales (la normal estándar) y sólo eliges la cola, entonces estás eligiendo uniformemente al azar algo a lo largo de esta curva. Si tienes suerte, entonces estás hacia el centro y no en la cola inferior. La ingeniería es lo contrario de la suerte: se trata de conseguir siempre los resultados deseados. " Los números aleatorios son demasiado importantes para dejarlos al azar "(véase la nota a pie de página), especialmente para un ingeniero. La familia de funciones analíticas que mejor se ajusta a estos datos: la familia de distribuciones de valores extremos.
Muestra de ajuste:
Digamos que tenemos 200 valores aleatorios del año-máximo de la distribución normal estándar, y vamos a pretender que son nuestra historia de 200 años de niveles máximos de agua (sea lo que sea que eso signifique). Para obtener la distribución haríamos lo siguiente:
- Muestrear la variable "store" (para hacer un código corto/fácil)
- ajuste a una distribución de valores extremos generalizada
- encontrar la media de la distribución
- utilizar el bootstrapping para encontrar el límite superior del IC del 95% en la variación de la media, por lo que podemos orientar nuestra ingeniería para ello.
(el código supone que se ha ejecutado primero lo anterior)
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)
Esto da resultados:
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
Se pueden introducir en la función generadora para crear 20.000 muestras
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
Construir hasta lo siguiente dará 50/50 de probabilidades de fracasar en cualquier año:
media(y3)
3.23681
Aquí está el código para determinar cuál es el nivel de "inundación" de 1000 años:
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
Si se construye de esta manera, las probabilidades de fracasar en una inundación de 1000 años son del 50 %.
p1000
4.510931
Para determinar el IC superior del 95% he utilizado el siguiente 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)
El resultado fue:
> mytarget
95%
4.812148
Esto significa que, para resistir la gran mayoría de las inundaciones de 1.000 años, dado que sus datos son inmaculadamente normales (no es probable), debe construir para el ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
o el
> 1/(1-out)
shape
1077.829
... 1078 años de inundación.
Las líneas de fondo:
- tienes una muestra de los datos, no la población total real. Eso significa que tus cuantiles son estimaciones, y podrían estar fuera de lugar.
- Las distribuciones como la del valor extremo generalizado son construidas para utilizar las muestras para determinar las colas reales. Son mucho menos malas en la estimación que el uso de los valores de la muestra, incluso si no se tienen suficientes muestras para el enfoque clásico.
- Si eres robusto el techo es alto, pero el resultado de eso es - que no fracasas.
Mucha suerte
PS:
- He oído que algunos diseños de ingeniería civil tienen como objetivo el percentil 98,5. Si hubiéramos calculado el percentil 98,5 en lugar del máximo, habríamos encontrado una curva diferente con parámetros distintos. Creo que se trata de construir para una tormenta de 67 años. $$ 1/(1-0.985) \approx 67 $$ El enfoque, en mi opinión, sería encontrar la distribución de las tormentas de 67 años, luego determinar la variación en torno a la media, y conseguir el acolchado de manera que esté diseñado para tener éxito en la tormenta de 67 años en lugar de fracasar en ella.
- Teniendo en cuenta el punto anterior, en promedio cada 67 años los civiles deberían tener que reconstruir. Por lo tanto, con el coste total de la ingeniería y la construcción cada 67 años, dada la vida operativa de la estructura civil (no sé cuál es), en algún momento podría ser menos costoso realizar la ingeniería para un período intertemporal más largo. Una infraestructura civil sostenible es aquella diseñada para durar al menos una vida humana sin fallos, ¿no?
PS: más diversión - un video de youtube (no es mío)
https://www.youtube.com/watch?v=EACkiMRT0pc
Nota a pie de página: Coveyou, Robert R. "La generación de números aleatorios es demasiado importante para dejarla al azar". Métodos de Probabilidad Aplicada y Monte Carlo y aspectos modernos de la dinámica. Studies in applied mathematics 3 (1969): 70-111.