Está en la página 1de 12

Modelizacin estocstica de precipitaciones

mximas para el clculo de eventos extremos a


partir de los periodos de retorno mediante R
Prof. Dr. Antonio Jos Sez Castillo
20 de marzo de 2009
Departamento de Estadstica e Investigacin Operativa, Universidad de Jan

Resumen
Las precipitaciones mximas en una determinada zona geogrfica son
un fenmeno claramente sujeto a incertidumbre. Su modelizacin mediante distribuciones de probabilidad posibilita la determinacin de lo
que puede considerarse un evento extremo en un determinado periodo
de retorno. En este trabajo se describe cmo realizar dicha modelizacin mediante distribuciones Gumbel, log-normal, log-Pearson Tipo III
y SQRT-ETmax, ajustando sus parmetros mediante el mtodo de mxima verosimilitud, evaluando la bondad de los ajustes mediante el test
de Kolmogorov-Smirnoff y obteniendo los eventos extremos a partir de las
funciones cuantil de las distribuciones ajustadas. Todos los procedimientos
se han implementado en el software estadstico R.
Palabras clave: precipitaciones mximas, eventos extremos, periodos
de retorno, mxima verosimilitud, Gumbel, log-normal, log-Pearson Tipo
III, SQRT-ETmax, Kolmogorov-Smirnoff, R.

1.

Introduccin

Aunque la motivacin del presente trabajo est en relacin con las precipitaciones mximas soportadas por una determinada zona geogrfica, en general podemos considerar que el objeto de estudio es una variable aleatoria X
que cuantifica la magnitud de algn evento como tormentas, avenidas, sequas,
subidas del nivel del mar, etc.
Se dice que dicha variable toma como valor un evento extremo si supera un
valor umbral, xT , previamente especificado bajo algn criterio.
El tiempo que transcurre entre la ocurrencia de dos eventos extremos es asimismo una variable aleatoria, t, llamada intervalo de recurrencia, cuya media,
E [t] = T , se denomina periodo de retorno. Teniendo en cuenta que t contabiliza el nmero de unidades de tiempo hasta la ocurrencia de un nuevo evento
1

Modelizacin estocstica de precipitaciones mximas

extremo, su distribucin de probabilidad de una distribucin geomtrica de parmetro


p = P [X xT ] = 1 F (xT ) ,
(1)
donde F (x) = P [X x] es la funcin de distribucin de la magnitud del fenmeno. Por tanto su media es
E [t] =

1p
.
p

Sustituyendo (1) en esta expresin tenemos que


F (xT ) =

1
T 1
=1 .
T
T

Esta expresin permite relacionar el umbral a partir del cual se considera que
un evento es extremo con su frecuencia de ocurrencia, es decir, con el periodo de retorno, a travs de la distribucin de probabilidad de la variable X.
Concretamente,


1
1
xT = F
1
.
(2)
T
Por tanto, y a modo de resumen, si consideramos que un evento extremo es
el que ocurre en promedio una vez cada T aos, (2) determina cul es el evento
extremo.

2.

Modelos probabilsticos para la magnitud del


evento

Queda manifiesto, por tanto, que es necesario conocer la distribucin de probabilidad de la magnitud del evento, X, para poner en relacin el periodo de
retorno con el evento extremo. En ese sentido vamos a describir a continuacin algunos de los modelos probabilsticos ms utilizados para tal fin en la
bibliografa consultada.

2.1.

La distribucin de Gumbel

La distribudin de Gumbel puede caracterizarse a partir de su funcin de


distribucin, dada por [Wikipedia]
F (x; , ) = ee

(x)/

El parmetro es conocido como parmetro de localizacin y el parmetro


2
como parmetro de escala. Su media es + y su varianza 6 .
A partir de estas dos expresiones de la media y la varianza poblacionales,
despejando y en trminos de la media y la varianza de los datos, se pueden
obtener las estimaciones de y mediante el mtodo de los momentos, aunque
es conocido que este mtodo no garantiza eficiencia en las estimaciones. Como
Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

