
<!-- README.md is generated from README.Rmd. Please edit that file -->

# threshr <a href="https://paulnorthrop.github.io/threshr/"><img src="man/figures/threshr_logo.png" align="right" style="float:right; height:150px;" alt="threshr logo"/></a>

[![R-CMD-check](https://github.com/paulnorthrop/threshr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/paulnorthrop/threshr/actions/workflows/R-CMD-check.yaml)
[![Coverage
Status](https://codecov.io/github/paulnorthrop/threshr/coverage.svg?branch=master)](https://app.codecov.io/github/paulnorthrop/threshr?branch=master)
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/threshr)](https://cran.r-project.org/package=threshr)
[![Downloads
(monthly)](https://cranlogs.r-pkg.org/badges/threshr?color=brightgreen)](https://cran.r-project.org/package=threshr)
[![Downloads
(total)](https://cranlogs.r-pkg.org/badges/grand-total/threshr?color=brightgreen)](https://cran.r-project.org/package=threshr)

## Threshold Selection and Uncertainty for Extreme Value Analysis

### What does threshr do?

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)](https://doi.org/10.1111/rssc.12159). 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.

``` r
library(threshr)
u_vec_gom <- quantile(gom, probs = seq(0, 0.9, 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:

``` r
install.packages("threshr")
```

### Vignette

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