How did revdbayes start?
 I needed to sample quickly and automatically from
many EV (generalised Pareto) posteriors

threshr:
threshold selection based on
 outofsample EV predictions
 leaveoneout crossvalidation
 wanted to account for parameter uncertainty
 wanted to avoid MCMC tuning and convergence diagnostics
What does revdbayes do?
 Direct sampling from (simple) EV posterior distributions
 Has similar functionality to evdbayes
method 
Markov chain Monte Carlo (MCMC) 
ratioofuniforms (ROU) 
tuning 
required 
largely automatic 
sample 
dependent 
random 
checking 
yes 
no 
\(d\)dimensional continuous \(X = (X_1, \ldots, X_d)\) with density \(\propto\) \(f(x)\)
If \((u, v_1, \ldots, v_d)\) are
uniformly distributed over
\[ C(r) = \left\{ (u, v_1, \ldots, v_d): 0
< u \leq \left[ f\left( \frac{v_1}{u^r}, \ldots, \frac{v_d}{u^r}
\right) \right] ^ {1/(r d + 1)} \right\} \]
for some \(r \geq 0\), then \((v_1 / u ^r, \ldots, v_d / u ^ r)\) has
density \(f(x) / \int f(x) {\rm
~d}x\)
Acceptancerejection algorithm
 simulate uniformly over a \((d+1)\)dimensional bounding box \(\{ 0 < u \leq a(r), \, b_i^(r) \leq v_i \leq
b_i^+(r), \, i = 1, \ldots, d \}\)
 if simulated \((u, v_1, \ldots, v_d) \in
C(r)\) then accept \(x = (v_1 / u ^r,
\ldots, v_d / u ^ r)\)
Limitations

\(f\) must be bounded

\(C(r)\) must be ‘boxable’
Increasing efficiency
\[ p_a(d, r) = \frac{\int f(x) {\rm
~d}x}{(r d + 1) \, a(r) \displaystyle\prod_{i=1}^d \left[b_i^+(r)
b_i^(r) \right]} \]

Relocate the mode to zero (hardcoded into
rust)

Choice of \(r\)
(\(r = 1/2\) optimal for zeromean
normal)

Rotation (\(d >
1\)): the weaker the association the better

Transformation: symmetric better than
asymmetric
(EV posteriors can exhibit strong dependence and asymmetry)
Acceptance region for N(10, 1)
 1D normal
 1D lognormal
 2D normal
 1D gamma
For fun!
Can you find simple (1D) examples that throw
Use ?Distributions
for possibilities
Summary of ROU and rust
 Can be useful for
 suitable lowdimensional distributions
 for which a bespoke method does not exist
 BoxCox transformation requires positive variable(s)
 to do: generalise to YeoJohnson transformation
 Cannot be used in all cases
 unbounded densities: perhaps OK after transformation
 heavy tails: choose \(r\)
appropriately and/or transform
 multimodal: OK in theory, but need to find global optima
See When
can rust be used?
Bayesian EV analyses

Prior \(\pi(\theta)\) for model parameter vector
\(\theta\)

Likelihood \(L(\theta
\mid \mbox{data})\)

Posterior \(\pi(\theta
\mid \mbox{data})\) via Bayes’ theorem \[ \pi(\theta \mid \mbox{data}) = \frac{L(\theta
\mid \mbox{data}) \pi(\theta)}{P(\mbox{data})} = \frac{L(\theta \mid
\mbox{data}) \pi(\theta)}{\int L(\theta \mid \mbox{data}) \pi(\theta)
\,\mbox{d}\theta} \]
 Simulate a large sample from \(\pi(\theta
\mid \mbox{data})\), often using MCMC
In revdbayes
 4 standard univariate models: GEV, OS, GP, PP
 Simplest, i.i.d. case
GP model for threshold excesses 1
Negative association + asymmetry \(\phantom{\xi + \sigma / x_{(m)}}\)
GP model for threshold excesses 2
Rotation about the MAP estimate based on the Hessian at the MAP \(\phantom{\xi + \sigma / x_{(m)}}\)
GP model for threshold excesses 3
BoxCox transformations of \(\phi_1 =
\sigma_u > 0\) and \(\phi_2 = \xi +
\sigma / x_{(m)} > 0\)
GP model for threshold excesses 4
BoxCox first then rotate \(\phantom{\xi +
\sigma / x_{(m)}}\)
Other models in revdbayes
 GEV for block (annual?) maxima
 Order statistics (OS): largest \(k\) observations per block
 Nonhomogeneous point process (PP) for threshold exceedances
 approximates binomial for threshold exceedance and GP for
excesses
 GEV parameterisation: \((\mu, \sigma,
\xi)\)
 choice of block length affects posterior sampling efficiency

GP and binomialGP
 compare ROU posterior sampling approaches
 posterior predictive model checking
 predictive inference

PP: sampling efficiently from the posterior

GEV: compare
revdbayes
and
evdbayes
Options to experiment
 changing threshold
 playing with function arguments
Reflections
Limitations
 Very simple EV models
 ROU efficiency drops with number of parameters
Current uses

threshr
Threshold Selection and Uncertainty for Extreme Value Analysis

mev

lambdadep()
: a bivariate dependence function (many
posterior samples required)

tstab.gpd()
: threshold stability plot

Estimation
of the extremal index using the \(K\)gaps model