alternativa al mtodo de los momentos, el mtodo de mxima verosimilitud,


que utilizaremos en este trabajo, se haya implementado en la mayora de los
paquetes de software estadstico, entre ellos R.

2.2.

La distribucin log-normal

La distribucin log-normal supone modelizar el logaritmo de los datos mediante una distribucin normal. Es decir, consiste en plantear que Y = logX,
sigue una distribucin N (, ). La estimacin de sus parmetros viene dada por
la estimacin de los parmetros de la normal asociada.

2.3.

La distribucin log-Pearson Tipo III

De igual forma, la distribucin de log-Pearson Tipo III supone modelizar los datos en escala logartmica, es decir, considerar un modelo para Y =
logX. En este caso, el modelo es la llamada distribucin de Pearson Tipo III
[Kotz and Nadarajah, 2000]. Aunque existen distintas parametrizaciones de esta
distribucin, una de las ms habituales es la dada por la versin biparamtrica
cuya funcin de densidad es [HydroToolBox],
f (x; k, ) = xk1

ex/
para x > 0 y k, > 0.
k (k)

Esta distribucin es ms conocida como distribucin Gamma. El parmetro k


es el llamado parmetro de forma y el parmetro , el parmetro de escala. En
otras ocasiones esta densidad se expresa en trminos del parmetro de razn
= 1/.
La estimacin de los parmetros puede realizarse mediante el mtodo de
los momentos, aunque el mtodo de mxima verosimilitud suele proporcionar
mejores estimaciones y se encuentra implementado en los paquetes estadticos
ms comunes.
De cara a la implementacin en R que veremos despus hay que tener en
cuenta que, al contrario que la distrbucin log-normal, la distribucin de logPearson Tipo III (a partir de ahora, por simplicidad, la llamaremos log-Gamma)
no se encuentra explcitamente implementada en R, sino que debe considerarse a
travs de su relacin con la distribucin Gamma. En este sentido, si Y = logX
y ajustamos una distribucin Gamma a Y , dada por la densidad f (y; k, ),
tendramos que la densidad de X sera
g (x; k, ) =

2.4.

f (log (x) ; k, )
.
x

La distribucin SQRT-ETmax

Esta distribucin, originalmente propuesta en el contexto de precipitaciones


mximas en Japn [Etoh et al, 1986], ha venido siendo recomendada por la Direccin General de Carreteras en los ltimo aos para la modelizacin de las
Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

precipitaciones mximas [Ferrer y Ardiles, 1994]. Su definicin puede hacerse a


partir de su funcin de distribucin, dada por
F (x) = ek(1+

x)e

para valores positivos de x. Aunque algunos autores han desarrollado una implementacin del mtodo de los momentos que permite su evaluacin en las hojas
de clculo ms habituales [Zorraquino, 2004]1 , los propios autores que definieron la distribucin recomendaban la estimacin mediante el mtodo de mxima
verosimilitud [Etoh et al, 1986].
En esta ocasin, ni la distribucin SQRT-ETmax ni por supuesto su estimacin mximo-verosimil estn implementadas en R (ni en ningn paquete
estadstico comn), aunque su programacin es sencilla, como veremos.

3.

Evaluacin de la bondad del ajuste mediante


el test de Kolmogorov-Smirnoff

