Backtesting methods, most importantly traffic light tests, are applied to previously calculated Value-at-Risk and Expected Shortfall series.
trafftest(obj)A list of class ufRisk is returned with the following elements.
selected model for estimation
cumulative probability of observing the number of
breaches or fewer for (1 - a.e)100%-VaR
cumulative probability of observing the number of
breaches or fewer for (1 - a.v)100%-VaR
cumulative probability of observing the number of
breaches or fewer for (1 - a.e)100%-ES
number of exceedances for (1 - a.e)100%-VaR
number of exceedances for (1 - a.v)100%-VaR
number of exceedances for (1 - a.e)100%-ES
sum of breaches for (1 - a.e)100%-ES
weighted absolute deviations - a model selection criterion
coverage level for the (1-a.v)100% VaR
coverage level for (1-a.e)100% VaR
A list returned by the varcast function, that contains
different estimated Value-at-Risk and Expected Shortfall series; any
other list that follows the name conventions of the varcast function
can be used as well.
Sebastian Letmathe (Scientific Employee) (Department of Economics,
Paderborn University),
Dominik Schulz (Scientific Employee) (Department of Economics,
Paderborn University),
The Traffic Light Test for backtesting the Value-at-Risk (VaR) was proposed by the Basel Committee on Banking Supervision (1996). A formal mathematical description was given by Constanzino and Curran (2018). Following Constanzino and Curran (2018), define the Value-at-Risk breach indicator by
$$X_{VaR}^{(i)}(\alpha) = 1_{ \{L_i \geq VaR_i(\alpha)\} },$$
where \(i\) defines the corresponding trading day, \(L_i\) is the loss (denoted as a positive value) on day \(i\) and \(\alpha\) is the confidence level of the VaR (e.g. if \(\alpha = 0.95\), the 95%-VaR is considered). The total number of breaches over all trading days \(i = 1, 2, ..., N\) is then given by
$$X_{VaR}^{N}(\alpha) = \sum_{i=1}^{N} 1_{\{L_i \geq VaR_i(\alpha)\}}.$$
Following a Binomial Distribution, the cumulative probabilities of observing a specific number of breaches or less can be computed. Under the hypothesis that the selected volatility model is true, the cumulative probability of observing \(X_{VaR}^N (\alpha)\) breaches is therefore easily obtainable. The Basel Committee on Banking Supervision (1996) defined three zones. Depending on the zone the calculated cumulative probability can be sorted into, the suitability of the selected model can be assessed. Models with calculated cumulative probabilities < 95% belong to the green zone and are considered appropriate. Furthermore, if the probabilities are greater or equal to 95% but smaller than 99.99%, the corresponding models are categorized into the yellow zone. The red zone is for models with cumulative probabilities greater or equal to 99.99%. If the test results in a yellow zone classification, the respective VaR values require additional monitoring. Moreover, the Basel Committee recommended to consider additional capital requirements of a bank, if its model used is in the yellow zone. Models in the red zone are considered to be heavily flawed.
Based on the same three-zone approach with the same zone boundaries, Constanzino and Curran (2018) proposed a traffic light test for the Expected Shortfall (ES). The total severity of breaches is given by
$$X_{ES}^N(\alpha) = \sum_{i=1}^N(1 - (1 - F(L_i))/(1 - \alpha)) * 1_{\{L_i \geq VaR_i(\alpha)\}},$$
with \(F(L_i)\) being the cumulative distribution of the loss at day \(i\). As stated by Constanzino and Curran (2018), \(X_{ES}^N(\alpha)\) is approximately normally distributed \(\mathcal{N}(\mu_{ES}\), \(N \sigma_{ES}^2)\) for large samples, where \(\mu_{ES} = 0.5(1 - \alpha)N\) and \(\sigma_{ES}^2 = (1 - \alpha)(4 - 3(1 - \alpha)) / 12\), from which cumulative probabilities for the observed breaches \(X_{ES}^N\) can be easily obtained.
For semiparametric models, the backtesting of the VaR is analogous to the described approach. Backtesting the ES, however, requires minor adjustments. Given that the model's underlying innovations follow a standardized t-distribution with degrees of freedom \(\nu\), define by \(r_t\) the demeaned returns and by \(\hat{s}_t\) the estimated total volatility.
$$\hat{\epsilon}_t^* = -r_t / \hat{s}_t \sqrt{\nu / (\nu - 2)}$$
are now suitable to calculate the total severity of breaches under the assumption that \(\epsilon_t^*\) are identically and independently distributed t-distributed random variables.
This function uses an object returned by the varcast function
of the ufRisk package as an input for the
function argument obj. A list with different elements, such as
the cumulative probabilities for the VaR and ES series within obj,
is returned. Instead of the list, only the traffic light backtesting results
are printed to the R console.
NOTE:
More information on VaR and ES can be found in the documentation of the
varcast function of the ufRisk package
varcast.
Basel Committee on Banking Supervision (1996). Supervisory Framework For The Use of Back-Testing in Conjunction With The Internal Models Approach to Market Risk Capital Requirements. Available online: https://www.bis.org/publ/bcbs22.htm (accessed on 23 June 2020).
Constanzino, N., and Curran, M. (2018). A Simple Traffic Light Approach to Backtesting Expected Shortfall. In: Risks 6.1.2.
# Example for Walmart Inc. (WMT)
prices = WMT$price.close
output = varcast(prices)
trafftest(output)
Run the code above in your browser using DataLab