qrmtools (version 0.0-12)

GPD: (Generalized) Pareto Distribution

Description

Density, distribution function, quantile function and random variate generation for the (generalized) Pareto distribution (GPD).

Usage

dGPD(x, shape, scale, log = FALSE)
pGPD(q, shape, scale, lower.tail = TRUE, log.p = FALSE)
qGPD(p, shape, scale, lower.tail = TRUE, log.p = FALSE)
rGPD(n, shape, scale)

dPar(x, shape, scale = 1, log = FALSE) pPar(q, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) qPar(p, shape, scale = 1, lower.tail = TRUE, log.p = FALSE) rPar(n, shape, scale = 1)

Arguments

x, q

vector of quantiles.

p

vector of probabilities.

n

number of observations.

shape

GPD shape parameter \(\xi\) (a real number) and Pareto shape parameter \(\theta\) (a positive number).

scale

GPD scale parameter \(\beta\) (a positive number) and Pareto scale parameter \(\kappa\) (a positive number).

lower.tail

logical; if TRUE (default) probabilities are \(P(X \le x)\) otherwise, \(P(X > x)\).

log, log.p

logical; if TRUE, probabilities p are given as log(p).

Value

dGPD() computes the density, pGPD() the distribution function, qGPD() the quantile function and rGPD() random variates of the generalized Pareto distribution.

Similary for dPar(), pPar(), qPar() and rPar() for the Pareto distribution.

Details

The distribution function of the generalized Pareto distribution is given by $$F(x) = \cases{ 1-(1+\xi x/\beta)^{-1/\xi},&if $\xi\neq 0$,\cr 1-\exp(-x/\beta),&if $\xi = 0$,\cr}$$ where \(\beta>0\) and \(x\ge0\) if \(\xi\ge 0\) and \(x\in[0,-\beta/\xi]\) if \(\xi<0\).

The distribution function of the Pareto distribution is given by $$F(x) = 1-(1+x/\kappa)^{-\theta},\ x\ge 0,$$ where \(\theta > 0\), \(\kappa > 0\).

In contrast to dGPD(), pGPD(), qGPD() and rGPD(), the functions dPar(), pPar(), qPar() and rPar() are vectorized in their main argument and the parameters.

References

McNeil, A. J., Frey, R., and Embrechts, P. (2015). Quantitative Risk Management: Concepts, Techniques, Tools. Princeton University Press.

Examples

Run this code
# NOT RUN {
## Basic sanity checks
curve(dGPD(x, shape = 0.5, scale = 3), from = -1, to = 5)
plot(pGPD(rGPD(1000, shape = 0.5, scale = 3), shape = 0.5, scale = 3)) # should be U[0,1]
# }

Run the code above in your browser using DataLab