Acabamos de comentar en la descripcin de los modelos la posibilidad de estimar los parmetros de las distintas distribuciones. Eso nos conducir a obtener
cuatro modelos ajustados a los datos, uno para cada distribucin. Inmediatamente surgen dos cuestiones:
1. Son esos modelos ajustados vlidos para los datos que modelizan?
2. Si varios de ellos son vlidos, cul es el mejor ?
Hay que decir, en primer lugar, que ambas preguntas obligan a decidirse por un
criterio de bondad. En el contexto de las distribuciones continuas, uno de los
ms habituales es el conocido como test de Kolmogorov-Smirnoff, que se basa
en cuantificar la mxima diferencia entre el modelo terico y los datos en su
funcin de distribucin.
Recordemos que la funcin de distribucin de un modelo terico se define
como
F (x) = P [X x] .
Por su parte, si tenemos la muestra de datos ordenados de menor a mayor,
x(1) , ..., x(N ) , podramos considerar la proporcin de datos inferior a cada uno
de ellos, es decir,
 numero de datos x(i)
i
= .
SN x(i) =
N
N
Lgicamente, el ajuste de los datos dado por F (x) ser tanto mejor cuanto
ms se parezca a SN (x). Precisamente por ello el test de Kolmogorov-Smirnoff
1 El mismo autor comenta que la funcin de distribucin no tiene primitiva. En realidad
quiere decir que no tiene inversa explcita, pero tampoco algunas de las otras distribuciones
propuestas, como la log-normal, y ello no es un problema, ya que puede aproximarse mediante
mtodos numricos.

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

tiene como estadstico el supremo de las diferencias entre ambas funciones. Este
estadstico es evaluado dentro de la distribucin en el muestreo, proporcionando
el p-valor del test.
De forma resumida, el procedimiento en el siguiente:
1. El test se plantea la validez de la hiptesis nula
H0 : el ajuste de F (x) es v
alido
frente a la alternativa H1 : el ajuste de F (x) no es vlido.
2. Se realiza el test, calculando el p-valor, p.
3. Si p < 0,05, rechazaremos H0 en favor de H1 concluyendo que el ajuste es
no vlido. Si por el contrario, p 0,05, aceptaremos el ajuste como vlido.
4. Cuanto mayor sea el p-valor, mejor es el ajuste.
5. Si varios ajustes son vlidos, el mejor ser aqul con mayor p-valor.
Hay que decir, por ltimo, que esta comparacin entre distintos modelos a partir
del test de Kolmogorov-Smirnoff puede hacerse ya que nuestros cuatro modelos
tienen todos ellos el mismo nmero de parmetros, dos.

4.

Determinacin del valor de xT dado un periodo


de retorno T

Una vez ajustados los datos por alguno de los modelos y evaluado el modelo
ajustado mediante el test de Kolmogorov-Smirnoff, tendremos una (o varias)
funcin de distribucin ajustada. En ese caso, como se deca en (2), basta considerar la inversa de esta funcin de distribucin para obtener la estimacin de
xT .
El nico problema viene dado por la inexistencia de expresiones explcitas
para algunas de las distribuciones consideradas. Sin embargo, ese problema no
es tal con el uso de R ya que, o bien el propio R dispone de algoritmos de
aproximacin de la inversa o bien podemos implementarlo nosotros mismos (caso
de la SQRT-ETmax).

5.

Implementacin en R

R [R Development Team] es un lenguaje de programacin especialmente indicado para el anlisis estadstico. A diferencia de la mayora de los programas
que solemos utilizar en nuestros ordenadores, que tienen interfaces tipo ventana,
R es manejado a travs de una consola en la que se introduce cdigo propio de
su lenguaje para obtener los resultados deseados.

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

R fue inicialmente diseado por Robert Gentleman y Ross Ihaka, miembros


