Threshold Selection and Uncertainty for Extreme Value Analysis

Provides functions for the selection of thresholds for use in
extreme value models, based mainly on the methodology in
Northrop, Attalides and Jonathan (2017) .
It also performs predictive inferences about future extreme values,
based either on a single threshold or on a weighted average of inferences
from multiple thresholds, using the 'revdbayes' package
< https://cran.r-project.org/package=revdbayes>.
At the moment only the case where the data can be treated as
independent identically distributed observations is considered.
See the 'threshr' website for more information, documentation and examples.

threshr: Threshold Selection and Uncertainty for Extreme Value Analysis

The threshr package deals primarily with the selection of thresholds for use in extreme value models. It also performs predictive inferences about future extreme values. These inferences can either be based on a single threshold or on a weighted average of inferences from multiple thresholds. The weighting reflects an estimated measure of the predictive performance of the threshold and can incorporate prior probabilities supplied by a user. At the moment only the simplest case, where the data can be treated as independent identically distributed observations, is considered, as described in Northrop et al. (2017). Future releases will tackle more general situations.

A simple example

The main function in the threshr package is ithresh. It uses Bayesian leave-one-out cross-validation to compare the extreme value predictive ability resulting from the use of each of a user-supplied set of thresholds. The following code produces a threshold diagnostic plot using a dataset gom containing 315 storm peak significant waveheights. We set a vector u_vec of thresholds; call ithresh, supplying the data and thresholds; and use then plot the results. In this minimal example (ithresh has further arguments) thresholds are judged in terms of the quality of prediction of whether the validation observation lies above the highest threshold in u_vec and, if it does, how much it exceeds this highest threshold.

u_vec_gom <- quantile(gom, probs = seq(0, 0.95, by = 0.05))

gom_cv <- ithresh(data = gom, u_vec = u_vec_gom)

plot(gom_cv)

Installation

To get the current released version from CRAN:

install.packages("threshr")

Vignette

See vignette("threshr-vignette", package = "threshr") for an overview of the package.