# cvgtest: Unconditional and Conditional Coverage Tests, Independence... In quarks: Simple Methods for Calculating and Backtesting Value at Risk and Expected Shortfall

 cvgtest R Documentation

## Unconditional and Conditional Coverage Tests, Independence Test

### Description

The conditional (Kupiec, 1995), the unconditional coverage test (Christoffersen, 1998) and the independence test (Christoffersen, 1998) of the Value-at-Risk (VaR) are applied.

### Usage

cvgtest(obj = list(loss = NULL, VaR = NULL, p = NULL), conflvl = 0.95)

### Arguments

 obj a list that contains the following elements: lossa numeric vector that contains the values of a loss series ordered from past to present; is set to NULL by default. VaRa numeric vector that contains the estimated values of the VaR for the same time points of the loss series loss; is set to NULL by default. pa numeric vector with one element; defines the probability p stated in the null hypotheses of the coverage tests (see the section Details for more information); is set to NULL by default. conflvl a numeric vector with one element; the significance level at which the null hypotheses are evaluated; is set to 0.95 by default. Please note that a list returned by the rollcast function can be directly passed to cvgtest.

### Details

With this function, the conditional and the unconditional coverage tests introduced by Kupiec (1995) and Christoffersen (1998) can be applied. Given a return series r_t with n observations, divide the series into n-K in-sample and K out-of-sample observations, fit a model to the in-sample data and obtain rolling one-step forecasts of the VaR for the out-of-sample time points.

Define

I_t = 1,

if -r_t > \widehat{VaR}_t (α) or

I_t = 0,

otherwise,

for t = n + 1, n + 2, ..., n + K as the hit sequence, where α is the confidence level for the VaR (often α = 0.95 or α = 0.99). Furthermore, denote p = α and let w be the actual covered proportion of losses in the data.

1. Unconditional coverage test:

H_{0, uc}: p = w

Let K_1 be the number of ones in I_t and analogously K_0 the number of zeros (all conditional on the first observation). Also calculate \hat{w} = K_0 / (K - 1). Obtain

L(I_t, p) = p^{K_0}(1 - p)^{K_1}

and

L(I_t, \hat{w}) = \hat{w}^{K_0}(1 - \hat{w})^{K_1}

and subsequently the test statistic

LR_{uc} = -2 * \ln \{L(I_t, p) / L(I_t, \hat{w})\}.

LR_{uc} now asymptotically follows a chi-square-distribution with one degree of freedom.

2. Conditional coverage test:

The conditional coverage test combines the unconditional coverage test with a test on independence. Denote by w_{ij} the probability of an i on day t-1 being followed by a j on day t, where i and j correspond to the value of I_t on the respective day.

H_{0, cc}: w_{00} = w{10} = p

with i = 0, 1 and j = 0, 1.

Let K_{ij} be the number of observations, where the values on two following days follow the pattern ij. Calculate

L(I_t, \hat{w}_{00}, \hat{w}_{10}) = \hat{w}_{00}^{K_{00}}(1 - \hat{w}_{00})^{K_{01}} * \hat{w}_{10})^{K_{10}}(1 - \hat{w}_{10})^{K_{11}},

where \hat{w}_{00} = K_{00} / K_0 and \hat{w}_{10} = K_{10} / K_1. The test statistic is then given by

LR_{cc} = -2 * \ln \{ L(I_t, p) / L(I_t, \hat{w}_{00}, \hat{w}_{10}) \},

which asymptotically follows a chi-square-distribution with two degrees of freedom.

3. Independence test:

H_{0,ind}: w_{00} = w_{10}

The asymptotically chi-square-distributed test statistic (one degree of freedom) is given by

LR_{ind} = -2 * \ln \{L(I_t, \hat{w}_{00}, \hat{w}_{10}) / L(I_t, \hat{w})\}.

—————————————————————————–

The function needs four inputs: the out-of-sample loss series obj$loss, the corresponding estimated VaR series obj$VaR, the coverage level obj$p, for which the VaR has been calculated and the significance level conflvl, at which the null hypotheses are evaluated. If an object returned by this function is entered into the R console, a detailed overview of the test results is printed. ### Value A list of class quarks with the following four elements: p probability p stated in the null hypotheses of the coverage tests p.uc the p-value of the unconditional coverage test p.cc the p-value of the conditional coverage test p.ind the p-value of the independence test conflvl the significance level at which the null hypotheses are evaluated model selected model for estimation; only available if a list returned by the rollcast function is passed to cvgtest method selected method for estimation; only available if a list returned by the rollcast) function is passed to cvgtest ### References Christoffersen, P. F. (1998). Evaluating interval forecasts. International economic review, pp. 841-862. Kupiec, P. (1995). Techniques for verifying the accuracy of risk measurement models. The J. of Derivatives, 3(2). ### Examples prices <- DAX$price.close
returns <- diff(log(prices))
n <- length(returns)
nout <- 250 # number of obs. for out-of-sample forecasting
nwin <- 500 # window size for rolling forecasts
results <- rollcast(x = returns, p = 0.975, method = 'age', nout = nout,
nwin = nwin)
cvgtest(results)

quarks documentation built on Sept. 1, 2022, 1:06 a.m.