del Departamento de Estadstica de la Universidad de Auckland, en Nueva Zelanda. Sin embargo, una de las grandes ventajas de R es que hoy en da es, en
realidad, fruto del esfuerzo de miles de personas en todo el mundo que colaboran
en su desarrollo.
Por otra parte, R se considera la versin libre de otro programa propietario,
llamado S o S-Plus, desarrollado por los Laboratorios Bell. Aunque las diferencias entre R y S son importantes, la mayora del cdigo escrito para S funciona
en R sin modificaciones.
El cdigo de R est disponible como software libre bajo las condiciones de la
licencia GNU-GPL, y puede ser instalado tanto en el sistema operativo Windows
como en Linux o MacOS X.
La pgina principal desde la que se puede acceder tanto a los archivos necesarios para su instalacin como al resto de recursos del proyecto R es
http://www.r-project.org.
De cara a la puesta en prctica de este trabajo, es necesaria la instalacin
de R y de los paquetes adicionales VGAM, MASS y RODBC.
Lo que se describe en esta seccin es el uso de un archivo de comandos de R
(en adelante, script) que permite realizar todos los clculos relativos al objeto
del trabajo, es decir, al ajuste de las distribuciones, a la realizacin del test de
Kolmogorov-Smirnoff y a la obtencin de las estimaciones de las precipitaciones
consideradas extremas dado un periodo de retorno.

5.1.

Importacin de los datos

Vamos a suponer que los datos se encuentran en la primera columna de


una hoja de datos de Excel. En el ejemplo desarrollado los datos se refieren al
pantano de Iznjar, de manera que el encabezado de esa columna es iznajar.
Asimismo, el archivo de Excel se llama iznajar.xls.
Los comandos a ejecutar para la importacin son los siguientes:
library(RODBC)
chan <- odbcConnectExcel("iznajar.xls")
sqlTables(chan)
Datos <- sqlQuery(chan, "select * from [Hoja1$]")
close(chan)
datos<-Datos$iznajar

5.2.

Ajuste de los datos

En primer lugar es necesario copiar los ficheros de cdigo diseados para la


distribucin SQRT-ETmax en el mismo directorio de trabajo que, en el ejemplo
es "D:/Invest/Marian".
A continuacin hay que cargar los paquetes adicionales VGAM y MASS y
los archivos adicionales. Para ello, ejecutamos las siguientes lneas:

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

setwd("D:/Invest/Marian")
library(VGAM)
library(MASS)
source("fit.sqrt.et.max.R")
source("dsqrtetmax.R")
source("psqrtetmax.R")
source("qsqrtetmax.R")
5.2.1.

Ajuste mediante la distribucin de Gumbel

Ejecutamos
ajuste.gumbel<-vgam(datos~1,family="gumbel")
location.gumbel<-Coef(ajuste.gumbel)[1]
scale.gumbel<-Coef(ajuste.gumbel)[2]
Coef(ajuste.gumbel)
En el caso del ejemplo la ltima lnea nos dar como resultado que los parmetros ajustados son
location scale
35.917573 8.981163
5.2.2.

Ajuste mediante la distribucin log-Gamma

Ejecutamos
ajuste.loggamma<-fitdistr(log(datos),"Gamma")
ajuste.loggamma
shape.loggamma<-ajuste.loggamma$estimate[1]
scale.loggamma<-1/ajuste.loggamma$estimate[2]
Obsrvese en la primera lnea que en realidad se est ajustando el logaritmo
de los datos.
El resultado es
shape rate
179.88642 48.82219
5.2.3.

Ajuste mediante la distribucin log-normal

Ejecutamos
ajuste.lognormal<-fitdistr(log(datos),"Normal")
mean.lognormal<-ajuste.lognormal$estimate[1]
sd.lognormal<-ajuste.lognormal$estimate[2]
ajuste.lognormal
De nuevo estamos ajustando el logaritmo de los datos. El resultado es
mean sd
3.68452440 0.27610262

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

5.2.4.

Ajuste mediante la distribucin SQRT-ETmax

Ejecutamos
ajuste.sqrtetmax<-fit.sqrt.et.max(y=datos,metodo=3)
k.sqrtetmax<-exp(ajuste.sqrtetmax$coefficients[1])
alfa.sqrtetmax<-exp(ajuste.sqrtetmax$coefficients[2])
ajuste.sqrtetmax
En este caso el resultado es ms amplio, ya que es necesario controlar algunos
aspectos relativos al mtodo de mxima verosimilitud. De todas formas, lo ms
relevante es el valor de las estimaciones de los parmetros, que en el ejemplo
son
c(k.sqrtetmax,alfa.sqrtetmax)
[1] 1004.781812 2.409086

