Unconditional expected shortfall (ES) backtest by Acerbi-Szekely with critical values for normal distributions
Run an Unconditional ES Backtest
load ESBacktestData ebt = esbacktest(Returns,VaRModel1,ESModel1,'VaRLevel',VaRLevel)
ebt = esbacktest with properties: PortfolioData: [1966x1 double] VaRData: [1966x1 double] ESData: [1966x1 double] PortfolioID: "Portfolio" VaRID: "VaR" VaRLevel: 0.9750
TestResults report for the unconditional ES backtest that assumes the returns distribution is standard normal.
TestResults = unconditionalNormal(ebt,'TestLevel',0.99)
TestResults=1×9 table PortfolioID VaRID VaRLevel UnconditionalNormal PValue TestStatistic CriticalValue Observations TestLevel ___________ _____ ________ ___________________ _________ _____________ _____________ ____________ _________ "Portfolio" "VaR" 0.975 reject 0.0054099 -0.38265 -0.34639 1966 0.99
ebt) object, 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
esbacktest 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 value 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.
'UnconditionalNormal'— Categorical array with categories 'accept' and 'reject' that indicate the result of the unconditional normal test.
'PValue'— P-value of the unconditional normal test, interpolated from the precomputed critical values under the assumption that the returns follow a standard normal distribution.
0.0001are truncated to the minimum (
0.0001) and p-values >
0.5are displayed as a maximum (
'TestStatistic'— Unconditional normal test statistic.
'CriticalValue'— Precomputed critical value for the corresponding test level and number of observations. Critical values are obtained under the assumption that the returns follow a standard normal distribution.
'Observations'— Number of observations.
'TestLevel'— Test confidence level.
For the test results, the terms
'reject' are used for convenience.
Technically, a test does not accept a model; rather, a test
fails to reject it.
Unconditional Test by Acerbi and Szekely
The unconditional test (also known as the second Acerbi-Szekely test) scales the losses by the corresponding ES value.
The unconditional test statistic is based on the unconditional relationship
Xt is the portfolio outcome, that
is, the portfolio return or portfolio profit and loss for period
PVaR is the probability of VaR
failure defined as 1-VaR level.
ESt is the estimated expected
shortfall for period t.
It is the VaR failure indicator on
period t with a value of 1 if
Xt < -VaR, and 0
The unconditional test statistic is defined as
The critical values for the unconditional test statistic, which form the basis
for table-based tests, are stable across a range of distributions. The
esbacktest class runs the
unconditional test against precomputed critical values under two distributional
assumptions: normal distribution (thin tails) using
unconditionalNormal and t distribution
with 3 degrees of freedom (heavy tails) using
 Acerbi, C., and B. Szekely. Backtesting Expected Shortfall. MSCI Inc. December, 2014.