Main Content

minBiasAbsolute

Minimally biased absolute test for Expected Shortfall (ES) backtest by Acerbi-Szekely

Since R2020b

Description

TestResults = minBiasAbsolute(ebts) runs the absolute version of the minimally biased Expected Shortfall (ES) backtest by Acerbi-Szekely (2017) using the esbacktestbysim object.

example

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

example

Examples

collapse all

Create an esbacktestbysim object.

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 TestResults and SimTestStatistic reports for the minBiasAbsolute ES backtest.

[TestResults,SimTestStatistic] = minBiasAbsolute(ebts)
TestResults=3×10 table
    PortfolioID        VaRID        VaRLevel    MinBiasAbsolute    PValue    TestStatistic    CriticalValue    Observations    Scenarios    TestLevel
    ___________    _____________    ________    _______________    ______    _____________    _____________    ____________    _________    _________

       "S&P"       "t(10) 95%"        0.95          accept         0.062      -0.0014247       -0.0015578          1966          1000         0.95   
       "S&P"       "t(10) 97.5%"     0.975          reject         0.029      -0.0026674       -0.0023251          1966          1000         0.95   
       "S&P"       "t(10) 99%"        0.99          reject         0.005      -0.0060982       -0.0039004          1966          1000         0.95   

SimTestStatistic = 3×1000

    0.0023    0.0008   -0.0018    0.0004    0.0009    0.0003   -0.0003    0.0008   -0.0001    0.0000   -0.0003   -0.0001    0.0001    0.0006    0.0001    0.0012    0.0009    0.0024    0.0013   -0.0007   -0.0007    0.0002    0.0004   -0.0006   -0.0008    0.0004    0.0001    0.0013    0.0001   -0.0008   -0.0006    0.0008   -0.0007   -0.0014   -0.0009   -0.0004    0.0000    0.0011    0.0014   -0.0004    0.0004   -0.0003   -0.0032   -0.0008    0.0011    0.0008   -0.0013   -0.0018    0.0010    0.0003
    0.0036    0.0005   -0.0032    0.0009    0.0017    0.0002   -0.0003    0.0011   -0.0001   -0.0001    0.0000    0.0001    0.0006    0.0007    0.0000    0.0015    0.0013    0.0030    0.0015   -0.0008   -0.0008    0.0003    0.0005   -0.0007   -0.0010   -0.0002   -0.0002    0.0024    0.0002   -0.0006   -0.0010    0.0012   -0.0002   -0.0017   -0.0012   -0.0005   -0.0004    0.0012    0.0018   -0.0008    0.0004    0.0001   -0.0039   -0.0013    0.0011    0.0013   -0.0020   -0.0031    0.0010    0.0005
    0.0052   -0.0008   -0.0048    0.0014    0.0027    0.0007    0.0005    0.0007    0.0001   -0.0010    0.0024    0.0009    0.0016    0.0012    0.0004    0.0020    0.0022    0.0050    0.0027    0.0007   -0.0012   -0.0001    0.0014   -0.0019   -0.0020   -0.0014   -0.0009    0.0038    0.0003    0.0003   -0.0015    0.0016    0.0009   -0.0015   -0.0009    0.0008   -0.0010    0.0022    0.0016   -0.0023    0.0013    0.0016   -0.0040   -0.0033    0.0014    0.0020   -0.0040   -0.0055    0.0008    0.0008

Input Arguments

collapse all

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

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 = minBiasAbsolute(ebts)

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 IDs, VaR IDs, 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

  • 'MinBiasAbsolute' — Categorical array with categories'accept' and 'reject' that indicate the result of the minBiasAbsolute test

  • 'PValue'p-value for the minBiasAbsolute test

  • 'TestStatistic'minBiasAbsolute test statistic

  • 'CriticalValue'— Critical value for minBiasAbsolute test

  • 'Observations'— Number of observations

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

  • '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 statistic, returned as a NumVaRs-by-NumScenarios numeric array.

More About

collapse all

References

[1] Acerbi, Carlo, and Balazs Szekely. "General Properties of Backtestable Statistics." SSRN Electronic Journal. (January, 2017).

[2] Acerbi, Carlo, and Balazs Szekely. "The Minimally Biased Backtest for ES." Risk. (September, 2019).

[3] Acerbi, C. and D. Tasche. "On the Coherence of Expected Shortfall." Journal of Banking and Finance. Vol. 26, 2002, pp. 1487-1503.

[4] Rockafellar, R. T. and S. Uryasev. "Conditional Value-at-Risk for General Loss Distributions." Journal of Banking and Finance. Vol. 26, 2002, pp. 1443-1471.

Version History

Introduced in R2020b