Learn R Programming

evd (version 2.2-1)

fbvpot: Maximum-likelihood Fitting of Bivariate Extreme Value Distributions to Threshold Exceedances

Description

Fit models for one of nine parametric bivariate extreme-value distributions using threshold exceedances, allowing any of the parameters to be held fixed if desired.

Usage

fbvpot(x, threshold, model = "log", start, ..., sym = FALSE, cshape =
   cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS")

Arguments

x
A matrix or data frame with two columns. If this contains missing values, those values are treated as if they fell below the corresponding marginal threshold.
threshold
A vector of two thresholds.
model
The specified model; a character string. Must be either "log" (the default), "alog", "hr", "neglog", "aneglog", "bilog", "negbilog", "ct" o
start
A named list giving the initial values for all of the parameters in the model. If start is omitted the routine attempts to find good starting values using marginal maximum likelihood estimators.
...
Additional parameters, either for the bivariate extreme value model or for the optimization function optim. If parameters of the model are included they will be held fixed at the values given (see Examples).
sym
Logical; if TRUE, the dependence structure of the models "alog", "aneglog" or "ct" are constrained to be symmetric (see Details). For all other models, the argument is ignored (and a w
cshape
Logical; if TRUE, a common shape parameter is fitted to each margin.
cscale
Logical; if TRUE, a common scale parameter is fitted to each margin, and the default value of cshape is then TRUE, so that under this default common marginal parameters are fitted.
std.err
Logical; if TRUE (the default), the standard errors are returned.
corr
Logical; if TRUE, the correlation matrix is returned.
method
The optimization method (see optim for details).

Value

  • Returns an object of class c("bvpot","evd").

    The generic accessor functions fitted (or fitted.values), std.errors, deviance, logLik and AIC extract various features of the returned object.

    The functions profile and profile2d can be used to obtain deviance profiles. The function anova compares nested models, and the function AIC compares non-nested models. There is currently no plot method available.

    An object of class c("bvpot","evd") is a list containing the following components

  • estimateA vector containing the maximum likelihood estimates.
  • std.errA vector containing the standard errors.
  • fixedA vector containing the parameters that have been fixed at specific values within the optimization.
  • fixed2A vector containing the parameters that have been set to be equal to other model parameters.
  • paramA vector containing all parameters (those optimized, those fixed to specific values, and those set to be equal to other model parameters).
  • devianceThe deviance at the maximum likelihood estimates.
  • dep.summaryA value summarizing the strength of dependence in the fitted model (see fbvevd).
  • corrThe correlation matrix.
  • convergence, counts, messageComponents taken from the list returned by optim.
  • dataThe data passed to the argument x.
  • thresholdThe argument threshold.
  • nThe number of rows in x.
  • natThe vector of length three containing the number of exceedances on the first, second and both margins respectively.
  • symThe argument sym.
  • cmarThe vector c(cscale, cshape).
  • modelThe argument model.
  • callThe call of the current function.

synopsis

fbvpot(x, threshold, model = c("log", "bilog", "alog", "neglog", "negbilog", "aneglog", "ct", "hr", "amix"), likelihood = c("censored", "poisson"), start, ..., sym = FALSE, cshape = cscale, cscale = FALSE, std.err = TRUE, corr = FALSE, method = "BFGS", warn.inf = TRUE)

Warning

The standard errors and the correlation matrix in the returned object are taken from the observed information, calculated by a numerical approximation. They must be interpreted with caution when either of the marginal shape parameters are less than $-0.5$, because the usual asymptotic properties of maximum likelihood estimators do not then hold (Smith, 1985).

Details

The bivariate peaks over threshold models are fitted by maximizing the censored likelihood as given in e.g. Section 8.3.1 of Coles(2001). Declustering of the series is not currently implemented. The dependence parameter names are one or more of dep, asy1, asy2, alpha and beta, depending on the model selected (see rbvevd). The marginal parameter names are scale1 and shape1 for the first margin, and scale2 and shape2 for the second margin.

If cshape is true, the models are constrained so that shape2 = shape1. The parameter shape2 is then taken to be specified, so that e.g. the common shape parameter can only be fixed at zero using shape1 = 0, since using shape2 = 0 gives an error. Similar comments apply for cscale. If sym is TRUE, the asymmetric logistic and asymmetric negative logistic models are constrained so that asy2 = asy1, and the Coles-Tawn model is constrained so that beta = alpha. The parameter asy2 or beta is then taken to be specified, so that e.g. the parameters asy1 and asy2 can only be fixed at 0.8 using asy1 = 0.8, since using asy2 = 0.8 gives an error. Bilogistic and negative bilogistic models constrained to symmetry are logistic and negative logistic models respectively. The (symmetric) mixed model (e.g. Tawn, 1998) can be obtained as a special case of the asymmetric logistic or asymmetric mixed models (see fbvevd).

For numerical reasons the parameters of each model are subject the artificial constraints given in fbvevd.

References

Coles, S. G. (2001) An Introduction to Statistical Modelling of Extreme Values, London: Springer--Verlag.

Smith, R. L. (1985) Maximum likelihood estimation in a class of non-regular cases. Biometrika, 72, 67--90.

See Also

abvevd, anova.evd, fbvevd, optim, rbvevd

Examples

Run this code
bvdata <- rbvevd(1000, dep = 0.5, model = "log")
u <- apply(bvdata, 2,  quantile, probs = 0.9)
M1 <- fbvpot(bvdata, u, model = "log")
M2 <- fbvpot(bvdata, u, "log", dep = 0.5)
anova(M1, M2)

Run the code above in your browser using DataLab