Avis de non-responsabilité: aux points suivants, cela suppose GROSSEMENT que vos données sont normalement distribuées. Si vous êtes en train de concevoir quelque chose, parlez-en à un professionnel des statistiques et laissez cette personne signer sur la ligne en disant quel sera le niveau. Parlez à cinq d'entre eux, ou à 25 d'entre eux. Cette réponse est destinée à un étudiant en génie civil demandant "pourquoi" pas à un professionnel de l'ingénierie demandant "comment".
Je pense que la question derrière la question est "quelle est la distribution de valeur extrême?". Oui, ce sont des symboles d'algèbre. Et alors? droite?
Pensons aux inondations de 1000 ans. Ils sont grands.
Quand ils arriveront, ils tueront beaucoup de gens. Beaucoup de ponts tombent.
Tu sais quel pont ne descend pas? Je fais. Vous ne ... pas encore.
Question: Quel pont ne tombe pas en cas d'inondation de 1000 ans?
Réponse: Le pont conçu pour y résister.
Les données dont vous avez besoin pour le faire à votre façon:
Disons donc que vous disposez de 200 ans de données quotidiennes sur l'eau. Y a-t-il une inondation de 1000 ans là-dedans? Pas à distance. Vous avez un échantillon d'une queue de la distribution. Vous n'avez pas la population. Si vous connaissiez toute l'histoire des inondations, vous auriez alors la population totale de données. Réfléchissons à cela. Combien d'années de données avez-vous besoin, combien d'échantillons, pour avoir au moins une valeur dont la probabilité est de 1 sur 1000? Dans un monde parfait, vous auriez besoin d'au moins 1000 échantillons. Le monde réel est en désordre, vous en avez donc besoin de plus. Vous commencez à obtenir des chances de 50/50 à environ 4000 échantillons. Vous commencez à être garanti d'avoir plus de 1 à environ 20 000 échantillons. L'échantillon ne signifie pas «l'eau une seconde par rapport à la suivante» mais une mesure pour chaque source unique de variation - comme la variation d'une année à l'autre. Une mesure sur un an, ainsi qu'une autre mesure sur une autre année constituent deux échantillons. Si vous ne disposez pas de 4000 ans de bonnes données, vous n'avez probablement pas d'exemple d'inondation de 1000 ans dans les données. La bonne chose est que vous n'avez pas besoin de beaucoup de données pour obtenir un bon résultat.
Voici comment obtenir de meilleurs résultats avec moins de données:
Si vous regardez les maxima annuels, vous pouvez ajuster la "distribution de valeurs extrêmes" aux 200 valeurs de niveaux-année maximum et vous aurez la distribution qui contient l'inondation de 1000 ans -niveau. Ce sera l'algèbre, pas le véritable "quelle est sa taille". Vous pouvez utiliser l'équation pour déterminer l'ampleur de l'inondation de 1000 ans. Puis, compte tenu de ce volume d'eau - vous pouvez construire votre pont pour y résister. Ne tirez pas pour la valeur exacte, tirez pour plus gros, sinon vous le concevez pour échouer lors du déluge de 1000 ans. Si vous êtes audacieux, vous pouvez utiliser le rééchantillonnage pour déterminer à quel point au-delà de la valeur exacte de 1000 ans, vous devez le construire pour le faire résister.
Voici pourquoi EV / GEV sont les formes analytiques pertinentes:
La distribution généralisée des valeurs extrêmes concerne la variation du max. La variation du maximum se comporte vraiment différemment de la variation de la moyenne. La distribution normale, via le théorème de la limite centrale, décrit beaucoup de "tendances centrales".
Procédure:
- effectuez les 1000 opérations suivantes:
i. choisir 1000 nombres dans la distribution normale standard
ii. calculer le maximum de ce groupe d'échantillons et le stocker
tracer maintenant la distribution du résultat
#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")
Ce n'est PAS la "distribution normale standard":
Le pic est à 3,2 mais le maximum monte vers 5,0. Il a un biais. Il n'est pas inférieur à environ 2,5. Si vous aviez des données réelles (la normale standard) et que vous choisissez juste la queue, alors vous choisissez uniformément au hasard quelque chose le long de cette courbe. Si vous avez de la chance, vous êtes vers le centre et non vers la queue inférieure. L'ingénierie est à l'opposé de la chance - il s'agit d'obtenir systématiquement les résultats souhaités à chaque fois. « Les nombres aléatoires sont beaucoup trop importants pour être laissés au hasard » (voir référence), en particulier pour un ingénieur. La famille de fonctions analytiques qui correspond le mieux à ces données - la famille de valeurs extrêmes des distributions.
Exemple d'ajustement:
Disons que nous avons 200 valeurs aléatoires du maximum de l'année à partir de la distribution normale standard, et nous allons prétendre que ce sont nos 200 ans d'histoire des niveaux d'eau maximum (quoi que cela signifie). Pour obtenir la distribution, nous procédons comme suit:
- Exemple de la variable "store" (pour créer du code court / facile)
- s'adapter à une distribution de valeur extrême généralisée
- trouver la moyenne de la distribution
- utilisez le bootstrap pour trouver la limite supérieure de l'IC à 95% dans la variation de la moyenne, afin que nous puissions cibler notre ingénierie pour cela.
(le code suppose que ce qui précède a été exécuté en premier)
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)
Cela donne des résultats:
> gevmle(y2)
loc scale shape
3.0965530 0.2957722 -0.1139021
Ceux-ci peuvent être connectés à la fonction de génération pour créer 20 000 échantillons
y3 <- rgev(20000,loc=myfit[1],scale=myfit[2],shape=myfit[3])
La construction de ce qui suit donnera 50/50 chances d'échec chaque année:
moyenne (y3)
3,23681
Voici le code pour déterminer quel est le niveau de «crue» de 1000 ans:
p1000 <- qgev(1-(1/1000),loc=myfit[1],scale=myfit[2],shape=myfit[3])
p1000
La construction de ce qui suit devrait vous donner 50/50 chances d'échouer lors de l'inondation de 1000 ans.
p1000
4.510931
Pour déterminer l'IC supérieur à 95%, j'ai utilisé le code suivant:
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)
Le résultat a été:
> mytarget
95%
4.812148
Cela signifie que pour résister à la grande majorité des inondations de 1000 ans, étant donné que vos données sont d'une propreté impeccable (peu probable), vous devez construire pour le ...
> out <- pgev(4.812148,loc=fit_d[1],scale=fit_d[2],shape=fit_d[3])
> 1/(1-out)
ou la
> 1/(1-out)
shape
1077.829
... Inondation de 1078 ans.
Bottom lines:
- vous avez un échantillon des données, pas la population totale réelle. Cela signifie que vos quantiles sont des estimations et pourraient être hors tension.
- Des distributions telles que la distribution généralisée des valeurs extrêmes sont conçues pour utiliser les échantillons afin de déterminer les queues réelles. Ils sont beaucoup moins mal à estimer que d'utiliser les valeurs d'échantillon, même si vous n'avez pas assez d'échantillons pour l'approche classique.
- Si vous êtes robuste, le plafond est haut, mais le résultat est - vous n'échouez pas.
Bonne chance
PS:
PS: plus amusant - une vidéo youtube (pas la mienne)
https://www.youtube.com/watch?v=EACkiMRT0pc
Footnote: Coveyou, Robert R. "La génération de nombres aléatoires est trop importante pour être laissée au hasard." Probabilité appliquée et méthodes de Monte Carlo et aspects modernes de la dynamique. Études en mathématiques appliquées 3 (1969): 70-111.
extreme value distribution
plutôt quethe overall distribution
d'ajuster les données et obtenir les valeurs de 98,5%.