Learn R Programming

fExtremes (version 201.10059)

GevDistribution: GEV Distributions for Extreme Value Theory

Description

A collection and description of distribution functions used in extreme value theory. The functions compute density, distribution function, quantile function and generate random deviates for the Generalized Extreme Value Distribution, GEV, for the Frechet, Gumbel, and Weibull distributions. The functions are: ll{ dgev density of the GEV Distribution, pgev probability function of the GEV Distribution, qgev quantile function of the GEV Distribution, rgev random variates from the GEV Distribution. [dpqr]frechet Frechet Distribution, [dpqr]gumbel Gumbel Distribution, [dpqr]weibull Weibull Distribution, [dpqr]evd an alternative call for the GEV Distribution. }

Usage

dgev(x, xi = 1, mu = 0, sigma = 1, log = FALSE)
pgev(q, xi = 1, mu = 0, sigma = 1, lower.tail = TRUE)
qgev(p, xi = 1, mu = 0, sigma = 1, lower.tail = TRUE)
rgev(n, xi = 1, mu = 0, sigma = 1)

devd(x, loc = 0, scale = 1, shape = 0, log = FALSE)
pevd(q, loc = 0, scale = 1, shape = 0, lower.tail = TRUE)
qevd(p, loc = 0, scale = 1, shape = 0, lower.tail = TRUE)
revd(n, loc = 0, scale = 1, shape = 0)

Arguments

loc, scale, shape
loc is the location parameter, scale the scale parameter, and shape is the shape parameter. The default values are loc=0, scale=1, and shape=0
log
a logical, if TRUE, the log density is returned.
lower.tail
a logical, if TRUE, the default, then probabilities are P[X <= x]<="" code="">, otherwise, P[X > x].
n
the number of observations.
p
a numeric vector of probabilities.
q
a numeric vector of quantiles.
x
a numeric vector of quantiles.
xi, mu, sigma
xi is the shape parameter, mu the location parameter, and sigma is the scale parameter. The default values are xi=1, mu=0, and sigma=1.

Value

  • All values are numeric vectors: d* returns the density, p* returns the probability, q* returns the quantiles, and r* generates random variates.

Details

Generalized Extreme Value Distribution: Computes density, distribution function, quantile function and generates random variates for the Generalized Extreme Value Distribution, GEV, for the Frechet, Gumbel, and Weibull distributions.

References

Embrechts, P., Klueppelberg, C., Mikosch, T. (1997); Modelling Extremal Events, Springer.

See Also

gevFit, gpdFit.

Examples

Run this code
## *gev  -
   xmpExtremes("Start: GEV Frechet >")
   # Create and plot 1000 GEV/Frechet distributed rdv:
   par(mfrow = c(3, 3))
   r = rgev(n = 1000, xi = 1)
   plot(r, type = "l", main = "GEV/Frechet Series")
   ## Plot empirical density and compare with true density:
   ## Omit values greater than 500 from plot
   hist(r[r<10], n = 25, probability = TRUE, xlab = "r", 
     xlim = c(-5, 5), ylim = c(0, 1.1), main = "Density")
   x = seq(-5, 5, by=0.01)
   lines(x, dgev(x, xi = 1), col = 2)
   ## Plot df and compare with true df:
   plot(sort(r), (1:length(r)/length(r)), 
     xlim = c(-3, 6), ylim = c(0, 1.1),
     cex = 0.5, ylab = "p", xlab = "q", main = "Probability")
   q = seq(-5,5, by=0.1)
   lines(q, pgev(q, xi=1), col=2)
## Compute quantiles, a test:
   qgev(pgev(seq(-5, 5, 0.25), xi = 1), xi = 1) 
   
## *gev -
   xmpExtremes("Next: GEV Gumbel >")
   # Create and plot 1000 Gumbel distributed rdv:
   ##> r = rgev(n = 1000, xi = 0)
   ##> plot(r, type = "l", main = "Gumbel Series")
   ## Plot empirical density and compare with true density:
   ##>hist(r[abs(r)<10], nclass = 25, freq = FALSE, xlab = "r", 
   ##>   xlim = c(-5,5), ylim = c(0,1.1), main = "Density")
   ##>x = seq(-5, 5, by = 0.01)
   ##>lines(x, dgev(x, xi = 0), col=2)
   ## Plot df and compare with true df:
   ##>plot(sort(r), (1:length(r)/length(r)), 
   ##>  xlim = c(-3, 6), ylim = c(0, 1.1),
   ##>   cex=0.5, ylab = "p", xlab="q", main="Probability")
   ##>q = seq(-5, 5, by = 0.1)
   ##>lines(q, pgev(q, xi = 0), col = 2)
   ## Compute quantiles, a test:
   ##>qgev(pgev(seq(-5, 5, 0.25), xi = 0), xi = 0)   

## *gev -
   xmpExtremes("Next: GEV Weibull >")
   # Create and plot 1000 Weibull distributed rdv:
   r = rgev(n = 1000, xi = -1)
   plot(r, type = "l", main = "Weibull Series")
   ## Plot empirical density and compare with true density:
   hist(r[abs(r)<10], nclass = 25, freq = FALSE, xlab = "r", 
     xlim=c(-5,5), ylim=c(0,1.1), main="Density")
   x = seq(-5, 5, by=0.01)
   lines(x, dgev(x, xi = -1), col = 2)
   ## Plot df and compare with true df:
   plot(sort(r), (1:length(r)/length(r)), 
     xlim = c(-3, 6), ylim = c(0, 1.1),
     cex = 0.5, ylab = "p", xlab = "q", main = "Probability")
   q=seq(-5, 5, by = 0.1)
   lines(q, pgev(q, xi = -1), col = 2)
   ## Compute quantiles, a test:
   qgev(pgev(seq(-5, 5, 0.25), xi = -1), xi = -1)

Run the code above in your browser using DataLab