Main Content

conditionalDE

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

Description

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

example

[TestResults,SimTestStatistic] = conditionalDE(___,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 2 lags, and then run a conditionalDE 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);
    conditionalDE(ebtde,'NumLags',2)
ans=3×13 table
    PortfolioID        VaRID        VaRLevel    ConditionalDE      PValue      TestStatistic    CriticalValue    AutoCorrelation    Observations    CriticalValueMethod    NumLags    Scenarios    TestLevel
    ___________    _____________    ________    _____________    __________    _____________    _____________    _______________    ____________    ___________________    _______    _________    _________

       "S&P"       "t(10) 95%"        0.95         reject        3.2121e-09       39.113           5.9915            0.11009            1966          "large-sample"          2          NaN         0.95   
       "S&P"       "t(10) 97.5%"     0.975         reject        1.6979e-07       31.177           5.9915           0.087348            1966          "large-sample"          2          NaN         0.95   
       "S&P"       "t(10) 99%"        0.99         reject        9.1526e-05       18.598           5.9915           0.076814            1966          "large-sample"          2          NaN         0.95   

Input Arguments

collapse all

esbacktestbyde 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 = conditionalDE(ebtde,'CriticalValueMethod','simulation','NumLags',10,'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

Number of lags in the conditionalDE test, specified as the comma-separated pair consisting of 'NumLags' and a positive integer.

Data Types: double

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

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

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

  • 'TestStatistic'— Conditional DE test statistic

  • 'CriticalValue'— Critical value for the conditional DE test

  • 'AutoCorrelation'— Autocorrelation for the reported number of lags

  • 'Observations'— Number of observations

  • 'CriticalValueMethod'— Method used to compute confidence intervals and p-values

  • 'NumLags'— Number of lags

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

  • 'TestLevel'— Test confidence level

Note

If you specify CriticalValueMethod as 'large-sample', the function reports the number of 'Scenarios' as NaN.

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 an 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