Learn R Programming

nsRFA (version 0.1-6)

GENPAR: Three parameter generalized Pareto distribution and L-moments

Description

GENPAR provides the link between L-moments of a sample and the three parameter generalized Pareto distribution.

Usage

f.genpar (x, xi, alfa, k)
F.genpar (x, xi, alfa, k)
invF.genpar (F, xi, alfa, k)
Lmom.genpar (xi, alfa, k)
par.genpar (lambda1, lambda2, tau3)
rand.genpar (numerosita, xi, alfa, k)

Arguments

x
vector of quantiles
xi
vector of genpar location parameters
alfa
vector of genpar scale parameters
k
vector of genpar shape parameters
F
vector of probabilities
lambda1
vector of sample means
lambda2
vector of L-variances
tau3
vector of L-CA (or L-skewness)
numerosita
numeric value indicating the length of the vector to be generated

Value

  • f.genpar gives the density $f$, F.genpar gives the distribution function $F$, invF.genpar gives the quantile function $x$, Lmom.genpar gives the L-moments ($\lambda_1$, $\lambda_2$, $\tau_3$, $\tau_4$), par.genpar gives the parameters (xi, alfa, k), and rand.genpar generates random deviates.

Details

Definition

Parameters (3): $\xi$ (location), $\alpha$ (scale), $k$ (shape).

Range of $x$: $\xi < x \le \xi + \alpha / k$ if $k>0$; $\xi \le x < \infty$ if $k \le 0$.

Probability density function: $$f(x) = \alpha^{-1} e^{-(1-k)y}$$ where $y = -k^{-1}\log{1 - k(x - \xi)/\alpha}$ if $k \ne 0$, $y = (x-\xi)/\alpha$ if $k=0$.

Cumulative distribution function: $$F(x) = 1-e^{-y}$$

Quantile function: $x(F) = \xi + \alpha[1-(1-F)^k]/k$ if $k \ne 0$, $x(F) = \xi - \alpha \log(1-F)$ if $k=0$.

$k=0$ is the exponential distribution; $k=1$ is the uniform distribution on the interval $\xi < x \le \xi + \alpha$.

L-moments

L-moments are defined for $k>-1$.

$$\lambda_1 = \xi + \alpha/(1+k)]$$ $$\lambda_2 = \alpha/[(1+k)(2+k)]$$ $$\tau_3 = (1-k)/(3+k)$$ $$\tau_4 = (1-k)(2-k)/[(3+k)(4+k)]$$

The relation between $\tau_3$ and $\tau_4$ is given by $$\tau_4 = \frac{\tau_3 (1 + 5 \tau_3)}{5+\tau_3}$$

Parameters

If $\xi$ is known, $k=(\lambda_1 - \xi)/\lambda_2 - 2$ and $\alpha=(1+k)(\lambda_1 - \xi)$; if $\xi$ is unknown, $k=(1 - 3 \tau_3)/(1 + \tau_3)$, $\alpha=(1+k)(2+k)\lambda_2$ and $\xi=\lambda_1 - (2+k)\lambda_2$.

References

Hosking, J.R.M. and Wallis, J.R. (1997) Regional Frequency Analysis: an approach based on L-moments, Cambridge University Press, Cambridge, UK.

See Also

rnorm, runif, EXP, GENLOGIS, GEV, GUMBEL, KAPPA, LOGNORM, P3; DISTPLOTS, GOFTESTS, Lmoments.

Examples

Run this code
data(hydroSIMN)
annualflows
summary(annualflows)
x <- annualflows["dato"][,]
fac <- factor(annualflows["cod"][,])
split(x,fac)

camp <- split(x,fac)$"45"
ll <- Lmoments(camp)
parameters <- par.genpar(ll[1],ll[2],ll[4])
f.genpar(1800,parameters$xi,parameters$alfa,parameters$k)
F.genpar(1800,parameters$xi,parameters$alfa,parameters$k)
invF.genpar(0.7161775,parameters$xi,parameters$alfa,parameters$k)
Lmom.genpar(parameters$xi,parameters$alfa,parameters$k)
rand.genpar(100,parameters$xi,parameters$alfa,parameters$k)

Rll <- regionalLmoments(x,fac); Rll
parameters <- par.genpar(Rll[1],Rll[2],Rll[4])
Lmom.genpar(parameters$xi,parameters$alfa,parameters$k)

Run the code above in your browser using DataLab