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.


Unconditional expected shortfall (ES) backtest with critical values for normal distributions


TestResults = unconditionalNormal(ebt)
TestResults = unconditionalNormal(ebt,Name,Value)



TestResults = unconditionalNormal(ebt) runs the unconditional expected shortfall (ES) backtest of Acerbi-Szekely (2014) using precomputed critical values and assuming that the returns distribution is standard normal.


TestResults = unconditionalNormal(ebt,Name,Value) adds an optional name-value pair argument for TestLevel.


collapse all

Create an esbacktest object.

load ESBacktestData
ebt = esbacktest(Returns,VaRModel1,ESModel1,'VaRLevel',VaRLevel)
ebt = 

  esbacktest with properties:

    PortfolioData: [1966×1 double]
          VaRData: [1966×1 double]
           ESData: [1966×1 double]
      PortfolioID: "Portfolio"
            VaRID: "VaR"
         VaRLevel: 0.9750

Generate the 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     

Input Arguments

collapse all

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

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 = unconditionalNormal(ebt,'TestLevel',0.99)

collapse all

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

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.

  • '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.


    p-values < 0.0001 are truncated to the minimum (0.0001) and p-values > 0.5 are displayed as a maximum (0.5).

  • '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 accept and reject are used for convenience. Technically, a test does not accept a model; rather, a test fails to reject it.

More About

collapse all

Unconditional Test

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 t.

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 otherwise.

The unconditonal test statistic is defined as

The critical values for the unconditional test statistic, which form the basis for table-based tests, are very 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, see unconditionalNormal), and t distribution with 3 degrees of freedom (heavy tails, see unconditionalT).


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

Introduced in R2017b

Was this topic helpful?