pdfgev: Probability Density Function of the Generalized Extreme Value...

pdfgevR Documentation

Probability Density Function of the Generalized Extreme Value Distribution


This function computes the probability density of the Generalized Extreme Value distribution given parameters (ξ, α, and κ) computed by pargev. The probability density function is

f(x) = α^{-1} \exp[-(1-κ)Y - \exp(-Y)] \mbox{,}

where Y is

Y = -κ^{-1} \log\!≤ft(1 - \frac{κ(x-ξ)}{α}\right)\mbox{,}

for κ \ne 0, and

Y = (x-ξ)/α\mbox{,}

for κ = 0, where f(x) is the probability density for quantile x, ξ is a location parameter, α is a scale parameter, and κ is a shape parameter. The range of x is -∞ < x ≤ ξ + α/κ if k > 0; ξ + α/κ ≤ x < ∞ if κ ≤ 0. Note that the shape parameter κ parameterization of the distribution herein follows that in tradition by the greater L-moment community and others use a sign reversal on κ. (The evd package is one example.)


pdfgev(x, para, paracheck=TRUE)



A real value vector.


The parameters from pargev or vec2par.


A logical switch as to whether the validity of the parameters should be checked.


Probability density (f) for x.


W.H. Asquith


Hosking, J.R.M., 1990, L-moments—Analysis and estimation of distributions using linear combinations of order statistics: Journal of the Royal Statistical Society, Series B, v. 52, pp. 105–124, doi: 10.1111/j.2517-6161.1990.tb01775.x.

Hosking, J.R.M., 1996, FORTRAN routines for use with the method of L-moments: Version 3, IBM Research Report RC20525, T.J. Watson Research Center, Yorktown Heights, New York.

Hosking, J.R.M. and Wallis, J.R., 1997, Regional frequency analysis—An approach based on L-moments: Cambridge University Press.

See Also

cdfgev, quagev, lmomgev, pargev


  lmr <- lmoms(c(123, 34, 4, 654, 37, 78))
  gev <- pargev(lmr)
  x <- quagev(0.5, gev)
       pdfgev(  x, gev)

## Not run: 
  # We explore using maximum likelihood for GEV estimation on its density function.
  # We check the convergence and check on parameters back estimating the mean.
  small <- .Machine$double.eps
  for(k in c(-2, -1/2, -small, 0, +small, 1/2, 2)) {
    names(k) <- "myKappa"
    gev <- vec2par(c(2, 2, k), type="gev")
    x <- rlmomco(1000, gev)
    mu1 <- mean(x); names(mu1) <- "mean"
    cv1 <-      NA; names(cv1) <- "converge"
    mle <- mle2par(x, type="gev", para.int=pargev(lmoms(x)),
             ptransf=function(t) { c(t[1], log(t[2]), t[3]) },
           pretransf=function(t) { c(t[1], exp(t[2]), t[3]) },
    mu2 <- lmomgev(mle)$lambdas[1]; names(mu2) <- "backMean"
    cv2 <- mle$optim$convergence;   names(cv2) <- "converge"
    print(round(c(k, cv1, mu1, gev$para), digits=5))
    print(round(c(k, cv2, mu2, mle$para), digits=5))
  } # 
## End(Not run)

lmomco documentation built on Aug. 27, 2022, 1:06 a.m.