This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Quantile expected shortfall (ES) backtest


TestResults = quantile(ebts)
[TestResults,SimTestStatistic] = quantile(ebts,Name,Value)



TestResults = quantile(ebts) runs the quantile ES backtest of Acerbi-Szekely (2014).


[TestResults,SimTestStatistic] = quantile(ebts,Name,Value) adds an optional name-value pair argument for TestLevel.


collapse all

Create an esbacktestbysim object.

load ESBacktestBySimData
rng('default'); % for reproducibility
ebts = esbacktestbysim(Returns,VaR,ES,"t",...
       'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],...

Generate the ES quantile test report.

TestResults = quantile(ebts)
TestResults =

  3×10 table

    PortfolioID        VaRID        VaRLevel    Quantile    PValue    TestStatistic    CriticalValue    Observations    Scenarios    TestLevel
    ___________    _____________    ________    ________    ______    _____________    _____________    ____________    _________    _________

    "S&P"          "t(10) 95%"       0.95       reject      0.002     -0.10602         -0.055798        1966            1000         0.95     
    "S&P"          "t(10) 97.5%"    0.975       reject          0     -0.15697         -0.073513        1966            1000         0.95     
    "S&P"          "t(10) 99%"       0.99       reject          0     -0.26561          -0.10117        1966            1000         0.95     

Input Arguments

collapse all

esbacktestbysim (ebts) object, which contains a copy of the given data (the PortfolioData, VarData, ESData, and Distribution properties) and all combinations of portfolio ID, VaR ID, and VaR levels to be tested. For more information on creating an esbacktestbysim object, see esbacktestbysim.

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.

Example: [TestResults,SimTestStatistic] = quantile(ebts,'TestLevel',0.99)

collapse all

Test confidence level, specified as the comma-separated pair consisting of 'TestLevel' and a numeric value between 0 and 1.

Data Types: double

Output Arguments

collapse all

Results, returned as a table where the rows correspond to all combinations of portfolio ID, VaR ID, and VaR levels to be tested. The columns correspond to the following information:

  • 'PortfolioID' — Portfolio ID for the given data

  • 'VaRID' — VaR ID for each of the VaR data columns provided

  • 'VaRLevel' — VaR level for the corresponding VaR data column

  • 'Quantile'— Categorical array with categories 'accept' and 'reject' indicating the result of the quantile test

  • 'PValue'P-value of the quantile test

  • 'TestStatistic'— Quantile test statistic

  • 'CriticalValue'— Critical value for the quantile test

  • 'Observations'— Number of observations

  • 'Scenarios'— Number of scenarios simulated to get the p-values

  • 'TestLevel'— Test confidence level

Simulated values of the test statistic, returned as a NumVaRs-by-NumScenarios numeric array.

More About

collapse all

Quantile Test

The quantile test (also known as the third Acerbi-Szekely test) uses a sample estimator of the expected shortfall.

The expected shortfall for a sample Y1,…,YN is given by



N is the number of periods in the test window (t = 1,…,N).

PVaR is the probability of VaR failure defined as 1-VaR level.

Y[1],…,Y[N] are the sorted sample values (from smallest to largest), and NpVaR is the largest integer less than or equal to NpVaR.

To compute the quantile test statistic, a sample of size N is created at each time t as follows. First, convert the portfolio outcomes to Xt to ranks U1=P1(X1),...,UN=PN(XN) using the cumulative distribution function Pt. If the distribution assumptions are correct, the rank values U1,…,UN are uniformly distributed in the interval (0,1). Then at each time t:

  • Invert the ranks U = (U1,…,UN) to get N quantiles Pt1(U)=(Pt1(U1),...,Pt1(UN)).

  • Compute the sample estimator ES(Pt1(U)).

  • Compute the expected value of the sample estimator

    where V = (V1,…,VN is a sample of N independent uniform random variables in the interval (0,1). This value can be computed analytically.

Define the quantile test statistic as


The denominator inside the sum can be computed analytically as


where Ix(z,w) is the regularized incomplete beta function. For more information, see betainc.

Significance of the Test

Assuming that the distributional assumptions are correct, the expected value of the test statistic Zquantile is 0.

This is expressed as:


Negative values of the test statistic indicate risk underestimation. The quantile test is a one-sided test that rejects the model when there is evidence that the model underestimates risk. (For technical details on the null and alternative hypotheses, see Acerbi-Szekely, 2014). The quantile test rejects the model when the p-value is less than 1 minus the test confidence level.

For more information on simulating the test statistics and computing thep-values and critical values, see simulate.

Edge Cases

The quantile test statistic is well defined when there are no VaR failures in the data.

However, when the expected number of failures NpVaR is small, an adjustment is required. The sample estimator of the expected shortfall takes the average of the smallest Ntail observations in the sample, where Ntail=NpVaR. If NpVaR < 1, then Ntail = 0, the sample estimator of the expected shortfall becomes an empty sum, and the quantile test statistic is undefined.

To account for this, whenever NpVaR < 1, the value of Ntail is set to 1. Thus, the sample estimator of the expected shortfall has a single term and is equal to the minimum value of the sample. With this adjustment, the quantile test statistic is then well defined and the significance analysis is unchanged.


[1] Acerbi, C., and B. Szekely. Backtesting Expected Shortfall. MSCI Inc. December, 2014.

Introduced in R2017b

Was this topic helpful?