This function estimates high quantiles of the Generalized Extreme Value (GEV) distribution using model averaging with mixed criteria. It combines Maximum Likelihood Estimation (MLE) and L-moment Estimation (LME) to construct candidate submodels and assign weights effectively.
ma.gev(
data = NULL,
quant = c(0.98, 0.99, 0.995),
weight = "like1",
numk = 12,
B = 200,
varcom = TRUE,
trim = 0,
fig = FALSE,
bma = FALSE,
pen = "norm",
CD = FALSE,
remle = FALSE
)A list containing:
mle.hosking - MLE estimates in Hosking style (mu, sigma, xi)
qua.mle - Quantile estimates from MLE
mle.cov3 - Covariance matrix of MLE (3x3)
qua.se.mle.delta - Standard errors of MLE quantiles (delta method)
lme - L-moment estimates (mu, sigma, xi)
lme.cov3 - Covariance matrix of LME (bootstrap)
qua.lme - Quantile estimates from LME
qua.se.lme.boots - Standard errors of LME quantiles (bootstrap)
qua.ma - Model-averaged quantile estimates
w.ma - Weights used for model averaging
fixw.se.ma - Asymptotic SE under fixed weights
ranw.se.ma - Asymptotic SE under random weights
surr - Surrogate model parameters (mu, sigma, xi)
pick_xi - Selected xi values for K submodels
qua.bma - (if bma=TRUE) BMA quantile estimates
w.bma - (if bma=TRUE) BMA weights
mle.CD - (if CD=TRUE) Coles-Dixon penalized MLE
qua.CD - (if CD=TRUE) Quantile estimates from CD-MLE
remle1 - (if remle=TRUE) Restricted MLE (first constraint)
qua.remle1 - (if remle=TRUE) Quantile estimates from remle1
remle2 - (if remle=TRUE) Restricted MLE (second constraint)
qua.remle2 - (if remle=TRUE) Quantile estimates from remle2
quant - The quantile probabilities used
A numeric vector of data to be fitted (e.g., annual maxima).
The probabilities corresponding to high quantiles to be estimated. Default is c(0.98, 0.99, 0.995).
The weighting method name. Options are:
'like', 'like0', 'like1' (default): Likelihood-based weights (AIC)
'gLd', 'gLd0', 'gLd1', 'gLd2': Generalized L-moment distance weights
'med', 'med1', 'med2': Median-based weights
'cvt': Conventional AIC weights
Variants with numbers indicate left trimming level (0, 1, or 2).
The number of candidate submodels K. Default is 12.
The number of bootstrap samples. Default is 200.
Logical. Whether to compute variance of quantile estimates. Default is TRUE.
The number of left trimming for L-moments. Usually 0 (default), 1, or 2.
Logical. Whether to produce diagnostic plots. Default is FALSE.
Logical. Whether to use Bayesian Model Averaging. Default is FALSE.
Penalty type for BMA prior: 'norm' (normal, default) or 'beta'.
Logical. Whether to compute Coles-Dixon penalized MLE. Default is FALSE.
Logical. Whether to compute restricted MLE. Default is FALSE.
Yonggwan Shin, Seokkap Ko, Jihong Park, Yire Shin, Jeong-Soo Park
The model averaging approach works as follows:
MLE and LME of GEV parameters are computed
K candidate shape parameters (xi) are selected from profile likelihood CI
For each candidate xi, MLE with fixed xi is computed
Weights are assigned based on the selected method
Final quantile estimates are weighted averages across submodels
The weighting schemes include:
'like': AIC-based weights using likelihood with fixed xi
'gLd': Weights based on generalized L-moment distance
'med': Weights based on median and L-moment distance
'cvt': Conventional AIC weights
When bma=TRUE, Bayesian model averaging is applied with prior specified by pen.
Shin, Y., Shin, Y., & Park, J. S. (2026). Model averaging with mixed criteria for estimating high quantiles of extreme values: Application to heavy rainfall. Stochastic Environmental Research and Risk Assessment, 40(2), 47. tools:::Rd_expr_doi("10.1007/s00477-025-03167-x")
glme.gev for stationary GLME estimation,
magev.ksensplot for K sensitivity analysis,
magev.qqplot for Q-Q diagnostic plots,
magev.rlplot for return level plots.
# Load example data
data(streamflow)
x <- streamflow$r1
# Basic usage with likelihood weights
result <- ma.gev(x, quant = c(0.95, 0.99), weight = 'like1', B = 100)
print(result$qua.ma) # Model-averaged quantiles
print(result$qua.mle) # MLE quantiles for comparison
print(result$qua.lme) # LME quantiles for comparison
# Using generalized L-moment distance weights
result2 <- ma.gev(x, quant = c(0.95, 0.99), weight = 'gLd', B = 100)
print(result2$w.ma) # Model weights
Run the code above in your browser using DataLab