9b Calcolo delle linee segnalatrici di possibilità pluviometrica con R
Upcoming SlideShare
Loading in...5
×
 

9b Calcolo delle linee segnalatrici di possibilità pluviometrica con R

on

  • 3,474 views

Calcolo delle linee segnalatrici di possibilità pluviometrica con R

Calcolo delle linee segnalatrici di possibilità pluviometrica con R

Statistics

Views

Total Views
3,474
Views on SlideShare
3,474
Embed Views
0

Actions

Likes
0
Downloads
382
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

9b Calcolo delle linee segnalatrici di possibilità pluviometrica con R 9b Calcolo delle linee segnalatrici di possibilità pluviometrica con R Presentation Transcript

  • Finding the LSPP with R C. White, Part of “ Drops of Rain”, 1967 Riccardo Rigon, Matteo Dall’AmicoTuesday, March 6, 12
  • Le precipitazioni Estreme Obbiettivi: •Calcolare le curve di possibilità pluviometrica con assegnato tempo di ritorno con R 2Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Consideriamo le precipitazioni massime annuali Queste si trovano negli annali idrologici registrate per certe durate caratteristiche: 1h, 3h, 6h,12h 24 h e rappresentano il massimo di precipitazione cumulato sulla prefissata durata. anno 1h 3h 6h 12h 24h 1 1925 50.0 NA NA NA NA 2 1928 35.0 47.0 50.0 50.4 67.6 ...................................... ...................................... 46 1979 38.6 52.8 54.8 70.2 84.2 47 1980 28.2 42.4 71.4 97.4 107.4 51 1987 32.6 40.6 64.6 77.2 81.2 52 1988 89.2 102.0 102.0 102.0 104.2 3Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme > read.table("PluviometriaPaperopoli_2.txt",header=TRUE) -> data1 > rep(c(1,3,6,12,24),each=50) -> h > c(data1[[2]],data1[[3]],data1[[4]],data1[[5]],data1[[6]]) -> hh > plot(hh ~ h,xlab="durata",ylab="Precipitazione (mm)",main="Precipitazioni Massime a Paperopoli") 4Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Precipitazioni Massime a Paperopoli 150 Precipitazione (mm) 100 50 1 3 6 12 24 Mediana durata >boxplot(hh ~ h,xlab="durata",ylab="Precipitazione (mm)",main="Precipitazioni Massime a Paperopoli") 5Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme 1 ora 3 ore 6 ore 25 15 15 20 10 15 10 Frequenza Frequenza Frequenza 10 5 5 5 0 0 0 20 40 60 80 20 40 60 80 100 40 60 80 100 Precipitazion in mm Precipitazion in mm Precipitazion in mm 6Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme > par(mfrow=c(1,3)) > hist(data1[[2]], breaks=8,xlab="Precipitazion in mm", ylab="Frequenza",main="Precipitazioni massime di 1 ore a Paperopoli") > hist(data1[[3]], breaks=8,xlab="Precipitazion in mm", ylab="Frequenza",main="Precipitazioni massime di 3 ore a Paperopoli") > hist(data1[[4]], breaks=8,xlab="Precipitazion in mm", ylab="Frequenza",main="Precipitazioni massime di 6 ore a Paperopoli") 7Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il primo problema da risolvere con l’ausilio della teoria delle probabilità e dell’analisi statistica E’ dunque quello di determinare, per ogni durata, la corrispondenza tra quantili (assegnati tempi di ritorno) e altezza di precipitazione. Per ogni durata si cercherà dunque di interpolare i dati ad una distribuzione di probabilità. La famiglia di curve candidata per questo scopo è la Curva dei valori estremi di tipo I, o curva di Gumbel h a P [H < h; a, b] = e e b ⇥<h<⇥ b è un parametro di forma, a un parametro di posizione (in effetti la moda)Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Distribuzione di Gumbel La media della distribuzione e data da: E[X] = b + a dove: 0.57721566490153228606 è la costante di Eulero-Mascheroni:Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Distribuzione di Gumbel La mediana: a b log(log(2)) La varianza : 2 V ar(X) = b 2 6Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Metodi di adattamento dei parametri relativi alla distribuzione di Gumbel ma con validità generale Il metodo dei momenti applicato alla curva di Gumbel consiste allora nel porre: MH [1; a, b] = µH MH [2; a, b] = ⇥H 2 o: b + a = µH 2 2 b 6 = ⇤H 2Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il metodo della massima verosimiglianza (maximum likelihood) relativi alla distribuzione di Gumbel ma con validità generale Il metodo si fonda sulla valutazione della probabilità (composta) di ottenere la serie temporale registrata: P [{h1 , · · ·, hN }; a, b] Nella ipotesi di indipendenza delle osservazioni, tale probabilità diviene: N P [{h1 , · · ·, hN }; a, b] = P [hi ; a, b] i=1Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il metodo della massima verosimiglianza (maximum likelihood) relativi alla distribuzione di Gumbel ma con validità generale N P [{h1 , · · ·, hN }; a, b] = P [hi ; a, b] i=1 La precedente probabilità si chiama anche funzione di verosimiglianza rappresenta ed è, evidentemente una funzione dei parametri. Per semplificare i calcoli si definisce anche la funzione detta di log- verosimiglianza: N log(P [{h1 , · · ·, hN }; a, b]) = log(P [hi ; a, b]) i=1 13Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il metodo della massima verosimiglianza (maximum likelihood) relativi alla distribuzione di Gumbel ma con validità generale Se la serie osservata è sufficientemente lunga, si ritiene che essa debba essere tale per cui la probabilità della sua osservazione è massima. Allora, i parametri della curva, che ne descrive la popolazione si possono ottenere da: ⇥ log(P [{h1 ,···,hN };a,b]) ⇥a =0 ⇥ log(P [{h1 ,···,hN };a,b]) ⇥b =0 Che produce un sistema di due equazioni non-lineari in due incognite. 14Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Metodo dei minimi quadrati Consiste nel definire lo scarto quadratico tra le misure, di ECDF, e la probabilità di non superamento: n 2 2 (⇥) = (Fi P [H < hi ; ⇥]) i=1 e nel minimizzarlo 15Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Metodo dei minimi quadrati Consiste nel definire lo scarto quadratico tra le misure, di ECDF, e la probabilità di non superamento: n 2 2 (⇥) = (Fi P [H < hi ; ⇥]) i=1 scarto quadratico e nel minimizzarlo 15Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Metodo dei minimi quadrati Consiste nel definire lo scarto quadratico tra le misure, di ECDF, e la probabilità di non superamento: n 2 2 (⇥) = (Fi P [H < hi ; ⇥]) i=1 scarto ECDF quadratico e nel minimizzarlo 15Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Metodo dei minimi quadrati Consiste nel definire lo scarto quadratico tra le misure, di ECDF, e la probabilità di non superamento: n 2 2 (⇥) = (Fi P [H < hi ; ⇥]) i=1 scarto ECDF Probabilità quadratico e nel minimizzarlo 15Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Tale minimizzazione si ottiene derivando l’espressione dello scarto rispetto agli m parametri ⇤ (⇥j ) 2 =0 j =1···m ⇤⇥j Ottenendo così le m equazioni in m incognite necessarie. 16Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Istogramma precipitazioni massime 1 h 14 12 10 Frequenza 8 6 4 2 0 20 40 60 80 Precipitazioni Orarie 17Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Un altro comando, che sarà riusato in seguito, è quello che fornisce la frequenza di non superamento empirica (in inglese: empirical cumulative distribution function) > ecdf(data1h) -> x > plot(x,xlab="h[mm]",ylab="P[H<h]",main="Frequenza di non superamento") 18Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Frequenza di non superamento 1.0 ● ● ● ● ● ● ● ● ● ● 0.8 ● ● ● ● ● ● ● ● ● 0.6 ● ● P[H<h] ● ● ● ● ● ● ● 0.4 ● ● ● ● ● ● ● ● 0.2 ● ● ● ● ● ● ● ● ● 0.0 20 40 60 80 h[mm] 19Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Tra le analisi preliminari che si possono effettuare, verifichiamo se i dati orari hanno distribuzione normale. Prima bisogna standardizzare i dati, ovvero ridurli a media nulla e deviazione standard unitaria. >h.norm=(data1h - mean(data1h))/sd(data1h) In R esiste poi il comando qqnorm che esegue loperazione desiderata >qqnorm(h.norm) >abline(0,1) il secondo comando aggiunge una linea al grafico, che, nel caso in esame, corrisponde alla distribuzione gaussiana normalizzata. 20Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Normal Q−Q Plot ● 4 3 Sample Quantiles ● 2 ● ● ● ● ●● 1 ● ●●● ●● ●● ●● ● ●●● ●● 0 ●● ●● ● ●● ●● ● ●● ●● ● ●●● ● −1 ● ● ● ●● ● ● ● −2 −1 0 1 2 Theoretical Quantiles 21Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Per esercizio, il lettore potrebbe ingegnarsi a verificare ladattamento dei dati ad una curva di Gumbel. Veniamo ora dunque allargomento centrale di queste slides, la stima dei parametri della curva di Gumbel con il metodo dei momenti. Tale metodo consiste nel fare coincidere con i momenti della popolazione, determinati analiticamente o numericamente generando un campione (numerico) sufficientemente numeroso di quella popolazione, con i momenti del campione empirico. Nel caso della curva di Gumbel sono note le espressioni analitiche dei momenti. 22Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Innanzitutto, determiniamo la media e la varianza del campione: > m1h=mean(data1h) > m1h > v1h=var(data1h) > v1h 23Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Ricordando le espressioni analitiche che legano momenti e parametri della curva di Gumbel, calcoliamo dapprima il fattore di scala: >b1.gumbel = sqrt(6*v1h)/pi e, il fattore di localizzazione (la moda), dopo aver definito una conveniente approssimazione del numero irrazionale di Eulero > eulergamma= 0.577216 > a1.gumbel = (m1h-b1.gumbel *eulergamma) 24Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme I due valori cosi ottenuti rappresentano una prima approssimazione dei parametri (che possiamo usare, per esempio per tracciare un qqplot() non normalizzato^1). In possesso dei valori dei parametri, possiamo tracciare la curva di Gumbel e sovrapporla alla curva di non superamento empirica. 25Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Per disegnare la curva di Gumbel si può procedere per due strade. Una è quella di definire una funzione in R^2. Una seconda è quella di usare una funzione già preparata da un esperto. Il pacchetto evd (extreme value distributions) contiene predefinita la funzione di Gumbel. Per poterlo caricare, si usa il comando >load(edv) P.S. - Il pacchetto edv non e’ distribuito con R, bisogna scaricarselo dal sito e istallarlo. A questo proposito le interfacce di R mettono a disposizione alcune utilities, per esempio il Package manager ... 26Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Per disegnare la curva di Gumbel, si scriva allora: > z= sort(data1h) > plot(z,pgumbel(z,loc=a1.gumbel,scale=b1.gumbel), xlab="h[mm]",ylab="P[H<h]",col="red",type="l") 27Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Alla quale si vuole aggiungere, eventualmente la curva cumulata, per osservare, per confronto visivo, se il metodo dei momenti ha lavorato correttamente. > plot(ecdf(data1h),xlab="h [mm]",main="Frequenza di non superamento",add=T) cruciale la parola chiave "add=T" che permette di sovrapporre i grafici. 28Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Ora, oltre al metodo dei momenti, si vuole applicare il metodo dei minimi quadrati, effettuando, alla fine una regressione lineare. Il metodo, nella versione qui applicato consiste 1-nel valutare la frequenza empirica di superamento associata a cisacuno dei dati (ad ogni hi, si associa un Fi) 2-calcolare Y_i := -log(-log(F_i)) 3- osservare che, in un piano (h,Y), i dati, se seguissero la distribuzione di Gumbel dovrebbero disporsi su di una retta 4- interpolare linearmente questa retta R offre numerosi strumenti per effettuare, verificare e visualizzare, queste operazioni (il già citato qqplot() è uno di questi). Una possibilità è quella di fare le operazioni ad una ad una, tuttavia le funzioni già implementate in R consentono alcune scorciatoie. 29Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Si può usare, per esempio, la funzione ecdf(), finora usata solo per scopi visivi.Una sua analisi appena un po più attenta mostra che ecdf() restituisce una sorta di funzione interpolata. Infatti, posto > ec=ecdf(data1h) risulta che, per esempio > ec(25.5) restituisce la probabilità del valore h=25.5 dunque Fi = ec(sort(data1h)) restituisce la probabilità di non superamento empirica dei dati orari. 30Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Loperazione 1 è dunque risolta con ecdf(). Loperazione 2 tradotta nel linguaggio di R è: Y = -(log(-log(Fi))) Questa operazione comporta un problema, poichè lultimo data ha, relativamente ai dati presenti Fi =1, il cui doppio logaritmo è Infinito 31Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Osservate come è stato eliminato l’ultimo valore che avrebbe dato in -infinito 32Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Si tratta ora di interpolare linearmente i dati con y=Yb e x = data1hb. Gli strumenti per la regressione lineare in R sono molteplici. In questo caso si userà il comando > lsfit(X,Y) -> fts Successivamente i vari campi prodotti da lsfit possono essere interrogati nel modo seguente: > fts$coefficients ovvero posponendo a fts la parola chiave $coefficients. Per gli altri "attributi" prodotti dalla regressione lineare si veda laiuto di lsfit() con ?lsfit() 33Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il coefficiente b2.gumbel è linverso del coefficiente angolare della regressione: > b2.gumbel = fts$coefficients[[2]]^-1 Il coefficiente > a2.gumbel = -fts$coefficients[[1]]*b2.gumbel Analogamente a quanto fatto in precedenza, anche questi due valori permettono di graficare una curva di Gumbel e di sovrapporla alla curva cumulata di probabilità empirica. 34Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Passiamo ora ad affrontare il problema della determinazione dei parametri della curva di Gumbel con il metodo della massima verosimiglianza. Sotto un esempio della funzione di massima verosimiglianza per i dati orari di precipitazione. 9-„-a H50-uL - a H50 - uL + Log@aD, -„-a H35-uL - a H35 - uL + Log@aD, -„-a H35.4-uL - a H35.4 - uL + Log@aD, -„-a H67.2-uL - a H67.2 - uL + Log@aD, Out[1180]= -„-a H25.2-uL - a H25.2 - uL + Log@aD, -„-a H35.2-uL - a H35.2 - uL + Log@aD, -„-a H48.6-uL - a H48.6 - uL + Log@aD, -„-a H36.4-uL - a H36.4 - uL + Log@aD, -„-a H47.8-uL - a H47.8 - uL + Log@aD, -„-a H39.4-uL - a H39.4 - uL + Log@aD, -„-a H21.4-uL - a H21.4 - uL + Log@aD, -„-a H33-uL - a H33 - uL + Log@aD, -„-a H42-uL - a H42 - uL + Log@aD, -„-a H39.6-uL - a H39.6 - uL + Log@aD, -„-a H28-uL - a H28 - uL + Log@aD, -„-a H42.4-uL - a H42.4 - uL + Log@aD, -„-a H21.2-uL - a H21.2 - uL + Log@aD, -„-a H21.2-uL - a H21.2 - uL + Log@aD, -„-a H19.6-uL - a H19.6 - uL + Log@aD, -„-a H41.6-uL - a H41.6 - uL + Log@aD, -„-a H51-uL - a H51 - uL + Log@aD, -„-a H32-uL - a H32 - uL + Log@aD, -„-a H27.4-uL - a H27.4 - uL + Log@aD, -„-a H35-uL - a H35 - uL + Log@aD, -„-a H21.6-uL - a H21.6 - uL + Log@aD, -„-a H36.8-uL - a H36.8 - uL + Log@aD, -„-a H54.2-uL - a H54.2 - uL + Log@aD, -„-a H39.4-uL - a H39.4 - uL + Log@aD, -„-a H30.6-uL - a H30.6 - uL + Log@aD, -„-a H30.6-uL - a H30.6 - uL + Log@aD, -„-a H33-uL - a H33 - uL + Log@aD, -„-a H32.2-uL - a H32.2 - uL + Log@aD, -„-a H38.4-uL - a H38.4 - uL + Log@aD, -„-a H33.4-uL - a H33.4 - uL + Log@aD, -„-a H31-uL - a H31 - uL + Log@aD, -„-a H37.4-uL - a H37.4 - uL + Log@aD, -„-a H36.8-uL - a H36.8 - uL + Log@aD, -„-a H39.2-uL - a H39.2 - uL + Log@aD, -„-a H29.4-uL - a H29.4 - uL + Log@aD, -„-a H40.4-uL - a H40.4 - uL + Log@aD, -„-a H37.6-uL - a H37.6 - uL + Log@aD, -„-a H30.4-uL - a H30.4 - uL + Log@aD, -„-a H44-uL - a H44 - uL + Log@aD, -„-a H38.6-uL - a H38.6 - uL + Log@aD, -„-a H28.2-uL - a H28.2 - uL + Log@aD, -„-a H61.2-uL - a H61.2 - uL + Log@aD, -„-a H23.6-uL - a H23.6 - uL + Log@aD, -„-a H20.2-uL - a H20.2 - uL + Log@aD, -„-a H32.6-uL - a H32.6 - uL + Log@aD, -„-a H89.2-uL - a H89.2 - uL + Log@aD= 35Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme In R loperazione è molto semplice. Infatti R provvede per questo il comando, fitdistr() contenuto nel pacchetto MASS (che va caricato con load(MASS). N.B. il pacchetto evd provvede un comando alternativo: gumbelfit()) >fitdistr(data1h,densfun=dgumbel,start=list(loc=a1.gumbel,scale=b1 .gumbel)) -> mlab Il comando precedente dice che: i dati da interpolare sono data1h, la densità di probabilità da usare è dgumbel (fornita dal pacchetto evd). La parola chiave "start" è seguita dai valori iniziali dai quali parte la ricerca dei parametri ottimali. Nel caso descritto, come valori iniziali si sono scelti quelli forniti dal metodo dei momenti (è una pratica consolidata). 36Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Dopo l’applicazione dei vari metodi di adattamento ... Come risultato abbiamo 3 coppie di parametri, tutti in un verto senso ottimi. Per distinguere quali tra questi insiemi di parametri è migliore, dobbiamo usare un criterio di confronto (un test non parametrico). Useremo test di Pearson. 37Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il Test di Pearson Il test di Pearson è un test NON parametrico e consiste: 1 - Nel suddividere il campo di probabilità in k parti, per esempio uguali 38Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il Test di PearsonIl test di Pearson è un test NON parametrico e consiste:2 - derivarne una suddivisione del dominio 39Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Il Test di Pearson Il test di Pearson è un test NON parametrico e consiste: 3 - Contare il numero di dati in ciascun intervallo (tra i cinque della figura) 40Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Le operazioni richieste sono le seguenti (mostrate per il caso del metodo dei momenti): 1- sudddividere lintervallo della probabilità in un numero sufficiente di intervalli (per esempio 5: {[0,0.2), [0.2,0.4),[0.4,0.6),[0.6,0.8),[0.8,1)}) > q=c(0.2,0.4,0.6,0.8) 2 - calcolare i valori dei quantili della distribuzione di Gumbel per i valori superiori degli intervalli (0.2,0.4,0.6,0.8) > qgumbel(q,loc=a1.gumbel,scale=b1.gumbel) -> qi 3 - Contare il numero di elementi del campione compresi negli intervalli di h: [0,h_0.2), [h_0.2,h_0.4) e cosi via. > c(0,ec(qi)*51) -> no1 > c(ec(qi)*51,51) -> no2 > no2-no1 ->no 4 - Calcolare il numero di elementi previsti nellintervallo prescritto dalla curva interpolante. E facile: N * delta p, dove, nel caso in esame, delta p =0.2 ed N è il numero totale di elementi presenti nel campione (51) > 0.2*length(data1h) -> deltapi > deltapi 5 - Calcolare il Chi^2 >X1=sum((no-deltapi)^2/deltapi) 41Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme 42Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Naturalmente la procedura va ripetuta per ciascuna curva interpolante. Per la massima verosimiglianza: > qgumbel(q,loc=a3.gumbel,scale=b3.gumbel) -> qi > c(0,ec(qi)*51) -> no1 > c(ec(qi)*51,51) -> no2 > no2-no1 > 0.2*length(data1h) -> deltapi > deltapi > X3=sum((no-deltapi)^2/deltapi) 43Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Dopo aver applicato Pearson La procedura va anche ripetuta per ogni durata, ovvero oltre che per la durata oraria, per le 3, 6, 12 e 24 ore. 0.04 1h 3h 0.03 6h P[h] 0.02 12h 24h 0.01 0.00 0 50 100 150 Precipitazione [mm] 44Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Dopo aver applicato Pearson 1.0 0.8 0.6 1h 3h P[h] 6h 12h 0.4 24h 0.2 0.0 0 50 100 150 Precipitazione [mm] 45Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Ecco i comandi di R per disegnare più curve di probabilità di Gumbel sullo stesso grafico > seq(from=1, to=150,by=0.1) -> x > plot(x,pgumbel(x,loc=loc.1.gumbel,scale=scale. 1.gumbel),type="l",col="red",xlab="Precipitazione [mm]",ylab="P[h]") > lines(x,pgumbel(x,loc=loc.3.gumbel,scale=scale. 3.gumbel),col="blue") > lines(x,pgumbel(x,loc=loc.6.gumbel,scale=scale. 6.gumbel),col="dark green") > lines(x,pgumbel(x,loc=loc.12.gumbel,scale=scale. 12.gumbel),col="dark red") > lines(x,pgumbel(x,loc=loc.24.gumbel,scale=scale. 24.gumbel),col="dark blue") > text(30,0.6,"1h",cex=0.8) > text(40,0.55,"3h",cex=0.8) > text(48,0.50,"6h",cex=0.8) > text(60,0.45,"12h",cex=0.8) > text(70,0.40,"24h",cex=0.8) 46Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme seq( ) produce un vettore di punti del dominio > seq(from=1, to=150,by=0.1) -> x plot( ) disegna la prima curva, con un linea continua (type=”l”) di colore rosso (col=”red”) con gli assi, i tickmarks e le legende degli assi > plot(x,pgumbel(x,loc=loc.1.gumbel,scale=scale. 1.gumbel),type="l",col="red",xlab="Precipitazione [mm]",ylab="P[h]") 47Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme lines( ) disegna le curve successive che si aggiungono alla prima. > lines(x,pgumbel(x,loc=loc.3.gumbel,scale=scale. 3.gumbel),col="blue") > lines(x,pgumbel(x,loc=loc.6.gumbel,scale=scale. 6.gumbel),col="dark green") > lines(x,pgumbel(x,loc=loc.12.gumbel,scale=scale. 12.gumbel),col="dark red") > lines(x,pgumbel(x,loc=loc.24.gumbel,scale=scale. 24.gumbel),col="dark blue") text(x,y,”testo”) scrive il testo tra apice nella posizione “x” e “y”. cex=0.8 riduce ul carattere di default di 2 decimi > text(30,0.6,"1h",cex=0.8) > text(40,0.55,"3h",cex=0.8) > text(48,0.50,"6h",cex=0.8) > text(60,0.45,"12h",cex=0.8) > text(70,0.40,"24h",cex=0.8) 48Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Dopo aver applicato Pearson 1.0 Tr = 10 anni 0.8 0.6 1h 3h P[h] 6h 12h 0.4 24h 0.2 h1 h3 h6 h12 h24 0.0 0 50 100 150 Precipitazione [mm] 49Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Ecco come calcolare il valore del quantile desiderato, in questo caso relativo a 10 anni di tempo di ritorno (P[H <h] =0.9. >c(qgumbel(0.9,loc=loc.1.gumbel,scale=scale. 1.gumbel),qgumbel(0.9,loc=loc.3.gumbel,scale=scale. 3.gumbel),qgumbel(0.9,loc=loc.6.gumbel,scale=scale. 6.gumbel),qgumbel(0.9,loc=loc.12.gumbel,scale=scale. 12.gumbel),qgumbel(0.9,loc=loc.24.gumbel,scale=scale. 24.gumbel))-> h10 50Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Questi punti vengono successivamente interpolati in campo logaritmico per ottenere, attraverso interpolazione lineare coefficiente ed esponente delle curve di possibilità pluviometrica. d = c(1,3,6,12,24) > lsfit(log(d),log(h10)) ->ft10 >ft10$coefficients Intercept X 3.8647304 0.3289624 Vista il logaritmo, per ottenere i veri coefficiente, l’intercetta va esponenziata > exp(ft10$coefficients[[1]]) [1] 47.69042 51Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Si ottengono infine per interpolazione le Linee Segnalitrici di Possibilita Pluviometrica 180 160 140 120 t [ore] 100 80 60 40 0 5 10 15 20 25 30 35 h [mm] 52Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Si ottengono infine per interpolazione le Linee Segnalitrici di Possibilita Pluviometrica 160 140 120 100 h [mm] 80 60 0.5 1.0 2.0 5.0 10.0 20.0 t [ore] 53Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Infine ecco come disegnare le curve di possibilità pluviometrica >plot(dd,exp(ft20$coefficients[[1]])*dd^ft20$coefficients[[2]] ,type="l",xlab="t [ore]",ylab="h [mm]",main="Linee Segnalitrici di Possibilita Pluviometrica") >lines(dd,exp(ft05$coefficients[[1]])*dd^ft05$coefficients[[2] ],type="l",col="blue") >lines(dd,exp(ft10$coefficients[[1]])*dd^ft10$coefficients[[2] ],type="l",col="red") > points(d,h10,pch=0) > points(d,h20,pch=1) > points(d,h05,pch=2) 54Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme Nel secondo grafico è stato creato un grafico bi-logaritmico usando l’opzione di plottaggio log=”xy” indicante che entrambi gli assi sono in scala logaritmica. > plot(dd,exp(ft20$coefficients[[1]])*dd^ft20$coefficients[[2]], type="l",xlab="t [ore]",ylab="h [mm]",main="Linee Segnalitrici di Possibilita Pluviometrica",log="xy") 55Riccardo RigonTuesday, March 6, 12
  • Le precipitazioni Estreme - Addendum 2 Il R: dchisq(x, df, ncp=0, log = FALSE) pchisq(q, df, ncp=0, lower.tail = TRUE, log.p = FALSE) qchisq(p, df, ncp=0, lower.tail = TRUE, log.p = FALSE) rchisq(n, df, ncp=0) x, q vector of quantiles. p vector of probabilities. n number of observations. If length(n) > 1, the length is taken to be the number required. df degrees of freedom (non-negative, but can be non-integer). ncp non-centrality parameter (non-negative). log, log.p logical; if TRUE, probabilities p are given as log(p). lower.tail logical; if TRUE (default), probabilities are P[X <= x], otherwise, P[X > x]. 56Riccardo Rigon - Universita’ degli studi di TrentoTuesday, March 6, 12