Learn R Programming

evmix (version 1.0)

betagpd: Beta Bulk and GPD Tail Extreme Value Mixture Model

Description

Density, cumulative distribution function, quantile function and random number generation for the extreme value mixture model with beta for bulk distribution upto the threshold and conditional GPD above threshold. The parameters are the beta shape wshape and scale wscale, threshold u GPD scale sigmau and shape xi and tail fraction phiu.

Usage

dbetagpd(x, bshape1 = 1, bshape2 = 1,
    u = qbeta(0.9, bshape1, bshape2),
    sigmau = sqrt(bshape1 * bshape2/(bshape1 + bshape2)^2/(bshape1 + bshape2 + 1)),
    xi = 0, phiu = TRUE, log = FALSE)

  pbetagpd(q, bshape1 = 1, bshape2 = 1,
    u = qbeta(0.9, bshape1, bshape2),
    sigmau = sqrt(bshape1 * bshape2/(bshape1 + bshape2)^2/(bshape1 + bshape2 + 1)),
    xi = 0, phiu = TRUE, lower.tail = TRUE)

  qbetagpd(p, bshape1 = 1, bshape2 = 1,
    u = qbeta(0.9, bshape1, bshape2),
    sigmau = sqrt(bshape1 * bshape2/(bshape1 + bshape2)^2/(bshape1 + bshape2 + 1)),
    xi = 0, phiu = TRUE, lower.tail = TRUE)

  rbetagpd(n = 1, bshape1 = 1, bshape2 = 1,
    u = qbeta(0.9, bshape1, bshape2),
    sigmau = sqrt(bshape1 * bshape2/(bshape1 + bshape2)^2/(bshape1 + bshape2 + 1)),
    xi = 0, phiu = TRUE)

Arguments

bshape1
beta shape 1 (non-negative)
bshape2
beta shape 2 (non-negative)
u
threshold over $(0,1)$
phiu
probability of being above threshold [0,1] or TRUE
x
quantile
sigmau
scale parameter (non-negative)
xi
shape parameter
log
logical, if TRUE then log density
q
quantile
lower.tail
logical, if FALSE then upper tail probabilities
p
cumulative probability
n
sample size (non-negative integer)

Value

Details

Extreme value mixture model combining beta distribution for the bulk below the threshold and GPD for upper tail. The user can pre-specify phiu permitting a parameterised value for the tail fraction $\phi_u$. Alternatively, when phiu=TRUE the tail fraction is estimated as the tail fraction from the beta bulk model. The usual beta distribution is defined on $[0, 1]$, but this mixture is generally not limited in the upper tail $[0,\infty]$, except for the usual upper tail limits for the GPD when xi<0< code=""> discussed in gpd. Therefore, the threshold is limited to $(0,1)$. The cumulative distribution function with tail fraction $\phi_u$ defined by the upper tail fraction of the beta bulk model (phiu=TRUE), upto the threshold $0 \le x \le u < 1$, given by: $$F(x) = H(x)$$ and above the threshold $x > u$: $$F(x) = H(u) + [1 - H(u)] G(x)$$ where $H(x)$ and $G(X)$ are the beta and conditional GPD cumulative distribution functions (i.e. pbeta(x, wshape, wscale) and pgpd(x, u, sigmau, xi)). The cumulative distribution function for pre-specified $\phi_u$, upto the threshold $0 \le x \le u < 1$, is given by: $$F(x) = (1 - \phi_u) H(x)/H(u)$$ and above the threshold $x > u$: $$F(x) = \phi_u + [1 - \phi_u] G(x)$$ Notice that these definitions are equivalent when $\phi_u = 1 - H(u)$. See gpd for details of GPD upper tail component and dbeta for details of beta bulk component.

References

http://en.wikipedia.org/wiki/Beta_distribution http://en.wikipedia.org/wiki/Generalized_Pareto_distribution Scarrott, C.J. and MacDonald, A. (2012). A review of extreme value threshold estimation and uncertainty quantification. REVSTAT - Statistical Journal 10(1), 33-59. Available from http://www.ine.pt/revstat/pdf/rs120102.pdf MacDonald, A. (2012). Extreme value mixture modelling with medical and industrial applications. PhD thesis, University of Canterbury, New Zealand. http://ir.canterbury.ac.nz/bitstream/10092/6679/1/thesis_fulltext.pdf

See Also

gpd and dbeta Other betagpd: fbetagpd, lbetagpd, nlbetagpd

Examples

Run this code
par(mfrow=c(2,2))
x = rbetagpd(1000, bshape1 = 1.5, bshape2 = 2, u = 0.7, phiu = 0.2)
xx = seq(-0.1, 2, 0.01)
hist(x, breaks = 100, freq = FALSE, xlim = c(-0.1, 2))
lines(xx, dbetagpd(xx, bshape1 = 1.5, bshape2 = 2, u = 0.7, phiu = 0.2))

# three tail behaviours
plot(xx, pbetagpd(xx, bshape1 = 1.5, bshape2 = 2, u = 0.7, phiu = 0.2), type = "l")
lines(xx, pbetagpd(xx, bshape1 = 1.5, bshape2 = 2, u = 0.7, phiu = 0.2, xi = 0.3), col = "red")
lines(xx, pbetagpd(xx, bshape1 = 1.5, bshape2 = 2, u = 0.7, phiu = 0.2, xi = -0.3), col = "blue")
legend("topleft", paste("xi =",c(0, 0.3, -0.3)),
  col=c("black", "red", "blue"), lty = 1)

x = rbetagpd(1000, bshape1 = 2, bshape2 = 0.8, u = 0.7, phiu = 0.5)
hist(x, breaks = 100, freq = FALSE, xlim = c(-0.1, 2))
lines(xx, dbetagpd(xx, bshape1 = 2, bshape2 = 0.6, u = 0.7, phiu = 0.5))

plot(xx, dbetagpd(xx, bshape1 = 2, bshape2 = 0.8, u = 0.7, phiu = 0.5, xi=0), type = "l")
lines(xx, dbetagpd(xx, bshape1 = 2, bshape2 = 0.8, u = 0.7, phiu = 0.5, xi=-0.2), col = "red")
lines(xx, dbetagpd(xx, bshape1 = 2, bshape2 = 0.8, u = 0.7, phiu = 0.5, xi=0.2), col = "blue")
legend("topright", c("xi = 0", "xi = 0.2", "xi = -0.2"),
  col=c("black", "red", "blue"), lty = 1)

Run the code above in your browser using DataLab