Normal Bulk and GPD Tail Extreme Value Mixture Model
Normal Bulk and GPD Tail Extreme Value Mixture Model
Density, cumulative distribution function, quantile function and random number generation for the extreme value mixture model with normal for bulk distribution upto the threshold and conditional GPD above threshold. The parameters are the normal mean nmean and standard deviation nsd, threshold u
GPD scale sigmau and shape xi and tail fraction phiu.
dnormgpd(x, nmean =0, nsd =1, u = qnorm(0.9, nmean, nsd), sigmau = nsd, xi =0, phiu =TRUE, log =FALSE)pnormgpd(q, nmean =0, nsd =1, u = qnorm(0.9, nmean, nsd), sigmau = nsd, xi =0, phiu =TRUE, lower.tail =TRUE)qnormgpd(p, nmean =0, nsd =1, u = qnorm(0.9, nmean, nsd), sigmau = nsd, xi =0, phiu =TRUE, lower.tail =TRUE)rnormgpd(n =1, nmean =0, nsd =1, u = qnorm(0.9, nmean, nsd), sigmau = nsd, xi =0, phiu =TRUE)
Arguments
x: quantiles
nmean: normal mean
nsd: normal standard deviation (positive)
u: threshold
sigmau: scale parameter (positive)
xi: shape parameter
phiu: probability of being above threshold [0,1] or TRUE
log: logical, if TRUE then log density
q: quantiles
lower.tail: logical, if FALSE then upper tail probabilities
p: cumulative probabilities
n: sample size (positive integer)
Returns
dnormgpd gives the density, pnormgpd gives the cumulative distribution function, qnormgpd gives the quantile function and rnormgpd gives a random sample.
Details
Extreme value mixture model combining normal 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 ϕu. Alternatively, when phiu=TRUE the tail fraction is estimated as the tail fraction from the normal bulk model.
The cumulative distribution function with tail fraction ϕu defined by the upper tail fraction of the normal bulk model (phiu=TRUE), upto the threshold x≤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 normal and conditional GPD cumulative distribution functions (i.e. pnorm(x, nmean, nsd) and pgpd(x, u, sigmau, xi)) respectively.
The cumulative distribution function for pre-specified ϕu, upto the threshold x≤u, is given by:
F(x)=(1−ϕu)H(x)/H(u)
and above the threshold x>u:
F(x)=ϕu+[1−ϕu]G(x)
Notice that these definitions are equivalent when ϕu=1−H(u).
See gpd for details of GPD upper tail component and dnorm for details of normal bulk component.
Note
All inputs are vectorised except log and lower.tail. The main inputs (x, p or q) and parameters must be either a scalar or a vector. If vectors are provided they must all be of the same length, and the function will be evaluated for each element of vector. In the case of rnormgpd any input vector must be of length n.
Default values are provided for all inputs, except for the fundamentals x, q and p. The default sample size for rnormgpd is 1.
Missing (NA) and Not-a-Number (NaN) values in x, p and q are passed through as is and infinite values are set to NA. None of these are not permitted for the parameters.
Due to symmetry, the lower tail can be described by GPD by negating the quantiles. The normal mean nmean and GPD threshold u will also require negation.
Error checking of the inputs (e.g. invalid probabilities) is carried out and will either stop or give warning message as appropriate.
Examples
## Not run:set.seed(1)par(mfrow = c(2,2))x = rnormgpd(1000)xx = seq(-4,6,0.01)hist(x, breaks =100, freq =FALSE, xlim = c(-4,6))lines(xx, dnormgpd(xx))# three tail behavioursplot(xx, pnormgpd(xx), type ="l")lines(xx, pnormgpd(xx, xi =0.3), col ="red")lines(xx, pnormgpd(xx, xi =-0.3), col ="blue")legend("topleft", paste("xi =",c(0,0.3,-0.3)), col=c("black","red","blue"), lty =1)x = rnormgpd(1000, phiu =0.2)xx = seq(-4,6,0.01)hist(x, breaks =100, freq =FALSE, xlim = c(-4,6))lines(xx, dnormgpd(xx, phiu =0.2))plot(xx, dnormgpd(xx, xi=0, phiu =0.2), type ="l")lines(xx, dnormgpd(xx, xi=-0.2, phiu =0.2), col ="red")lines(xx, dnormgpd(xx, xi=0.2, phiu =0.2), col ="blue")legend("topleft", c("xi = 0","xi = 0.2","xi = -0.2"), col=c("black","red","blue"), lty =1)## End(Not run)
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
Hu Y. and Scarrott, C.J. (2018). evmix: An R Package for Extreme Value Mixture Modeling, Threshold Estimation and Boundary Corrected Kernel Density Estimation. Journal of Statistical Software 84(5), 1-27. doi: 10.18637/jss.v084.i05.
Behrens, C.N., Lopes, H.F. and Gamerman, D. (2004). Bayesian analysis of extreme events with threshold estimation. Statistical Modelling. 4(3), 227-244.