Version: 0.0.5
Date: 2025-10-07
Title: Extreme Risk Measures
Author: Simone Padoan [cre, aut], Gilles Stupfler [aut], Carlotta Pacifici [aut]
Maintainer: Simone Padoan <simone.padoan@unibocconi.it>
Imports: evd, copula, mvtnorm, plot3D, tmvtnorm, pracma
Depends: R (≥ 3.5.0)
Description: A set of procedures for estimating risks related to extreme events via risk measures such as Expectile, Value-at-Risk, etc. is provided. Estimation methods for univariate independent observations and temporal dependent observations are available. The methodology is extended to the case of independent multidimensional observations. The statistical inference is performed through parametric and non-parametric estimators. Inferential procedures such as confidence intervals, confidence regions and hypothesis testing are obtained by exploiting the asymptotic theory. Adapts the methodologies derived in Padoan and Stupfler (2022) <doi:10.3150/21-BEJ1375>, Davison et al. (2023) <doi:10.1080/07350015.2022.2078332>, Daouia et al. (2018) <doi:10.1111/rssb.12254>, Drees (2000) <doi:10.1214/aoap/1019487617>, Drees (2003) <doi:10.3150/bj/1066223272>, de Haan and Ferreira (2006) <doi:10.1007/0-387-34471-3>, de Haan et al. (2016) <doi:10.1007/s00780-015-0287-6>, Padoan and Rizzelli (2024) <doi:10.3150/23-BEJ1668>, Daouia et al. (2024) <doi:10.3150/23-BEJ1632>.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
URL: https://faculty.unibocconi.it/simonepadoan/
NeedsCompilation: yes
Repository: CRAN
Repository/R-Forge/Project: extremerisks
Encoding: UTF-8
Packaged: 2025-10-09 15:28:01 UTC; padoan
Date/Publication: 2025-10-09 16:30:09 UTC

Bayesian predictive quantile for generalized Pareto distribution

Description

WARNING: this function will not be exported in a future version of the package.

Usage

Bqgpd_c(p, post, lower, upper)

Arguments

p

probability levels

post

matrix of posterior samples

lower

lower bound for the search for the quantile

upper

upper bound for the region over which to search for the quantile

Value

a vector of quantiles of the same length as p


Bayesian predictive quantile for discrete generalized Pareto distribution

Description

WARNING: this function will not be exported in a future version of the package.

Usage

Bqgpd_d(p, post, lower, upper)

Arguments

p

probability levels

post

matrix of posterior samples

lower

lower bound for the search for the quantile

upper

upper bound for the region over which to search for the quantile

Value

a vector of quantiles of the same length as p


Expectile Based Tail Index Estimation

Description

Computes a point estimate of the tail index based on the Expectile Based (EB) estimator.

Usage

EBTailIndex(data, tau, est=NULL)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details\.

est

A real specifying the estimate of the expectile at the intermediate level tau.

Details

For a dataset data of sample size n, the tail index \gamma of its (marginal) distribution is estimated using the EB estimator:

\hat{\gamma}_n^E =\left(1+\frac{\hat{\bar{F}}_n(\tilde{\xi}_{\tau_n})}{1-\tau_n}\right)^{-1} ,

where \hat{\bar{F}}_n is the empirical survival function of the observations, \tilde{\xi}_{\tau_n} is an estimate of the \tau_n-th expectile. The observations can be either independent or temporal dependent. See Padoan and Stupfler (2020) and Daouia et al. (2018) for details.

Value

An estimate of the tain index \gamma.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

See Also

HTailIndex, MomTailIndex, MLTailIndex,

Examples

# Tail index estimation based on the Expectile based estimator obtained with data
# simulated from an AR(1) with 1-dimensional Student-t distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallblock <- 15

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.97

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# tail index estimation
gammaHat <- EBTailIndex(data, tau)
gammaHat

Marginal Expected Shortfall Expectile Based Estimation

Description

Computes a point and interval estimate of the Marginal Expected Shortfall (MES) using an expectile based approach.

Usage

ExpectMES(data, tau, tau1, method="LAWS", var=FALSE, varType="asym-Dep", bias=FALSE,
          bigBlock=NULL, smallBlock=NULL, k=NULL, alpha_n=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the LAWS based estimator. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the MES estimator is computed.

varType

A string specifying the type of asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bias

A logical value. By default bias=FALSE specifies that no bias correction is computed. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha_n

A real in (0,1) specifying the quantile's extreme level to be use in order to estimate the expectile's extreme level.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the expecile at the intermedite level.

Details

For a dataset data of sample size n, an estimate of the \tau'_n-th MES is computed. The estimation of the MES at the extreme level tau1 (\tau'_n) is indeed meant to be a prediction. Two estimators are available: the so-called Least Asymmetrically Weighted Squares (LAWS) based estimator and the Quantile-Based (QB) estimator. The definition of both estimators depends on the estimation of the tail index \gamma. Here, \gamma is estimated using the Hill estimation (see HTailIndex for details). The observations can be either independent or temporal dependent. See Section 4 in Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to nancial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

Drees, H. (2003). Extreme quantile estimation for dependent data, with applications to finance. Bernoulli, 9, 617-657.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

QuantMES, HTailIndex, predExpectiles, extQuantile

Examples

# Marginl Expected Shortfall expectile based estimation at the extreme level
# obtained with 2-dimensional data simulated from an AR(1) with bivariate
# Student-t distributed innovations

tsDist <- "AStudentT"
tsType <- "AR"
tsCopula <- "studentT"

