Main Content

unconditionalDE

Unconditional Du-Escanciano (DE) expected shortfall (ES) backtest

Description

TestResults = unconditionalDE(ebtde) runs the unconditional Du-Escanciano (DE) expected shortfall (ES) backtest [1]. The unconditional test supports critical values by large-scale approximation and by finite-sample simulation.

example

[TestResults,SimTestStatistic] = unconditionalDE(___,Name,Value) specifies options using one or more name-value pair arguments in addition to the input argument in the previous syntax.

example

Examples

collapse all

Create an esbacktestbyde object for a t model with 10 degrees of freedom, and then run an unconditionalDE test.

load ESBacktestDistributionData.mat
    rng('default'); % For reproducibility
    ebtde = esbacktestbyde(Returns,"t",...
       'DegreesOfFreedom',T10DoF,...
       'Location',T10Location,...
       'Scale',T10Scale,...
       'PortfolioID',"S&P",...
       'VaRID',["t(10) 95%","t(10) 97.5%","t(10) 99%"],...
       'VaRLevel',VaRLevel);
    unconditionalDE(ebtde)
ans=3×14 table
    PortfolioID        VaRID        VaRLevel    UnconditionalDE     PValue     TestStatistic     LowerCI      UpperCI     Observations    CriticalValueMethod    MeanLS      StdLS      Scenarios    TestLevel
    ___________    _____________    ________    _______________    ________    _____________    _________    _________    ____________    ___________________    ______    _________    _________    _________

       "S&P"       "t(10) 95%"        0.95          accept            0.181       0.028821       0.019401     0.030599        1966          "large-sample"        0.025    0.0028565       NaN         0.95   
       "S&P"       "t(10) 97.5%"     0.975          accept         0.086278       0.015998      0.0085028     0.016497        1966          "large-sample"       0.0125    0.0020394       NaN         0.95   
       "S&P"       "t(10) 99%"        0.99          reject         0.016871      0.0080997      0.0024575    0.0075425        1966          "large-sample"        0.005    0.0012972       NaN         0.95   

Input Arguments

collapse all

esbacktestbyde (ebtde) object, which contains a copy of the 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 esbacktestbyde object, see esbacktestbyde.

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is 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.

Example: TestResults = unconditionalDE(ebtde,'CriticalValueMethod','large-sample','TestLevel',0.99)

Method to compute critical values, confidence intervals, and p-values, specified as the comma-separated pair consisting of 'CriticalValueMethod' and a character vector or string with a value of 'large-sample' or 'simulation'.

Data Types: char | string

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:

  • 'PortfolioID' — Portfolio ID for the given data

  • 'VaRID' — VaR ID for each of the VaR levels

  • 'VaRLevel' — VaR level

  • 'UnconditionalDE'— Categorical array with the categories 'accept' and 'reject', which indicate the result of the unconditional DE test

  • 'PValue'P-value of the unconditional DE test

  • 'TestStatistic'— Unconditional DE test statistic

  • 'LowerCI'— Confidence-interval lower limit for the unconditional DE test statistic

  • 'UpperCI'— Confidence-interval upper limit for the unconditional DE test statistic

  • 'Observations'— Number of observations

  • 'CriticalValueMethod'— Method for computing confidence intervals and p-values

  • 'MeanLS'— Mean of the large-sample normal distribution; if CriticalValueMethod is 'simulation', 'MeanLS' is reported as NaN

  • 'StdLS'— Standard deviation of the large-sample normal distribution; if CriticalValueMethod is 'simulation', 'StdLS' is reported as NaN

  • 'Scenarios'— Number of scenarios simulated to get the p-values; if CriticalValueMethod is 'large-sample', the number of scenarios is reported as NaN

  • 'TestLevel'— Test confidence level

Note

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.

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

More About

collapse all

References

[1] Du, Z., and J. C. Escanciano. "Backtesting Expected Shortfall: Accounting for Tail Risk." Management Science. Vol. 63, Issue 4, April 2017.

[2] Basel Committee on Banking Supervision. "Minimum Capital Requirements for Market Risk". January 2016 (https://www.bis.org/bcbs/publ/d352.pdf).

Version History

Introduced in R2019b