Quantile expected shortfall (ES) backtest by Acerbi and Szekely
Run an ES Quantile Test
load ESBacktestBySimData rng('default'); % for reproducibility ebts = esbacktestbysim(Returns,VaR,ES,"t",... 'DegreesOfFreedom',10,... 'Location',Mu,... 'Scale',Sigma,... 'PortfolioID',"S&P",... 'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],... 'VaRLevel',VaRLevel);
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
which contains a copy of the given data (the
properties) and all combinations of portfolio ID, VaR ID, and VaR levels
to be tested. For more information on creating an
esbacktestbysim object, see
Specify optional pairs of arguments as
the argument name and
Value is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Before R2021a, use commas to separate each name and value, and enclose
Name in quotes.
TestLevel — Test confidence level
(default) | numeric with values between
Test confidence level, specified as the comma-separated pair
'TestLevel' and a numeric value
TestResults — Results
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
SimTestStatistic — Simulated values of test statistic
Simulated values of the test statistic, returned as a
Quantile Test by Acerbi and Szekely
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
N is the number of periods in the test window
PVaR is the probability of VaR
failure defined as 1-VaR level.
are the sorted sample values (from smallest to largest), and is the largest integer less than or equal to
To compute the quantile test statistic, a sample of size
is created at each time t as follows. First, convert the
portfolio outcomes to
Xt to ranks using the cumulative distribution function
Pt. If the distribution assumptions
are correct, the rank values
are uniformly distributed in the interval (0,1). Then at each time
Invert the ranks U = (
UN) to get
Compute the sample estimator .
Compute the expected value of the sample estimator
VN is a sample of
Nindependent 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
is the regularized incomplete beta function. For more information, see
Significance of the Test
Assuming that the distributional assumptions are correct, the
expected value of the test statistic
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
minus the test confidence level.
For more information on simulating the test statistics and computing the
p-values and critical values, see
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
Ntail observations in the
sample, where . If
0, the sample estimator of the expected shortfall becomes
an empty sum, and the quantile test statistic is undefined.
To account for this, whenever
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.
 Acerbi, C., and B. Szekely. Backtesting Expected Shortfall. MSCI Inc. December, 2014.