Bayesian Likelihood-Based Inference for Time Series Extremes

For information about the model underlying the inferences performed in this vignette, including the (adjusted) likelihood for (pu, σu, ξ, θ) and the Cheeseboro wind gusts dataset used below, see the vignette Frequentist Likelihood-Based Inference for Time Series Extremes.

Bayesian inferences for model parameters

We perform Bayesian inference for (pu, σu, ξ, θ), combining a likelihood with a prior distribution for these parameters. For θ the likelihood is based on the K-gaps model. For (pu, σu, ξ) the likelihood is based on vertically-adjusted log-likelihoods for pu and (σu, ξ). This latter aspect is an example of Bayesian inference using a composite likelihood (Ribatet, Cooley, and Davison (2012)).

Currently, lite allows only priors where pu, (σu, ξ) and θ are independent a priori. In the example below, we use the blite function’s default priors for the exceedance probability pu (the Jeffreys’ prior), the generalised Pareto parameters (σu, ξ) (and maximal data information prior) and θ (a uniform prior on [0,1]). Different priors can be set using the respective arguments gp_prior, b_prior and theta_prior_pars.

The blite function samples from the posterior distribution for (pu, σu, ξ) based on vertically-adjusted log-likelihoods for pu and (σu, ξ). To use unadjusted log-likelihoods set the argument type = "none".

library(lite)
cdata <- exdex::cheeseboro
# Each column of the matrix cdata corresponds to data from a different year
# blite() sets cluster automatically to correspond to column (year)
cpost <- blite(cdata, u = 45, k = 3, ny = 31 * 24, n = 10000)

The summary and plot methods produce numerical and graphical marginal summaries of the posterior samples.

summary(cpost)
#> 
#> Call:
#> blite(data = cdata, u = 45, k = 3, ny = 31 * 24, n = 10000)
#> 
#>          Posterior mean Posterior SD
#> p[u]            0.02840     0.006124
#> sigma[u]        9.98800     2.401000
#> xi             -0.07242     0.095550
#> theta           0.24250     0.023620
plot(cpost)

Predictive inference

We perform posterior predictive inference for the largest value MN to be observed over a future time period of length N years. Objects returned from the blite function have a predict method based on the predict.evpost method in the revdbayes package (Northrop 2020). See the Posterior Predictive Extreme Value Inference using the revdbayes Package vignette for information. The effect of adjusting for the values of the extremal index in the posterior sample is to change the effective time horizon from N to θN.

The function predict.blite can estimate predictive intervals, quantiles, distribution and density functions for MN and simulate from the predictive distribution for MN. For example, the following code estimates a 95% highest predictive density (HPD) interval for M100 and plots the predictive densities of M100 and M1000.

# Interval estimation
predict(cpost, hpd = TRUE)$short
#>         lower   upper n_years level
#> [1,] 72.56594 139.808     100    95
# Density function
plot(predict(cpost, type = "d", n_years = c(100, 1000)))

References

Northrop, Paul J. 2020. revdbayes: Ratio-of-Uniforms Sampling for Bayesian Extreme Value Analysis. https://CRAN.R-project.org/package=revdbayes.
Ribatet, Mathieu, Daniel Cooley, and Anthony C. Davison. 2012. “Bayesian Inference from Composite Likelihoods, with an Application to Spatial Extremes.” Statistica Sinica 22 (2): 813–845. https://www.jstor.org/stable/24310036.