# parameter setting
corr <- 0.8
dep <- 0.8
df <- 3
par <- list(corr=corr, dep=dep, df=df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# quantile's extreme level
alpha_n <- 0.999

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rbtimeseries(ndata, tsDist, tsType, tsCopula, par)


# Extreme MES expectile based estimation
MESHat <- ExpectMES(data, NULL, NULL, var=TRUE, k=150, bigBlock=bigBlock,
                    smallBlock=smallBlock, alpha_n=alpha_n)
MESHat


Hill Tail Index Estimation

Description

Computes a point and interval estimate of the tail index based on the Hill's estimator.

Usage

HTailIndex(data, k, var=FALSE, varType="asym-Dep", bias=FALSE, bigBlock=NULL,
           smallBlock=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

var

If var=TRUE then an estimate of the variance of the tail index estimator is computed.

varType

A string specifying the asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bias

A logical value. By default biast=FALSE specifies that no bias correction is computed. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the tail index.

Details

For a dataset data of sample size n, the tail index \gamma of its (marginal) distribution is computed by applying the Hill estimator. The observations can be either independent or temporal dependent.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to nancial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

MLTailIndex, MomTailIndex, EBTailIndex

Examples

# Tail index estimation based on the Hill estimator obtained with
# 1-dimensional data simulated from an AR(1) with univariate Student-t
# distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# Number of larger order statistics
k <- 150

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# tail index estimation
gammaHat1 <- HTailIndex(data, k, TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
gammaHat1$gammaHat
gammaHat1$CIgamHat

# tail index estimation with bias correction
gammaHat2 <- HTailIndex(data, 2*k, TRUE, bias=TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
gammaHat2$gammaHat-gammaHat2$BiasGamHat
gammaHat2$CIgamHat

Wald-Type Hypothesis Testing

Description

Wald-type hypothesis tes for testing equality of high or extreme expectiles and quantiles

Usage

HypoTesting(data, tau, tau1=NULL, type="ExpectRisks", level="extreme",
            method="LAWS", bias=FALSE, k=NULL, alpha=0.05)

Arguments

data

A matrix of (n \times d) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

type

A string specifying the type of test. By default type="ExpectRisks" specifies the test for testing the equality of expectiles. See Details.

level

A string specifying the level of the expectile. This make sense when type="ExpectRisks". By default level="extreme" specifies that the test concerns expectiles at the extreme level. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the LAWS based estimator. See Details.

bias

A logical value. By default bias=FALSE specifies that no bias correction is computed. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the significance level of the test.

Details

With a dataset data of d-dimensional observations and sample size n, a Wald-type hypothesis testing is performed in order to check whether the is empirical evidence against the null hypothesis. The null hypothesis concerns the equality among the expectiles or quantiles or tail indices of the marginal distributions. The three tests depend on the depends on the estimation of the d-dimensional tail index \gamma. Here, \gamma is estimated using the Hill estimation (see MultiHTailIndex for details). The data are regarded as d-dimensional temporal independent observations coming from dependent variables. See Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

See Also

MultiHTailIndex, predMultiExpectiles, extMultiQuantile

Examples

# Hypothesis testing on the equality extreme expectiles based on a sample of
# d-dimensional observations simulated from a joint distribution with
# a Gumbel copula and equal Frechet marginal distributions.
library(plot3D)
library(copula)
library(evd)

# distributional setting
copula <- "Gumbel"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.95
# Extreme level (or tail probability 1-tau1 of unobserved expectile)
tau1 <- 0.9995

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# Performs Wald-type hypothesis testing
HypoTesting(data, tau, tau1)

# Hypothesis testing on the equality extreme expectiles based on a sample of
# d-dimensional observations simulated from a joint distribution with
# a Clayton copula and different Frechet marginal distributions.

# distributional setting
copula <- "Clayton"
dist <- "Frechet"

# parameter setting
dim <- 3
dep <- 2
scale <- rep(1, dim)
shape <- c(2.1, 3, 4.5)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.95
# Extreme level (or tail probability 1-tau1 of unobserved expectile)
tau1 <- 0.9995

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# Performs Wald-type hypothesis testing
HypoTesting(data, tau, tau1)

Maximum Likelihood Tail Index Estimation

Description

Computes a point and interval estimate of the tail index based on the Maximum Likelihood (ML) estimator.

Usage

MLTailIndex(data, k, var=FALSE, varType="asym-Dep", bigBlock=NULL,
            smallBlock=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the tail index estimator is computed.

varType

A string specifying the asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the tail index.

Details

For a dataset data of sample size n, the tail index \gamma of its (marginal) distribution is computed by applying the ML estimator. The observations can be either independent or temporal dependent.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

HTailIndex, MomTailIndex, EBTailIndex

Examples

# Tail index estimation based on the Maximum Likelihood estimator obtained with
# 1-dimensional data simulated from an AR(1) with univariate Student-t
# distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# Number of larger order statistics
k <- 150

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# tail index estimation
gammaHat <- MLTailIndex(data, k, TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
gammaHat$gammaHat
gammaHat$CIgamHat

Moment based Tail Index Estimation

Description

Computes a point estimate of the tail index based on the Moment Based (MB) estimator.

Usage

MomTailIndex(data, k)

Arguments

data

A vector of (1 \times n) observations.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

Details

For a dataset data of sample size n, the tail index \gamma of its (marginal) distribution is computed by applying the MB estimator. The observations can be either independent or temporal dependent. For details see de Haan and Ferreira (2006).

Value

An estimate of the tail index \gamma.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

See Also

HTailIndex, MLTailIndex, EBTailIndex

Examples

# Tail index estimation based on the Moment estimator obtained with
# 1-dimensional data simulated from an AR(1) with univariate Student-t
# distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallblock <- 15

# Number of larger order statistics
k <- 150

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# tail index estimation
gammaHat <- MomTailIndex(data, k)
gammaHat

Multidimensional Hill Tail Index Estimation

Description

Computes point estimates and (1-\alpha)100\% confidence regions estimate of d-dimensional tail indices based on the Hill's estimator.

Usage

MultiHTailIndex(data, k, var=FALSE, varType="asym-Dep", bias=FALSE,
                alpha=0.05, plot=FALSE)

Arguments

data

A matrix of (n \times d) observations.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

var

If var=TRUE then an estimate of the variance-covariance matrix of the tail indices estimators is computed.

varType

A string specifying the asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for d dependent marginal variables. See Details.

bias

A logical value. By default biast=FALSE specifies that no bias correction is computed. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the tail index.

plot

A logical value. By default plot=FALSE specifies that no graphical representation of the estimates is provided. See Details.

Details

For a dataset data of (n \times d) observations, where d is the number of variables and n is the sample size, the tail index \gamma of the d marginal distributions is estimated by applying the Hill estimator. Together with a point estimate a (1-\alpha)100\% confidence region is computed. The data are regarded as d-dimensional temporal independent observations coming from dependent variables.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to financial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

See Also

HTailIndex, rmdata

Examples

# Tail index estimation based on the multivariate Hill estimator obtained with
# n observations simulated from a d-dimensional random vector with a multivariate
# distribution with equal Frechet margins and a Clayton copula.
library(plot3D)
library(copula)
library(evd)

# distributional setting
copula <- "Clayton"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Number of larger order statistics
k <- 150

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Clayton copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# tail indices estimation
est <- MultiHTailIndex(data, k, TRUE)
est$gammaHat
est$VarCovGHat
# run the following command to see the graphical representation
## Not run: 
 est <- MultiHTailIndex(data, k, TRUE, plot=TRUE)

## End(Not run)

Marginal Expected Shortfall Quantile Based Estimation

Description

Computes a point and interval estimate of the Marginal Expected Shortfall (MES) using a quantile based approach.

Usage

QuantMES(data, tau, tau1, var=FALSE, varType="asym-Dep", bias=FALSE, bigBlock=NULL,
         smallBlock=NULL, k=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the MES estimator is computed.

varType

A string specifying the type of asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bias

A logical value. By default bias=FALSE specifies that no bias correction is computed. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the expecile at the intermedite level.

Details

For a dataset data of sample size n, an estimate of the \tau'_n-th MES is computed. The estimation of the MES at the extreme level tau1 (\tau'_n) is indeed meant to be a prediction. Estimates are obtained through the quantile based estimator defined in page 12 of Padoan and Stupfler (2020). Such an estimator depends on the estimation of the tail index \gamma. Here, \gamma is estimated using the Hill estimation (see HTailIndex for details). The observations can be either independent or temporal dependent. See Section 4 in Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to nancial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

Drees, H. (2003). Extreme quantile estimation for dependent data, with applications to finance. Bernoulli, 9, 617-657.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

ExpectMES, HTailIndex, predExpectiles, extQuantile

Examples

# Marginl Expected Shortfall quantile based estimation at the extreme level
# obtained with 2-dimensional data simulated from an AR(1) with bivariate
# Student-t distributed innovations


tsDist <- "AStudentT"
tsType <- "AR"
tsCopula <- "studentT"

# parameter setting
corr <- 0.8
dep <- 0.8
df <- 3
par <- list(corr=corr, dep=dep, df=df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# quantile's extreme level
tau1 <- 0.9995

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rbtimeseries(ndata, tsDist, tsType, tsCopula, par)


# Extreme MES expectile based estimation
MESHat <- QuantMES(data, NULL, tau1, var=TRUE, k=150, bigBlock=bigBlock,
                   smallBlock=smallBlock)
MESHat


Estimation of the scedasis function

Description

Kernel-based method for the estimation of the scedasis function. Given the values of the complete and concomitant covariate, defined as X \mid Y > t, with t being the threshold, it returns a matrix containing a posterior sample of the scedasis function for each covariate value.

Usage

cpost_stat(N, x, xs, xg, bw, k, C = 5L)

Arguments

N

integer, number of samples to draw from the distribution of the concomitant covariate

x

one-dimensional vector of in-sample covariate in [0,1]

xs

one-dimensional vector of concomitant covariate

xg

one-dimensional vector of length m containing the grid of in-sample and possibly out-sample covariate in [0,1]

bw

double, bandwidth for the computation of the kernel

k

integer, number of exceedances for the generalized Pareto

C

integer, hyperparameter entering the posterior distribution of the law of the concomitant covariate. Default: 5

Value

an N by m matrix containing the values of the posterior samples of the scedasis function (rows) for each value of xg (columns)

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n, 0, 1:n, 4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp, decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(
  samp,
  threshold,
  control = list(maxit = 500))
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# conditional predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
# estimation of scedasis function
# setting
M <- 1e3
C <- 5
alpha <- 0.05
bw <- .5
nsim <- 5000
burn <- 1000
# create covariate
# in sample obs
n_in = n
# number of years ahead
nY = 1
n_out = 365 * nY
# total obs
n_tot = n_in + n_out
# total covariate (in+out sample period)
x <- seq(0, 1, length = n_tot)
# in sample grid dimension for covariate
ng_in <- 150
xg <- seq(0, x[n_in], length = ng_in)
# in+out of sample grid
xg <- c(xg, seq(x[n_in + 1], x[(n_tot)], length = ng_in))
# in+out sample grid dimension
nxg <- length(xg)
xg <- array(xg, c(nxg, 1))
# in sample observations
samp_in <- samp[1:n_in]
ssamp_in <- sort(samp_in, decreasing = TRUE, index = TRUE)
x_in <- x[1:n_in] # in sample covariate
xs <- x_in[ssamp_in$ix[1:k]]
# in sample concomitant covariate
# estimate scedasis function over the in and out of sample period
res_stat <- apply(
  xg,
  1,
  cpost_stat,
  N = nsim - burn,
  x = x_in,
  xs = xs,
  bw = bw,
  k = k,
  C = C
)

## End(Not run)

Negative log-returns of DOW JONES.

Description

Series of negative log-returns of the U.S. stock market index Dow Jones.

Format

A 8784*2 data frame.

Details

From the series of n = 8785 closing prices S_{t}, t=1,2,..., for the Dow Jones stock market index, recorded from January 29, 1985 to December 12, 2019, the series of negative log-returns.

X_{t+1} = - \log(S_{t+1}/S_t), \quad 1\leq t\leq n-1

is available. Hence the dataset (negative log-returns) contains 8784 observations.


High Expectile Estimation

Description

Computes a point and interval estimate of the expectile at the intermediate level.

Usage

estExpectiles(data, tau, method="LAWS", tailest="Hill", var=FALSE, varType="asym-Dep-Adj",
              bigBlock=NULL, smallBlock=NULL, k=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the direct LAWS estimator. See Details.

tailest

A string specifying the type of tail index estimator. By default tailest="Hill" specifies the use of Hill estimator. See Details.

var

If var=TRUE then an estimate of the variance of the expectile estimator is computed.

varType

A string specifying the asymptotic variance to compute. By default varType="asym-Dep-Adj" specifies the variance estimator for serial dependent observations implemented with a suitable adjustment. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the expecile at the intermedite level.

Details

For a dataset data of sample size n, an estimate of the \tau_n-th expectile is computed. Two estimators are available: the so-called direct Least Asymmetrically Weighted Squares (LAWS) and indirect Quantile-Based (QB). The definition of the QB estimator depends on the estimation of the tail index \gamma. Here, \gamma is estimated using the Hill estimation (see HTailIndex) or in alternative using the the expectile based estimator (see EBTailIndex). The observations can be either independent or temporal dependent. See Section 3.1 in Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

HTailIndex, EBTailIndex, predExpectiles, extQuantile

Examples

# Extreme expectile estimation at the intermediate level tau obtained with
# 1-dimensional data simulated from an AR(1) with Student-t innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.99

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# High expectile (intermediate level) estimation
expectHat <- estExpectiles(data, tau, var=TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
expectHat$ExpctHat
expectHat$CIExpct

Extreme Level Estimation

Description

Estimates the expectile's extreme level corresponding to a quantile's extreme level.

Usage

estExtLevel(alpha_n, data=NULL, gammaHat=NULL, VarGamHat=NULL, tailest="Hill", k=NULL,
            var=FALSE, varType="asym-Dep", bigBlock=NULL, smallBlock=NULL, alpha=0.05)

Arguments

alpha_n

A real in (0,1) specifying the extreme level \alpha_n for the quantile. See Details.

data

A vector of (1 \times n) observations to be used to estimate the tail index in the case it is not provided. By default data=NULL specifies that no data are given.

gammaHat

A real specifying an estimate of the tail index. By default gammaHat=NULL specifies that no estimate is given. See Details.

VarGamHat

A real specifying an estimate of the variance of the tail index estimate. By default VarGamHat=NULL specifies that no estimate is given. See Details.

tailest

A string specifying the type of tail index estimator to be used. By default tailest="Hill" specifies the use of Hill estimator. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

var

If var=TRUE then an estimate of the variance of the extreme level estimator is computed.

varType

A string specifying the asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the expecile at the intermedite level.

Details

For a given extreme level \alpha_n for the \alpha_n-th quantile, an estimate of the extreme level \tau_n'(\alpha_n) is computed such that \xi_{\tau_n'(\alpha_n)}=q_{\alpha_n}. The estimator is defined by

\hat{\tau}_n'(\alpha_n) = 1 - (1 - \alpha_n)\frac{\hat{\gamma}_n}{1-\hat{\gamma}_n}

where \hat{\gamma}_n is a consistent estimator of the tail index \gamma. If a value for the parameter gammaHat is given, then such a value is used to compute \hat{\tau}_n'. If gammaHat is NULL and a dataset is provided through the parameter data, then the tail index \gamma is estimated by a suitable estimator \hat{\gamma}_n. See Section 6 in Padoan and Stupfler (2020) for more details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

See Also

estExpectiles, predExpectiles, extQuantile

Examples

# Extreme level estimation for a given quantile's extreme level alpha_n
# obtained with 1-dimensional data simulated from an AR(1) with Student-t innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# quantile's extreme level
alpha_n <- 0.999

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# expectile's extreme level estimation
tau1Hat <- estExtLevel(alpha_n, data, var=TRUE, k=150, bigBlock=bigBlock,
                       smallBlock=smallBlock)
tau1Hat

Multidimensional High Expectile Estimation

Description

Computes point estimates and (1-\alpha)100\% confidence regions for d-dimensional expectiles at the intermediate level.

Usage

estMultiExpectiles(data, tau, method="LAWS", tailest="Hill", var=FALSE,
                   varType="asym-Ind-Adj", k=NULL, alpha=0.05, plot=FALSE)

Arguments

data

A matrix of (n \times d) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the direct LAWS estimator. See Details.

tailest

A string specifying the type of tail index estimator. By default tailest="Hill" specifies the use of Hill estimator. See Details.

var

If var=TRUE then an estimate of the variance of the expectile estimator is computed.

varType

A string specifying the asymptotic variance-covariance matrix to compute. By default varType="asym-Ind-Adj" specifies that the variance-covariance matrix is computed assuming dependent variables and exploiting a suitable adjustment. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence region for the d-dimensional expecile at the intermedite level.

plot

A logical value. By default plot=FALSE specifies that no graphical representation of the estimates is not provided. See Details.

Details

For a dataset data of d-dimensional observations and sample size n, an estimate of the \tau_n-th d-dimensional is computed. Two estimators are available: the so-called direct Least Asymmetrically Weighted Squares (LAWS) and indirect Quantile-Based (QB). The QB estimator depends on the estimation of the d-dimensional tail index \gamma. Here, \gamma is estimated using the Hill estimator (see MultiHTailIndex). The data are regarded as d-dimensional temporal independent observations coming from dependent variables. See Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

See Also

MultiHTailIndex, predMultiExpectiles, extMultiQuantile

Examples

# Extreme expectile estimation at the intermediate level tau obtained with
# d-dimensional observations simulated from a joint distribution with
# a Gumbel copula and equal Frechet marginal distributions.
library(plot3D)
library(copula)
library(evd)

# distributional setting
copula <- "Gumbel"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Intermediate level (or sample tail probability 1-tau)
tau <- .95

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# High d-dimensional expectile (intermediate level) estimation
expectHat <- estMultiExpectiles(data, tau, var=TRUE)
expectHat$ExpctHat
expectHat$VarCovEHat
# run the following command to see the graphical representation
## Not run: 
 expectHat <- estMultiExpectiles(data, tau, var=TRUE, plot=TRUE)

## End(Not run)

Estimation of generalized Pareto distributions

Description

Bayesian or frequentist estimation of the scale and shape parameters of the continuous or discrete generalized Pareto distribution.

Usage

estPOT(
  data,
  k = 10L,
  pn = NULL,
  type = c("continuous", "discrete"),
  method = c("bayesian", "frequentist"),
  prior = "empirical",
  start = NULL,
  sig0 = NULL,
  nsim = 5000L,
  burn = 1000L,
  p = 0.234,
  optim.method = "Nelder-Mead",
  control = NULL,
  ...
)

Arguments

data

numeric vector of length n containing complete data values (under and above threshold)

k

double indicating the effective sample size. Default: 10

pn

numeric vector containing one or more percentile level at which extreme quantiles are estimated, with p < k/n. Default: NULL

type

string indicating distribution types. Default: c('continuous','discrete')

method

string indicating estimation methods. Default: c('bayesian', 'frequentist')

prior

string indicating prior distribution (uniform or empirical). Default: 'empirical'

start

list of 2 containing starting values for scale and shape parameters. Default: NULL

sig0

double indicating the initial value for the update of the variance in the MCMC algorithm. Default: NULL

nsim

double indicating the total number of iterations of the MCMC algorithm in the Bayesian estimation case. Default: 5000L

burn

double indicating the number of iterations to exclude in the MCMC algorithm of the Bayesian estimation case. Default: 1000L

p

double indicating the desired overall sampler acceptance probability. Default: 0.234

optim.method

string indicating the optimization method in the frequentist estimation case. Default: 'Nelder-Mead'

control

list containing additional parameters for the minimization function optim. Default: NULL

...

other arguments passed to the function

Value

a list with the following elements

References

Dombry, C., S. Padoan and S. Rizzelli (2025). Asymptotic theory for Bayesian inference and prediction: from the ordinary to a conditional Peaks-Over-Threshold method, arXiv:2310.06720v2.

See Also

fpot

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,3,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold)
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
 
## End(Not run)

Expectile Computation

Description

Computes the true expectile for some families of parametric models.

Usage

expectiles(par, tau, tsDist="gPareto", tsType="IID", trueMethod="true",
           estMethod="LAWS", nrep=1e+05, ndata=1e+06, burnin=1e+03)

Arguments

par

A vector of (1 \times p) parameters of the time series parametric family. See Details.

tau

A real in (0,1) specifying the level \tau of the expectile to be computed. See Details.

tsDist

A string specifying the parametric family of the innovations distribution. By default tsDist="gPareto" specifies a Pareto family of distributions. See Details.

tsType

A string specifying the type of time series. By default tsType="IID" specifies a sequence of independent and indentically distributed random variables. See Details.

trueMethod

A string specifying the method used to computed the expecile. By default trueMethod="true" specifies that the true analytical expression to computed the expectile is used. See Details.

estMethod

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the direct LAWS estimator. See Details.

nrep

A positive interger specifying the number of simulations to use for computing an approximation of the expectile. See Details.

ndata

A positive interger specifying the number of observations to genreated for each simulation. See Details.

burnin

A positive interger specifying the number of initial observations to discard from the simulated sample.

Details

For a parametric family of time series models or a parametric family of distributions (for the case of independent observations) the \tau-th expectile (or expectile of level tau) is computed.

Value

The \tau-th expectile.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

See Also

rtimeseries

Examples

# Derivation of the true tau-th expectile for the Pareto distribution
# via accurate simulation

# parameter value
par <- c(1, 0.3)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.99

trueExp <- expectiles(par, tau)
trueExp

## Not run: 
# tau-th expectile of the AR(1) with Student-t innovations
tsDist <- "studentT"
tsType <- "AR"

# Approximation via Monte Carlo methods
trueMethod <- "approx"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.99

trueExp <- expectiles(par, tau, tsDist, tsType, trueMethod)
trueExp

## End(Not run)

Bayesian extreme quantile

Description

Given posterior samples for the parameters of the continuous or discrete generalized Pareto distribution, return the posterior mean and 1-\alpha level credibility intervals of the extreme quantile

Usage

extBQuant(
  threshold,
  postsamp,
  k,
  n,
  retp,
  alpha = 0.05,
  type = c("continuous", "discrete")
)

Arguments

threshold

threshold for the generalized Pareto model, corresponding to the n-kth order statistic of the sample

postsamp

a m by 2 matrix with columns containing the posterior samples of scale and shape parameters of the generalized Pareto distribution, respectively

k

integer, number of exceedances for the generalized Pareto (only used if extrapolation=TRUE)

n

integer, number of observations in the full sample. Must be greater than k (only used if extrapolation=TRUE)

retp

double indicating the value of the return period

alpha

level for credibility interval. Default: 0.05 giving 95% credibility intervals

type

string indicating distribution types. Default: c('continuous','discrete')

Value

a list with components

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(500,0,3,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold)
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# extreme quantile corresponding to a return period of 100
extBQuant(
  proc$t,proc$post_sample,
  k,
  n,
  100,
  0.05,
  type = "continuous")

## End(Not run)

Conditional Bayesian extreme quantile

Description

Given posterior samples for the parameters of the continuous or discrete generalized Pareto distribution and scedasis function for a set of covariates, return the posterior mean and 1-\alpha level credibility intervals of the extreme quantile for each value of the scedasis function

Usage

extBQuantx(
  cx,
  postsamp,
  threshold,
  n,
  qlev,
  k,
  type = c("continuous", "discrete"),
  confint = c("asymmetric", "symmetric"),
  alpha = 0.05,
  ...
)

Arguments

cx

an m by p matrix, obtained by evaluating the scedasis function for every of the p covariate values and every m posterior draw

postsamp

a m by 2 matrix with columns containing the posterior samples of scale and shape parameters of the generalized Pareto distribution, respectively

threshold

threshold for the generalized Pareto model, corresponding to the n-kth order statistic of the sample

n

integer, number of observations in the full sample. Must be greater than k

qlev

double indicating the percentile level at which the extreme quantile is estimated. Must be smaller than k/n

k

integer, number of exceedances for the generalized Pareto (only used if extrapolation=TRUE)

type

string indicating distribution types. Default: c('continuous','discrete')

confint

type of confidence interval. Default: c('asymmetric', 'symmetric')

alpha

level for credibility interval. Default 0.05, giving 95% credibility intervals

...

additional arguments, for back-compatilibity

Value

a list with components

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,1:n,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(
  samp,
  threshold,
  control = list(maxit = 500))
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# conditional predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
# estimation of scedasis function
# setting
M <- 1e3
C <- 5
alpha <- 0.05
bw <- .5
nsim <- 5000
burn <- 1000
# create covariate
# in sample obs
n_in = n
# number of years ahead
nY = 1
n_out = 365 * nY
# total obs
n_tot = n_in + n_out
# total covariate (in+out sample period)
x <- seq(0, 1, length = n_tot)
# in sample grid dimension for covariate
ng_in <- 150
xg <- seq(0, x[n_in], length = ng_in)
# in+out of sample grid
xg <- c(xg, seq(x[n_in + 1], x[(n_tot)], length = ng_in))
# in+out sample grid dimension
nxg <- length(xg)
xg <- array(xg, c(nxg, 1))
# in sample observations
samp_in <- samp[1:n_in]
ssamp_in <- sort(samp_in, decreasing = TRUE, index = TRUE)
x_in <- x[1:n_in] # in sample covariate
xs <- x_in[ssamp_in$ix[1:k]] # in sample concomitant covariate
# estimate scedasis function over the in and out of sample period
res_stat <- apply(
  xg,
  1,
  cpost_stat,
  N = nsim - burn,
  x = x_in,
  xs = xs,
  bw = bw,
  k = k,
  C = C
)
# conditional predictive posterior density
probq = 1 - 0.99
res_AQ <- extBQuantx(
 cx = res_stat,
 postsamp = proc$post_sample,
 threshold = proc$t,
 n = n,
 qlev = probq,
 k = k,
 type = "continuous",
 confint = "asymmetric")
 
## End(Not run)

Multidimensional Value-at-Risk (VaR) or Extreme Quantile (EQ) Estimation

Description

Computes point estimates and (1-\alpha)100\% confidence regions for d-dimensional VaR based on the Weissman estimator.

Usage

extMultiQuantile(data, tau, tau1, var=FALSE, varType="asym-Ind-Log", bias=FALSE,
                 k=NULL, alpha=0.05, plot=FALSE)

Arguments

data

A matrix of (n \times d) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

var

If var=TRUE then an estimate of the asymptotic variance-covariance matrix of the d-dimensional VaR estimator is computed.

varType

A string specifying the type of asymptotic variance-covariance matrix to compute. By default varType="asym-Ind-Log" specifies that the variance-covariance matrix is obtained assuming dependent variables and exploiting the logarithmic scale. See Details.

bias

A logical value. By default biast=FALSE specifies that no bias correction is computed. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence region for the d-dimensional VaR.

plot

A logical value. By default plot=FALSE specifies that no graphical representation of the estimates is not provided. See Details.

Details

For a dataset data of d-dimensional observations and sample size n, the VaR or EQ, correspoding to the extreme level tau1, is computed by applying the d-dimensional Weissman estimator. The definition of the Weissman estimator depends on the estimation of the d-dimensional tail index \gamma. Here, \gamma is estimated using the Hill estimation (see MultiHTailIndex). The data are regarded as d-dimensional temporal independent observations coming from dependent variables. See Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to financial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

See Also

MultiHTailIndex, estMultiExpectiles, predMultiExpectiles

Examples

# Extreme quantile estimation at the extreme level tau1 obtained with
# d-dimensional observations simulated from a joint distribution with
# a Gumbel copula and equal Frechet marginal distributions.
library(plot3D)
library(copula)
library(evd)

# distributional setting
copula <- "Gumbel"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.95
# Extreme level (or tail probability 1-tau1 of unobserved quantile)
tau1 <- 0.9995

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# High d-dimensional expectile (intermediate level) estimation
extQHat <- extMultiQuantile(data, tau, tau1, TRUE)

extQHat$ExtQHat
extQHat$VarCovExQHat
# run the following command to see the graphical representation
## Not run: 
 extQHat <- extMultiQuantile(data, tau, tau1, TRUE, plot=TRUE)

## End(Not run)

Value-at-Risk (VaR) or Extreme Quantile (EQ) Estimation

Description

Computes a point and interval estimate of the VaR based on the Weissman estimator.

Usage

extQuantile(data, tau, tau1, var=FALSE, varType="asym-Dep", bias=FALSE, bigBlock=NULL,
            smallBlock=NULL, k=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the VaR estimator is computed.

varType

A string specifying the type of asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bias

A logical value. By default biast=FALSE specifies that no bias correction is computed. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the VaR.

Details

For a dataset data of sample size n, the VaR or EQ, correspoding to the extreme level tau1, is computed by applying the Weissman estimator. The definition of the Weissman estimator depends on the estimation of the tail index \gamma. Here, \gamma is estimated using the Hill estimation (see HTailIndex). The observations can be either independent or temporal dependent (see e.g. de Haan and Ferreira 2006; Drees 2003; de Haan et al. 2016 for details).

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to nancial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

de Haan, L. and Ferreira, A. (2006). Extreme Value Theory: An Introduction. Springer-Verlag, New York.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

Drees, H. (2003). Extreme quantile estimation for dependent data, with applications to finance. Bernoulli, 9, 617-657.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

HTailIndex, EBTailIndex, estExpectiles

Examples

# Extreme quantile estimation at the level tau1 obtained with 1-dimensional data
# simulated from an AR(1) with univariate Student-t distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.97
# Extreme level (or tail probability 1-tau1 of unobserved quantile)
tau1 <- 0.9995

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# VaR (extreme quantile) estimation
extQHat1 <- extQuantile(data, tau, tau1, TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
extQHat1$ExtQHat
extQHat1$CIExtQ

# VaR (extreme quantile) estimation with bias correction
extQHat2 <- extQuantile(data, tau, tau1, TRUE, bias=TRUE, bigBlock=bigBlock, smallBlock=smallBlock)
extQHat2$ExtQHat
extQHat2$CIExtQ

Maximum likelihood estimation of the parameters of the discrete generalized Pareto distribution

Description

Given a sample of exceedances, estimate the parameters via maximum likelihood along with 1-\alpha level confidence intervals.

Usage

fitdGPD(excess, alpha = 0.05)

Arguments

excess

vector of positive exceedances, i.e., Y - t \mid Y > t, with t being the threshold

alpha

level for confidence interval of scale and shape parameters. Default: 0.05, giving 95% confidence intervals

Value

a list with elements

References

Hitz, A.S., G. Samorodnistsky and R.A. Davis (2024). Discrete Extremes, Journal of Data Science, 22(4), pp. 524-536.

Examples

fitdGPD(rpois(1000,2))

Plot empirical Bayes inference results for continuous and discrete generalized Pareto distribution

Description

Given a sample of posterior draws of the scale or shape parameter, return a histogram on the density scale for the posterior distribution along with a theoretical prior and posterior comparison curve based on the MLE, pointwise Wald-based normal 95% confidence intervals for the mean of the sample, and pointwise credible intervals (asymmetric by design).

Usage

plotBayes(
  x,
  mle,
  alpha = 0.05,
  param = c("scale", "shape"),
  cols = c("mediumseagreen", "goldenrod", "gold4"),
  ...
)

Arguments

x

a vector of posterior samples

mle

vector of length 2 containing the maximum likelihood estimator for the scale and shape parameters, respectively (only used if param="scale")

alpha

level for intervals. Default to 0.05 giving 95% confidence intervals

param

character string indicating the parameter. Default: c("scale", "shape")

cols

vector of length three containing colors for posterior mean, confidence intervals, and credible intervals. Default to c("mediumseagreen", "goldenrod", "gold4")

...

additional arguments for plotting function; only xlab is allowed

Value

NULL; used to create a plot

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n, 0, 3, 4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp, decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold)
# empirical bayes procedure
proc <- estPOT(
 samp,
 k = k,
 pn = c(0.01, 0.005),
 type = "continuous",
 method = "bayesian",
 prior = "empirical",
 start = as.list(mlest$estimate),
 sig0 = 0.1)
plotBayes(
  proc$post_sample[,1],
  mlest$estimate,
  param = "scale")
plotBayes(
  proc$post_sample[,2],
  param = "shape")

## End(Not run)

Predictive posterior density of peak-over-threshold models

Description

Given posterior samples for the parameters of the continuous or discrete generalized Pareto distribution, return the predictive posterior density of a peak above an intermediate or extreme threshold using the threshold stability property.

Usage

predDens(
  x,
  postsamp,
  threshold,
  type = c("continuous", "discrete"),
  extrapolation = FALSE,
  p,
  k,
  n
)

Arguments

x

vector of length r containing the points at which to evaluate the density

postsamp

a m by 2 matrix with columns containing the posterior samples of scale and shape parameters of the generalized Pareto distribution, respectively

threshold

threshold for the generalized Pareto model, corresponding to the n-kth order statistic of the sample

type

data type, either "continuous" or "discrete" for count data.

extrapolation

logical; if TRUE, extrapolate using the threshold stability property

p

scalar tail probability for the extrapolation. Must be smaller than k/n (only used if extrapolation=TRUE)

k

integer, number of exceedances for the generalized Pareto (only used if extrapolation=TRUE)

n

integer, number of observations in the full sample. Must be greater than k (only used if extrapolation=TRUE)

Value

a vector of length r of posterior predictive density values associated to x

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,3,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold)
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
predDens_int <- predDens(
  yg,
  proc$post_sample,
  proc$t,
  "continuous",
  extrapolation = FALSE)
predDens_ext <- predDens(
  yg,
  proc$post_sample,
  proc$t,
  "continuous",
  extrapolation = TRUE,
  p = 0.001,
  k = k,
  n = n)
# plot
plot(
 x = yg,
 y = predDens_int,
 type = "l",
 lwd = 2,
 col = "dodgerblue",
 ylab = "",
 main = "Predictive posterior density")
lines(
 x = yg,
 y = predDens_ext,
 lwd = 2,
 col = "violet")
legend(
  "topright",
  legend = c("Intermediate threshold", "Extreme threshold"),
  lwd = 2,
  col = c("dodgerblue", "violet"))
  
## End(Not run)

Conditional predictive posterior density of peaks-over-threshold models

Description

Given posterior samples for the parameters of the continuous or discrete generalized Pareto distribution and scedasis function for a set of covariates, evaluated at every draw of the latter, return the predictive posterior density of a peak above an intermediate or extreme threshold using the threshold stability property.

Usage

predDensx(
  x,
  postsamp,
  scedasis,
  threshold,
  type = c("continuous", "discrete"),
  extrapolation = FALSE,
  p,
  k,
  n
)

Arguments

x

vector of length r containing the points at which to evaluate the density

postsamp

a m by 2 matrix with columns containing the posterior samples of scale and shape parameters of the generalized Pareto distribution, respectively

scedasis

an m by p matrix, obtained by evaluating the scedasis function for every of the p covariate values and every m posterior draw

threshold

threshold for the generalized Pareto model, corresponding to the n-kth order statistic of the sample

type

data type, either "continuous" or "discrete" for count data.

extrapolation

logical; if TRUE, extrapolate using the threshold stability property

p

scalar tail probability for the extrapolation. Must be smaller than k/n (only used if extrapolation=TRUE)

k

integer, number of exceedances for the generalized Pareto (only used if extrapolation=TRUE)

n

integer, number of observations in the full sample. Must be greater than k (only used if extrapolation=TRUE)

Value

a list with components

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,1:n,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold, control=list(maxit = 500))
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# conditional predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
# estimation of scedasis function
# setting
M <- 1e3
C <- 5
alpha <- 0.05
bw <- .5
nsim <- 5000
burn <- 1000
# create covariate
# in sample obs
n_in = n
# number of years ahead
nY = 1
n_out = 365 * nY
# total obs
n_tot = n_in + n_out
# total covariate (in+out sample period)
x <- seq(0, 1, length = n_tot)
# in sample grid dimension for covariate
ng_in <- 150
xg <- seq(0, x[n_in], length = ng_in)
# in+out of sample grid
xg <- c(xg, seq(x[n_in + 1], x[(n_tot)], length = ng_in))
# in+out sample grid dimension
nxg <- length(xg)
xg <- array(xg, c(nxg, 1))
# in sample observations
samp_in <- samp[1:n_in]
ssamp_in <- sort(samp_in, decreasing = TRUE, index = TRUE)
x_in <- x[1:n_in] # in sample covariate
xs <- x_in[ssamp_in$ix[1:k]] # in sample concomitant covariate
# estimate scedasis function over the in and out of sample period
res_stat <- apply(
  xg,
  1,
  cpost_stat,
  N = nsim - burn,
  x = x_in,
  xs = xs,
  bw = bw,
  k = k,
  C = C
)
# conditional predictive posterior density
yg <- seq(500, 5000, by = 100)
nyg = length(yg)
# intermediate threshold
predDens_intx <- predDensx(
  x = yg,
  postsamp = proc$post_sample,
  scedasis = res_stat,
  threshold = proc$t,
  "continuous",
  extrapolation = FALSE)
# extreme threshold
predDens_extx <- predDensx(
  x = yg,
  postsamp = proc$post_sample,
  scedasis = res_stat,
  threshold = proc$t,
  "continuous",
  extrapolation = TRUE,
  p = 0.001,
  k = k,
  n = n)
# plot intermediate and extreme density conditional on a specific value of scedasis function
# disclaimer: to speed up the procedure, we specify a coarse grid
plot(
 x = predDens_intx$x,
 y = predDens_intx$preddens[,20],
 type = "l",
 lwd = 2,
 col="dodgerblue",
 ylab = "",
 xlab = "yg",
 main = "Conditional predictive posterior density")
lines(
  x = predDens_extx$x,
  y = predDens_extx$preddens[,20],
  lwd = 2,
  col = "violet")
legend("topright",
  legend = c("Intermediate threshold","Extreme threshold"),
  lwd = 2,
  col = c("dodgerblue", "violet"))

## End(Not run)

Extreme Expectile Estimation

Description

Computes a point and interval estimate of the expectile at the extreme level (Expectile Prediction).

Usage

predExpectiles(data, tau, tau1, method="LAWS", tailest="Hill", var=FALSE,
               varType="asym-Dep", bias=FALSE, bigBlock=NULL, smallBlock=NULL,
               k=NULL, alpha_n=NULL, alpha=0.05)

Arguments

data

A vector of (1 \times n) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the LAWS based estimator. See Details.

tailest

A string specifying the tail index estimator. By default tailest="Hill" specifies the use of Hill estimator. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the expectile estimator is computed.

varType

A string specifying the type of asymptotic variance to compute. By default varType="asym-Dep" specifies the variance estimator for serial dependent observations. See Details.

bias

A logical value. By default bias=FALSE specifies that no bias correction is computed. See Details.

bigBlock

An interger specifying the size of the big-block used to estimaste the asymptotic variance. See Details.

smallBlock

An interger specifying the size of the small-block used to estimaste the asymptotic variance. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha_n

A real in (0,1) specifying the quantile's extreme level to be use in order to estimate the expectile's extreme level.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence interval for the expecile at the intermedite level.

Details

For a dataset data of sample size n, an estimate of the \tau'_n-th expectile is computed. The estimation of the expectile at the extreme level tau1 (\tau'_n) is meant to be a prediction beyond the observed sample. Two estimators are available: the so-called Least Asymmetrically Weighted Squares (LAWS) based estimator and the Quantile-Based (QB) estimator. The definition of both estimators depends on the estimation of the tail index \gamma. Here, \gamma is estimated using the Hill estimation (see HTailIndex for details) or in alternative using the the expectile based estimator (see EBTailIndex). The observations can be either independent or temporal dependent. See Section 3.2 in Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

Daouia, A., Girard, S. and Stupfler, G. (2018). Estimation of tail risk based on extreme expectiles. Journal of the Royal Statistical Society: Series B, 80, 263-292.

de Haan, L., Mercadier, C. and Zhou, C. (2016). Adapting extreme value statistics to nancial time series: dealing with bias and serial dependence. Finance and Stochastics, 20, 321-354.

Drees, H. (2003). Extreme quantile estimation for dependent data, with applications to finance. Bernoulli, 9, 617-657.

Drees, H. (2000). Weighted approximations of tail processes for \beta-mixing random variables. Annals of Applied Probability, 10, 1274-1301.

Leadbetter, M.R., Lindgren, G. and Rootzen, H. (1989). Extremes and related properties of random sequences and processes. Springer.

See Also

HTailIndex, EBTailIndex, estExpectiles, extQuantile

Examples

# Extreme expectile estimation at the extreme level tau1 obtained with
# 1-dimensional data simulated from an AR(1) with univariate
# Student-t distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# Big- small-blocks setting
bigBlock <- 65
smallBlock <- 15

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.95
# Extreme level (or tail probability 1-tau1 of unobserved expectile)
tau1 <- 0.9995

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# Extreme expectile estimation
expectHat1 <- predExpectiles(data, tau, tau1, var=TRUE, bigBlock=bigBlock,
	                         smallBlock=smallBlock)
expectHat1$EExpcHat
expectHat1$CIExpct
# Extreme expectile estimation with bias correction
tau <- 0.80
expectHat2 <- predExpectiles(data, tau, tau1, "QB", var=TRUE, bias=TRUE, bigBlock=bigBlock,
							 smallBlock=smallBlock)
expectHat2$EExpcHat
expectHat2$CIExpct

Multidimensional Extreme Expectile Estimation

Description

Computes point estimates and (1-\alpha)100\% confidence regions for d-dimensional expectile at the extreme level (Expectile Prediction).

Usage

predMultiExpectiles(data, tau, tau1, method="LAWS", tailest="Hill", var=FALSE,
                    varType="asym-Ind-Adj-Log", bias=FALSE, k=NULL, alpha=0.05,
                    plot=FALSE)

Arguments

data

A matrix of (n \times d) observations.

tau

A real in (0,1) specifying the intermediate level \tau_n. See Details.

tau1

A real in (0,1) specifying the extreme level \tau'_n. See Details.

method

A string specifying the method used to estimate the expecile. By default est="LAWS" specifies the use of the LAWS based estimator. See Details.

tailest

A string specifying the tail index estimator. By default tailest="Hill" specifies the use of Hill estimator. See Details.

var

If var=TRUE then an estimate of the asymptotic variance of the expectile estimator is computed.

varType

A string specifying the type of asymptotic variance-covariance matrix to compute. By default varType="asym-Ind-Adj-Log" specifies that the variance-covariance matrix is computed assuming dependent variables and exploiting the log scale and a suitable adjustment. See Details.

bias

A logical value. By default bias=FALSE specifies that no bias correction is computed. See Details.

k

An integer specifying the value of the intermediate sequence k_n. See Details.

alpha

A real in (0,1) specifying the confidence level (1-\alpha)100\% of the approximate confidence region for the d-dimensional expecile at the extreme level.

plot

A logical value. By default plot=FALSE specifies that no graphical representation of the estimates is provided. See Details.

Details

For a dataset data of d-dimensional observations and sample size n, an estimate of the \tau'_n-th d-dimensional expectile is computed. The estimation of the d-dimensional expectile at the extreme level tau1 (\tau'_n) is meant to be a prediction beyond the observed sample. Two estimators are available: the so-called Least Asymmetrically Weighted Squares (LAWS) based estimator and the Quantile-Based (QB) estimator. The definition of both estimators depends on the estimation of the d-dimensional tail index \gamma. Here, \gamma is estimated using the Hill estimation (see MultiHTailIndex for details). The data are regarded as d-dimensional temporal independent observations coming from dependent variables. See Padoan and Stupfler (2020) for details.

Value

A list with elements:

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

See Also

MultiHTailIndex, estMultiExpectiles, extMultiQuantile

Examples

# Extreme expectile estimation at the extreme level tau1 obtained with
# d-dimensional observations simulated from a joint distribution with
# a Gumbel copula and equal Frechet marginal distributions.
library(plot3D)
library(copula)
library(evd)

# distributional setting
copula <- "Gumbel"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# Intermediate level (or sample tail probability 1-tau)
tau <- 0.95
# Extreme level (or tail probability 1-tau1 of unobserved expectile)
tau1 <- 0.9995

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginals distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

# High d-dimensional expectile (intermediate level) estimation
expectHat <- predMultiExpectiles(data, tau, tau1, var=TRUE)

expectHat$ExpctHat
expectHat$VarCovEHat
# run the following command to see the graphical representation
## Not run: 
 expectHat <- predMultiExpectiles(data, tau, tau1, var=TRUE, plot=TRUE)

## End(Not run)

Predictive quantile based on the generalized Pareto model

Description

Bayesian Generalize Pareto-based predictive quantile for continuous and discrete predictive distribution conditioned on intermediate and extreme levels.

Usage

predQuant(
  qlev,
  postsamp,
  threshold,
  lb,
  ub,
  type = c("continuous", "discrete"),
  extrapolation = FALSE,
  p,
  k,
  n
)

Arguments

qlev

double, quantile level

postsamp

a m by 2 matrix with columns containing the posterior samples of scale and shape parameters of the generalized Pareto distribution, respectively

threshold

threshold for the generalized Pareto model, corresponding to the n-kth order statistic of the sample

lb

double, the lower bound of the admissible region for the quantile value

ub

double, the upper bound of the admissible region for the quantile value

type

data type, either "continuous" or "discrete" for count data.

extrapolation

logical; if TRUE, extrapolate using the threshold stability property

p

scalar tail probability for the extrapolation. Must be smaller than k/n (only used if extrapolation=TRUE)

k

integer, number of exceedances for the generalized Pareto (only used if extrapolation=TRUE)

n

integer, number of observations in the full sample. Must be greater than k (only used if extrapolation=TRUE)

Value

a double indicating the value of the quantile

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,3,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold)
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
predDens_int <- predDens(
  yg,
  proc$post_sample,proc$t,
  "continuous",
  extrapolation=FALSE)
predQuant_int <- predQuant(
  0.5,
  proc$post_sample,
  proc$t,
  proc$t + 0.01,
  50,
  "continuous",
  extrapolation = FALSE)
predDens_ext <- predDens(
  yg,
  proc$post_sample,
  proc$t,
  "continuous",
  extrapolation = TRUE,
  p = 0.001,
  k = k,
  n = n)
predQuant_ext <- predQuant(
  0.5,
  proc$post_sample,
  proc$t,
  proc$t + 0.01,
  100,
  "continuous",
  extrapolation = TRUE,
  p = 0.005,
  k = k,
  n = n)
  
## End(Not run)

Predictive quantile of peaks-over-threshold models

Description

Given an estimated predictive density evaluated at a grid of points, return the smallest value of the quantile of the predictive distribution function below which a specific probability level corresponds. Namely, Q(p) = \inf\{ x \in \mathbb{R}: p \leq F(x)\}, where F(x) is the predictive distribution function of a peak-over-threshold object. WARNING: this function will not be exported in a future version of the package.

Usage

quantF(x, y, p)

Arguments

x

vector of grid of points at which the predictive density is evaluated

y

vector containing estimates of the predictive density, e.g., the posterior predictive density

p

double indicating the probability level corresponding to the quantile

Value

double containing the value of the quantile

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,1:n,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp, threshold, control=list(maxit = 500))
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# conditional predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
# estimation of scedasis function
# setting
M <- 1e3
C <- 5
alpha <- 0.05
bw <- .5
nsim <- 5000
burn <- 1000
# create covariate
# in sample obs
n_in = n
# number of years ahead
nY = 1
n_out = 365 * nY
# total obs
n_tot = n_in + n_out
# total covariate (in+out sample period)
x <- seq(0, 1, length = n_tot)
# in sample grid dimension for covariate
ng_in <- 150
xg <- seq(0, x[n_in], length = ng_in)
# in+out of sample grid
xg <- c(xg, seq(x[n_in + 1], x[(n_tot)], length = ng_in))
# in+out sample grid dimension
nxg <- length(xg)
xg <- array(xg, c(nxg, 1))
# in sample observations
samp_in <- samp[1:n_in]
ssamp_in <- sort(samp_in, decreasing = TRUE, index = TRUE)
x_in <- x[1:n_in] # in sample covariate
xs <- x_in[ssamp_in$ix[1:k]] # in sample concomitant covariate
# estimate scedasis function over the in and out of sample period
res_stat <- apply(
  xg,
  1,
  cpost_stat,
  N = nsim - burn,
  x = x_in,
  xs = xs,
  bw = bw,
  k = k,
  C = C
)
# conditional predictive posterior density
yg <- seq(500, 5000, by = 100)
nyg = length(yg)
# intermediate threshold
predDens_intx <- predDensx(
  x = yg,
  postsamp = proc$post_sample,
  scedasis = res_stat,
  threshold = proc$t,
  "continuous",
  extrapolation = FALSE)
# extreme threshold
predDens_extx <- predDensx(
  x = yg,
  postsamp = proc$post_sample,
  scedasis = res_stat,
  threshold = proc$t,
  "continuous",
  extrapolation = TRUE,
  p = 0.001,
  k = k,
  n = n)
  # predictive conditional quantiles
predQuant_intxL <- predQuant_intxU <- predQuant_extxL <- predQuant_extxU <- numeric()
for (i in 1:nxg){
  predQuant_intxU[i] <- apply(
    array(predDens_intx$preddens[,i], c(1, nyg)),
    1,
    quantF,
    x = yg,
    p = c(0.975)
  )
  predQuant_intxL[i] <- apply(
    array(predDens_intx$preddens[,i], c(1, nyg)),
    1,
    quantF,
    x = yg,
    p = c(0.025)
  )
  predQuant_extxU[i] <- apply(
    array(predDens_extx$preddens[,i], c(1, nyg)),
    1,
    quantF,
    x = yg,
    p = c(0.975)
  )
  predQuant_extxL[i] <- apply(
    array(predDens_extx$preddens[,i], c(1, nyg)),
    1,
    quantF,
    x = yg,
    p = c(0.025)
  )
}

## End(Not run)

Simulation of Two-Dimensional Temporally Dependent Observations

Description

Simulates samples from parametric families of bivariate time series models.

Usage

rbtimeseries(ndata, dist="studentT", type="AR", copula="Gumbel", par, burnin=1e+03)

Arguments

ndata

A positive interger specifying the number of observations to simulate.

dist

A string specifying the parametric family of the innovations distribution. By default dist="studentT" specifies a Student-t family of distributions. See Details.

type

A string specifying the type of time series. By default type="AR" specifies a linear Auto-Regressive time series. See Details.

copula

A string specifying the type copula to be used. By default copula="Gumbel" specifies the Gumbel copula. See Details.

par

A list of p parameters to be specified for the bivariate time series parametric family. See Details.

burnin

A positive interger specifying the number of initial observations to discard from the simulated sample.

Details

For a time series class (type), with a parametric family (dist) for the innovations, a sample of size ndata is simulated. See for example Brockwell and Davis (2016).

Value

A vector of (2 \times n) observations simulated from a specified bivariate time series model.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Brockwell, Peter J., and Richard A. Davis. (2016). Introduction to time series and forecasting. Springer.

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

See Also

rtimeseries, expectiles

Examples

# Data simulation from a 2-dimensional AR(1) with bivariate Student-t distributed
# innovations, with one marginal distribution whose lower and upper tail indices
# that are different

tsDist <- "AStudentT"
tsType <- "AR"
tsCopula <- "studentT"

# parameter setting
corr <- 0.8
dep <- 0.8
df <- 3
par <- list(corr=corr, dep=dep, df=df)

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rbtimeseries(ndata, tsDist, tsType, tsCopula, par)

# Extreme expectile estimation
plot(data, pch=21)
plot(data[,1], type="l")
plot(data[,2], type="l")

Simulation of d-Dimensional Temporally Independent Observations

Description

Simulates samples of independent d-dimensional observations from parametric families of joint distributions with a given copula and equal marginal distributions.

Usage

rmdata (ndata, dist="studentT", copula="studentT", par)

Arguments

ndata

A positive interger specifying the number of observations to simulate.

dist

A string specifying the parametric family of equal marginal distributions. By default dist="studentT" specifies a Student-t family of distributions. See Details.

copula

A string specifying the type copula to be used. By default copula="studentT" specifies the Student-t copula. See Details.

par

A list of p parameters to be specified for the multivariate parametric family of distributions. See Details.

Details

For a joint multivariate distribution with a given parametric copula class (copula) and a given parametric family of equal marginal distributions (dist), a sample of size ndata is simulated.

Value

A matrix of (n \times d) observations simulated from a specified multivariate parametric joint distribution.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Joe, H. (2014). Dependence Modeling with Copulas. Chapman & Hall/CRC Press, Boca Raton, USA.

Simone A. Padoan and Gilles Stupfler (2022). Joint inference on extreme expectiles for multivariate heavy-tailed distributions, Bernoulli 28(2), 1021-1048.

See Also

rtimeseries, rbtimeseries

Examples

library(plot3D)
library(copula)
library(evd)

# Data simulation from a 3-dimensional random vector a with multivariate distribution
# given by a Gumbel copula and three equal Frechet marginal distributions

# distributional setting
copula <- "Gumbel"
dist <- "Frechet"

# parameter setting
dep <- 3
dim <- 3
scale <- rep(1, dim)
shape <- rep(3, dim)
par <- list(dep=dep, scale=scale, shape=shape, dim=dim)

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Frechet
# marginal distributions and a Gumbel copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])


# Data simulation from a 3-dimensional random vector a with multivariate distribution
# given by a Gaussian copula and three equal Student-t marginal distributions

# distributional setting
dist <- "studentT"
copula <- "Gaussian"

# parameter setting
rho <- c(0.9, 0.8, 0.7)
sigma <- c(1, 1, 1)
Sigma <- sigma^2 * diag(dim)
Sigma[lower.tri(Sigma)] <- rho
Sigma <- t(Sigma)
Sigma[lower.tri(Sigma)] <- rho
df <- 3
par <- list(sigma=Sigma, df=df)

# sample size
ndata <- 1000

# Simulates a sample from a multivariate distribution with equal Student-t
# marginal distributions and a Gaussian copula
data <- rmdata(ndata, dist, copula, par)
scatter3D(data[,1], data[,2], data[,3])

Simulation of One-Dimensional Temporally Dependent Observations

Description

Simulates samples from parametric families of time series models.

Usage

rtimeseries(ndata, dist="studentT", type="AR", par, burnin=1e+03)

Arguments

ndata

A positive interger specifying the number of observations to simulate.

dist

A string specifying the parametric family of the innovations distribution. By default dist="studentT" specifies a Student-t family of distributions. See Details.

type

A string specifying the type of time series. By default type="AR" specifies a linear Auto-Regressive time series. See Details.

par

A vector of (1 \times p) parameters to be specified for the univariate time series parametric family. See Details.

burnin

A positive interger specifying the number of initial observations to discard from the simulated sample.

Details

For a time series class (type) with a parametric family (dist) for the innovations, a sample of size ndata is simulated. See for example Brockwell and Davis (2016).

Value

A vector of (1 \times n) observations simulated from a specified time series model.

Author(s)

Simone Padoan, simone.padoan@unibocconi.it, https://faculty.unibocconi.it/simonepadoan/; Gilles Stupfler, gilles.stupfler@univ-angers.fr, https://math.univ-angers.fr/~stupfler/

References

Brockwell, Peter J., and Richard A. Davis. (2016). Introduction to time series and forecasting. Springer.

Anthony C. Davison, Simone A. Padoan and Gilles Stupfler (2023). Tail Risk Inference via Expectiles in Heavy-Tailed Time Series, Journal of Business & Economic Statistics, 41(3) 876-889.

See Also

expectiles

Examples

# Data simulation from a 1-dimensional AR(1) with univariate Student-t
# distributed innovations

tsDist <- "studentT"
tsType <- "AR"

# parameter setting
corr <- 0.8
df <- 3
par <- c(corr, df)

# sample size
ndata <- 2500

# Simulates a sample from an AR(1) model with Student-t innovations
data <- rtimeseries(ndata, tsDist, tsType, par)

# Graphic representation
plot(data, type="l")
acf(data)


Test on the effect of concomitant covariate on the extremes of the response variable

Description

Given observed data, perform a Kolmogorov-Smirnov type test comparing the cumulative distribution function of the concomitant covariate, defined as X \mid Y > t, with t being the threshold, against the cumulative distribution function of the random vector of covariate.

Usage

scedastic.test(data, k, M = 1000L, xg, ng, bayes = TRUE, C = 5L, alpha = 0.05)

Arguments

data

design matrix of dimension n by 2 containing the complete data for the dependent variable (first column) and covariate (second column) in [0,1]

k

integer, number of exceedances for the generalized Pareto

M

integer, number of samples to draw from the posterior distrinution of the law of the concomitant covariate. Default: 1000

xg

vector of covariate grid of dimension ng by 1 containing a sequence between zero and the last value of the corresponding covariate

ng

length of covariate grid

bayes

logical indicating the bootstrap method. If FALSE, a frequentist bootstrap on the empirical cumulative distribution function of the concomitant covariate is performed. Default to TRUE

C

integer, hypermparameter entering the posterior distributyion of the law of the concomitant covariate. Default: 5

alpha

double, significance level for the critical value of the test, computed as the (1-alpha) level empirical quantile of the sample of distances between the empirical cumulative distribution function of the concomitant and complete covariate. Default: 0.05

Value

a list with components

References

Dombry, C., S. Padoan and S. Rizzelli (2025). Asymptotic theory for Bayesian inference and prediction: from the ordinary to a conditional Peaks-Over-Threshold method, arXiv:2310.06720v2.

Examples

## Not run: 
# generate data
set.seed(1234)
n <- 500
samp <- evd::rfrechet(n,0,1:n,4)
# set effective sample size and threshold
k <- 50
threshold <- sort(samp,decreasing = TRUE)[k+1]
# preliminary mle estimates of scale and shape parameters
mlest <- evd::fpot(samp,
 threshold,
 control=list(maxit = 500))
# empirical bayes procedure
proc <- estPOT(
  samp,
  k = k,
  pn = c(0.01, 0.005),
  type = "continuous",
  method = "bayesian",
  prior = "empirical",
  start = as.list(mlest$estimate),
  sig0 = 0.1)
# conditional predictive density estimation
yg <- seq(0, 50, by = 2)
nyg <- length(yg)
# estimation of scedasis function
# setting
M <- 1e3
C <- 5
alpha <- 0.05
bw <- .5
nsim <- 5000
burn <- 1000
# create covariate
# in sample obs
n_in = n
# number of years ahead
nY = 1
n_out = 365 * nY
# total obs
n_tot = n_in + n_out
# total covariate (in+out sample period)
x <- seq(0, 1, length = n_tot)
# in sample grid dimension for covariate
ng_in <- 150
xg <- seq(0, x[n_in], length = ng_in)
# in+out of sample grid
xg <- c(xg,
 seq(x[n_in + 1],
     x[(n_tot)],
     length = ng_in))
# in+out sample grid dimension
nxg <- length(xg)
xg <- array(xg, c(nxg, 1))
# in sample observations
samp_in <- samp[1:n_in]
ssamp_in <- sort(samp_in, decreasing = TRUE, index = TRUE)
x_in <- x[1:n_in] # in sample covariate
xs <- x_in[ssamp_in$ix[1:k]] # in sample concomitant covariate
# test on covariate effect
test <- scedastic.test(
  cbind(samp, x[1:n]),
  k,
  M,
  array(xg[1:ng_in], c(ng_in, 1)),
  ng_in,
  TRUE,
  C,
  0.05
)

## End(Not run)

Test on the effect of concomitant covariate on the extremes of the response variable

Description

Given observed data, perform a Kolmogorov-Smirnov type test comparing the cumulative distribution function of the concomitant covariate, defined as X \mid Y > t, with t being the threshold, against the cumulative distribution function of the random vector of covariate.

Usage

schedastic.test(data, k, M = 1000L, xg, ng, bayes = TRUE, C = 5L, alpha = 0.05)

Arguments

data

design matrix of dimension n by 2 containing the complete data for the dependent variable (first column) and covariate (second column) in [0,1]

k

integer, number of exceedances for the generalized Pareto

M

integer, number of samples to draw from the posterior distrinution of the law of the concomitant covariate. Default: 1000

xg

vector of covariate grid of dimension ng by 1 containing a sequence between zero and the last value of the corresponding covariate

ng

length of covariate grid

bayes

logical indicating the bootstrap method. If FALSE, a frequentist bootstrap on the empirical cumulative distribution function of the concomitant covariate is performed. Default to TRUE

C

integer, hypermparameter entering the posterior distributyion of the law of the concomitant covariate. Default: 5

alpha

double, significance level for the critical value of the test, computed as the (1-alpha) level empirical quantile of the sample of distances between the empirical cumulative distribution function of the concomitant and complete covariate. Default: 0.05

Value

a list with components


Negative log-returns of S&P 500.

Description

Series of negative log-returns of the U.S. stock market index Standard and Poor 500.

Format

A 8784*2 data frame.

Details

From the series of n = 8785 closing prices S_{t}, t=1,2,..., for the Standard and Poor 500 stock market index, recorded from January 29, 1985 to December 12, 2019, the series of negative log-returns.

X_{t+1} = - \log(S_{t+1}/S_t), \quad 1\leq t\leq n-1

is available. Hence the dataset (negative log-returns) contains 8784 observations.


Test on tail homogeneity

Description

Given observed samples and effective sample size, return the results for a likelihood ratio-type test on tail homogeneity.

Usage

testTailHomo(y, k, alpha = 0.05)

Arguments

y

list, containing the samples on which the test is to be performed

k

integer, number of exceedances for the generalized Pareto

alpha

double indicating the confidence level for the test. Default: 0.05

Value

list of 7 containing

References

Daouia, A., S.A. Padoan and G. Stupfler (2024). Optimal weighted pooling for inference about the tail index and extreme quantiles, Bernoulli, 30(2), pp. 1287–1312.

Examples

## Not run: 
# generate two samples of data
set.seed(1234)
y1 <- evd::rgpd(500, 0, 1, 0.2)
y2 <- evd::rgpd(700, 0, 2, 0.7)
y <- list(y1 = y1, y2 = y2)
# set effective sample size
k <- 50
# perform test
test <- testTailHomo(y,k)

## End(Not run)