5.3.

Evaluacin de las bondades de ajuste

El test de Kolmogorov-Smirnoff nos va a permitir contrastar si los ajustes


son vlidos y cul es el ms preciso.
Ejecutamos
ks.test(datos,"pgumbel",location.gumbel,scale.gumbel)
ks.test(datos,"plnorm",mean.lognormal,sd.lognormal)
ks.test(log(datos),"pgamma",shape.loggamma,1/scale.loggamma)
ks.test(datos,"psqrtetmax",k.sqrtetmax,alfa.sqrtetmax)
Los p-valores para los cuatro ajustes son, respectivamente, 0.6416, 0.7353,
0.746 y 0.6618. Ponen de manifiesto que los ajustes son bastante precisos y que
el mejor de ellos es el de la log-Gamma.
Una forma grfica de plasmar la bondad de los ajustes es comparar la funcin
de densidad ajustada con el histograma de los datos. Para hacerlo en nuestro
caso debemos ejecutar
hist(datos,freq=FALSE)
lines(sort(datos),dsqrtetmax(sort(datos),k.sqrtetmax,alfa.sqrtetmax),col="red")
lines(sort(datos),dgumbel(sort(datos),location.gumbel,scale.gumbel),col="blue")
lines(sort(datos),dlnorm(sort(datos),mean.lognormal,sd.lognormal),col="green")
lines(sort(datos),dgamma(log(sort(datos)),shape=shape.loggamma,
scale=scale.loggamma)/sort(datos),col="grey")
El resultado es la Figura 1.

5.4.

Estimacin del valor de xT

Una vez realizados los ajustes es trivial aplicar la expresin dada en (2) para
obtener la estimacin del valor de xT para un valor de T dado. Como ejemplo,
hemos considerado T = 100 aos.
Ejecutamos
T<-100
p.max.gumbel<-qgumbel(1-1/T,location.gumbel,scale.gumbel)
p.max.gumbel

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

Figura 1: Histograma de los datos y densidades ajustadas. En rojo la SQRTETmax, en azul la Gumbel, en verde la lognormal y en gris la Log-Gamma

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

Modelizacin estocstica de precipitaciones mximas

p.max.lognormal<-qlnorm(1-1/T,mean.lognormal,sd.lognormal)
p.max.lognormal
p.max.loggamma<-exp(qgamma(1-1/T,shape=shape.loggamma,scale=scale.loggamma))
p.max.loggamma
p.max.sqrtetmax<-qsqrtetmax(1-1/T,k.sqrtetmax,alfa.sqrtetmax)
p.max.sqrtetmax
El resultado nos dice que las estimaciones segn los cuatro ajustes son
77.23226 (Gumbel), 75.70431 (log-normal), 77.75436 (log-Gamma) y 84.129
(SQRT-ETmax) aos.

Apndices
Vamos a detallar el cdigo relativo a la implementacn de los clculos correspondientes a la distribucin SQRT-ETmax

Densidad de la SQRT-ETmax
dsqrtetmax<-function(x,k,alfa){
k*alfa/2*exp(-k*(1+sqrt((alfa*x)))*exp(-sqrt(alfa*x))-sqrt(alfa*x))
}

Funcin de distribucin de la SQRT-ETmax


psqrtetmax<-function(x,k,alfa){
exp(-k*(1+sqrt((alfa*x)))*exp(-sqrt(alfa*x)))
}

Mtodo de mxima verosimilitud para la estimacin de los


