Density, cumulative distribution function, quantile function and
random number generation for the extreme value mixture model with mixture of gammas for bulk
distribution upto the threshold and conditional GPD for upper tail with continuity at threshold. The parameters
are the multiple gamma shapes mgshape
, scales mgscale
and mgweights
, threshold u
GPD shape xi
and tail fraction phiu
.
dmgammagpdcon(x, mgshape = 1, mgscale = 1, mgweight = NULL,
u = qgamma(0.9, mgshape[[1]], 1/mgscale[[1]]), xi = 0, phiu = TRUE,
log = FALSE)pmgammagpdcon(q, mgshape = 1, mgscale = 1, mgweight = NULL,
u = qgamma(0.9, mgshape[[1]], 1/mgscale[[1]]), xi = 0, phiu = TRUE,
lower.tail = TRUE)
qmgammagpdcon(p, mgshape = 1, mgscale = 1, mgweight = NULL,
u = qgamma(0.9, mgshape[[1]], 1/mgscale[[1]]), xi = 0, phiu = TRUE,
lower.tail = TRUE)
rmgammagpdcon(n = 1, mgshape = 1, mgscale = 1, mgweight = NULL,
u = qgamma(0.9, mgshape[[1]], 1/mgscale[[1]]), xi = 0, phiu = TRUE)
quantiles
mgamma shape (positive) as list or vector
mgamma scale (positive) as list or vector
mgamma weights (positive) as list or vector (NULL
for equi-weighted)
threshold
shape parameter
probability of being above threshold \([0, 1]\) or TRUE
logical, if TRUE then log density
quantiles
logical, if FALSE then upper tail probabilities
cumulative probabilities
sample size (positive integer)
dmgammagpdcon
gives the density,
pmgammagpdcon
gives the cumulative distribution function,
qmgammagpdcon
gives the quantile function and
rmgammagpdcon
gives a random sample.
Thanks to Daniela Laas, University of St Gallen, Switzerland for reporting various bugs in these functions.
Extreme value mixture model combining mixture of gammas for the bulk below the threshold and GPD for upper tail with continuity at threshold.
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 mixture of gammas bulk model.
Suppose there are \(M>=1\) gamma components in the mixture model. If you
wish to have a single (scalar) value for each parameter within each of the
\(M\) components then these can be input as a vector of length \(M\). If
you wish to input a vector of values for each parameter within each of the
\(M\) components, then they are input as a list with each entry the
parameter object for each component (which can either be a scalar or
vector as usual). No matter whether they are input as a vector or list there
must be \(M\) elements in mgshape
and mgscale
, one for each
gamma mixture component. Further, any vectors in the list of parameters must
of the same length of the x, q, p
or equal to the sample size n
, where
relevant.
If mgweight=NULL
then equal weights for each component are assumed. Otherwise,
mgweight
must be a list of the same length as mgshape
and
mgscale
, filled with positive values. In the latter case, the weights are rescaled
to sum to unity.
The cumulative distribution function with tail fraction \(\phi_u\) defined by the
upper tail fraction of the mixture of gammas 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 mixture of gammas and conditional GPD
cumulative distribution functions.
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 mixture of gammas and conditional GPD density functions respectively. 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 positive. Though behaviour at zero depends on the shape (\(\alpha\)):
\(f(0+)=\infty\) for \(0<\alpha<1\);
\(f(0+)=1/\beta\) for \(\alpha=1\) (exponential);
\(f(0+)=0\) for \(\alpha>1\);
where \(\beta\) is the scale parameter.
See gammagpd
for details of simpler parametric mixture model
with single gamma for bulk component and GPD for upper tail.
http://www.math.canterbury.ac.nz/~c.scarrott/evmix
http://en.wikipedia.org/wiki/Gamma_distribution
http://en.wikipedia.org/wiki/Generalized_Pareto_distribution
http://en.wikipedia.org/wiki/Mixture_model
McLachlan, G.J. and Peel, D. (2000). Finite Mixture Models. Wiley.
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
do Nascimento, F.F., Gamerman, D. and Lopes, H.F. (2011). A semiparametric Bayesian approach to extreme value estimation. Statistical Computing, 22(2), 661-675.
Other mgamma fmgamma
gammagpd gammagpdcon fgammagpd fgammagpdcon normgpd fnormgpd
mgammagpd mgammagpdcon fmgammagpd fmgammagpdcon: fgammagpdcon
,
fgammagpd
, fmgammagpdcon
,
fmgammagpd
, fmgamma
,
gammagpdcon
, gammagpd
,
mgammagpd
, mgamma
# NOT RUN {
set.seed(1)
par(mfrow = c(1, 1))
x = rmgammagpdcon(1000, mgshape = c(1, 6), mgscale = c(1, 2), mgweight = c(1, 2), u = 15, xi = 0)
xx = seq(-1, 40, 0.01)
hist(x, breaks = 100, freq = FALSE, xlim = c(-1, 40))
lines(xx, dmgammagpdcon(xx, mgshape = c(1, 6), mgscale = c(1, 2), mgweight = c(1, 2),
u = 15, xi = 0))
abline(v = 15)
# }
# NOT RUN {
# }
Run the code above in your browser using DataLab