Learn R Programming

evmix (version 1.0)

lognormgpdcon: Log-Normal Bulk and GPD Tail Extreme Value Mixture Model with Continuity Constraint

Description

Density, cumulative distribution function, quantile function and random number generation for the extreme value mixture model with log-normal for bulk distribution upto the threshold and conditional GPD above threshold with a continuity constraint. The parameters are the normal mean lnmean and standard deviation lnsd, threshold u GPD scale sigmau and shape xi and tail fraction phiu.

Usage

dlognormgpdcon(x, lnmean = 0, lnsd = 1,
    u = qlnorm(0.9, lnmean, lnsd), xi = 0, phiu = TRUE,
    log = FALSE)

  plognormgpdcon(q, lnmean = 0, lnsd = 1,
    u = qlnorm(0.9, lnmean, lnsd), xi = 0, phiu = TRUE,
    lower.tail = TRUE)

  qlognormgpdcon(p, lnmean = 0, lnsd = 1,
    u = qlnorm(0.9, lnmean, lnsd), xi = 0, phiu = TRUE,
    lower.tail = TRUE)

  rlognormgpdcon(n = 1, lnmean = 0, lnsd = 1,
    u = qlnorm(0.9, lnmean, lnsd), xi = 0, phiu = TRUE)

Arguments

x
quantile
lnmean
mean on log scale
lnsd
standard deviation on log scale (non-negative)
u
threshold
xi
shape parameter
phiu
probability of being above threshold [0,1] or TRUE
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 log-normal distribution for the bulk below the threshold and GPD for upper tail with a continuity constraint. 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 log-normal bulk model. The cumulative distribution function with tail fraction $\phi_u$ defined by the upper tail fraction of the log-normal bulk model (phiu=TRUE), upto the threshold $0 < x \le u$, 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 log-normal and conditional GPD cumulative distribution functions (i.e. plnorm(x, meanlog = lnmean, sdlog = lnsd) and pgpd(x, u, sigmau, xi)). The cumulative distribution function for pre-specified $\phi_u$, upto the threshold $0 < x \le u$, 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)$. The continuity constraint means that $(1 - \phi_u) h(u)/H(u) = \phi_u g(u)$ where $h(x)$ and $g(x)$ are the log-normal and conditional GPD density functions (i.e. dlnorm(x, nmean, nsd) and dgpd(x, u, sigmau, xi)). The resulting GPD scale parameter is then: $$\sigma_u = \phi_u H(u) / [1 - \phi_u] h(u)$$. In the special case of where the tail fraction is defined by the bulk model this reduces to $$\sigma_u = [1 - H(u)] / h(u)$$. The gamma is defined on the non-negative reals, so the threshold must be non-negative. See gpd for details of GPD upper tail component and dlnorm for details of log-normal bulk component.

References

http://en.wikipedia.org/wiki/Log-normal_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 Solari, S. and Losada, M.A. (2004). A unified statistical model for hydrological variables including the selection of threshold for the peak over threshold method. Water Resources Research. 48, W10541.

See Also

lognormgpd, gpd and dlnorm Other lognormgpdcon: flognormgpdcon, llognormgpdcon, nllognormgpdcon

Examples

Run this code
par(mfrow=c(2,2))
x = rlognormgpdcon(1000)
xx = seq(-1, 10, 0.01)
hist(x, breaks = 100, freq = FALSE, xlim = c(-1, 10))
lines(xx, dlognormgpdcon(xx))

# three tail behaviours
plot(xx, plognormgpdcon(xx), type = "l")
lines(xx, plognormgpdcon(xx, xi = 0.3), col = "red")
lines(xx, plognormgpdcon(xx, xi = -0.3), col = "blue")
legend("bottomright", paste("xi =",c(0, 0.3, -0.3)),
  col=c("black", "red", "blue"), lty = 1)

x = rlognormgpdcon(1000, u = 2, phiu = 0.2)
hist(x, breaks = 100, freq = FALSE, xlim = c(-1, 10))
lines(xx, dlognormgpdcon(xx, u = 2, phiu = 0.2))

plot(xx, dlognormgpdcon(xx, u = 2, xi=0, phiu = 0.2), type = "l")
lines(xx, dlognormgpdcon(xx, u = 2, xi=-0.2, phiu = 0.2), col = "red")
lines(xx, dlognormgpdcon(xx, u = 2, xi=0.2, phiu = 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