parmetros de la SQRT-ETmax
fit.sqrt.et.max<-function(y=NULL,p0k=0.5,p0alfa=1,iters=10000,metodo=2){
logver<-function(p){
k<-exp(p[1])
alfa<-exp(p[2])
n<-length(y)
-(-n*log(1-exp(-k))+n*log(k)+n*log(alfa)-n*log(2)-sum(sqrt(alfa*y))
-k*sum((1+sqrt(alfa*y))*exp(-sqrt(alfa*y))))
}
p0<-c(p0k,p0alfa)
if (metodo==1){
#nlm
ajuste<-nlm(logver,p=p0,hessian= TRUE,iterlim=iters)
ajuste$value<-ajuste$minimum
ajuste$par<-ajuste$estimate
ajuste$convergence<-ajuste$code

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

10

Modelizacin estocstica de precipitaciones mximas

metodo="nlm con hessiano"


}
if (metodo==2){
#optim (Nelder-Mead con hessiano)
ajuste<-optim(p0,logver,hessian=TRUE,control=list(maxit=iters))
metodo<-"optim Nelder-Mead con hessiano"
}
if (metodo==3){
#optim (BFGS)
ajuste<-optim(p0,logver,method="BFGS",hessian=TRUE,control=list(maxit=iters))
metodo<-"optim BFGS con hessiano"
}
if (metodo==4){
#optim (CG)
ajuste<-optim(p0,logver,method="CG",hessian=TRUE,control=list(maxit=iters))
metodo<-"optim CG con hessiano"
}
if (metodo==5){
#optim (L-BFGS-B)
ajuste<-optim(p0,logver,method="L-BFGS-B",hessian=TRUE,control=list(maxit=iters))
metodo<-"optim L-BFGS-B con hessiano"
}
if (metodo==6){
#optim (SANN)
ajuste<-optim(p0,logver,method="SANN",hessian=TRUE,control=list(maxit=iters))
metodo<-"optim SANN con hessiano"
}
#Resultados
resultados<-list(
optimum=ajuste$value,
aic=2*(ajuste$value+2),
coefficients=ajuste$par,
hessian=ajuste$hessian,
cov=solve(ajuste$hessian),
se=sqrt(diag(solve(ajuste$hessian))),
code=ajuste$convergence,#VER AYUDA DE nlm
metodo=metodo
)
return(resultados)
}

Inversa de la funcin de distribucin (funcin cuantil) de la


SQRT-ETmax
qsqrtetmax<-function(p,k,alfa){

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

11

Modelizacin estocstica de precipitaciones mximas

source("psqrtetmax.R")
x<-rep(0,length(p))
for (i in 1:length(p)){
while (psqrtetmax(x[i],k,alfa)<p[i]) x[i]<-x[i]+0.01
}
x
}

Referencias
[Wikipedia]

http://en.wikipedia.org/wiki/Gumbel_distribution

[Kotz and Nadarajah, 2000] Kotz, S. and Nadarajah, S. (2000) Extreme Value
Distributions: Theory and Applications, London: Imperial College Press.
[HydroToolBox]

http://www.dartmouth.edu/~renshaw/hydrotoolbox/

[Zorraquino, 2004]

Zorraquino Junquera, C. (2004) El modelo SQRTETmax: Revista de Obras Pblicas: Organo profesional de los ingenieros de caminos, canales y puertos, N.
3447, 2004 , pags. 33-37.

[Etoh et al, 1986]

Etoh T, Murota A, Nakanishi M (1986)


SQRTExponential type distribution of maximum.
In: Proceedings of international symposium on flood
frequency and risk analysis. Louisiana, pp 235265.

[Ferrer y Ardiles, 1994] Ferrer, F. J., y Ardiles, L. (1994): Anlisis estadstico de las series anuales de mximas lluvias diarias en
Espaa. Ingeniera Civil/95, pp 87-100.
[R Development Team] R Development Core Team. R: A Language and
Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria, 2008.
http://www.R-project.org.

Prof. Dr. Antonio Jos Sez Castillo. Universidad de Jan

12

También podría gustarte