Description Usage Arguments Details Value Author(s) References Examples

View source: R/rugarch-tests.R

Implements the Expected Shortfall Test of McNeil and Frey.

1 2 |

`alpha` |
The quantile (coverage) used for the VaR. |

`actual` |
A numeric vector of the actual (realized) values. |

`ES` |
The numeric vector of the Expected Shortfall (ES). |

`VaR` |
The numeric vector of VaR. |

`conf.level` |
The confidence level at which the Null Hypothesis is evaluated. |

`boot` |
Whether to bootstrap the test. |

`n.boot` |
Number of bootstrap replications to use. |

The Null hypothesis is that the excess conditional shortfall (excess of the actual series when VaR is violated), is i.i.d. and has zero mean. The test is a one sided t-test against the alternative that the excess shortfall has mean greater than zero and thus that the conditional shortfall is systematically underestimated. Using the bootstrap to obtain the p-value should alleviate any bias with respect to assumptions about the underlying distribution of the excess shortfall.

A list with the following items:

`expected.exceed` |
The expected number of exceedances (length actual x coverage). |

`actual.exceed` |
The actual number of exceedances. |

`H1` |
The Alternative Hypothesis of the one sided test (see details). |

`boot.p.value` |
The bootstrapped p-value (if used). |

`p.value` |
The p-value. |

`Decision` |
The one-sided test Decision on H0 given the confidence level and p-value (not the bootstrapped). |

Alexios Ghalanos

McNeil, A.J. and Frey, R. and Embrechts, P. (2000), Estimation of tail-related
risk measures for heteroscedastic financial time series: an extreme value
approach, *Journal of Empirical Finance*,**7**, 271–300.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ```
## Not run:
data(dji30ret)
spec = ugarchspec(mean.model = list(armaOrder = c(1,1), include.mean = TRUE),
variance.model = list(model = "gjrGARCH"), distribution.model = "sstd")
fit = ugarchfit(spec, data = dji30ret[1:1000, 1, drop = FALSE])
spec2 = spec
setfixed(spec2)<-as.list(coef(fit))
filt = ugarchfilter(spec2, dji30ret[1001:2500, 1, drop = FALSE], n.old = 1000)
actual = dji30ret[1001:2500,1]
# location+scale invariance allows to use [mu + sigma*q(p,0,1,skew,shape)]
VaR = fitted(filt) + sigma(filt)*qdist("sstd", p=0.05, mu = 0, sigma = 1,
skew = coef(fit)["skew"], shape=coef(fit)["shape"])
# calculate ES
f = function(x) qdist("sstd", p=x, mu = 0, sigma = 1,
skew = coef(fit)["skew"], shape=coef(fit)["shape"])
ES = fitted(filt) + sigma(filt)*integrate(f, 0, 0.05)$value/0.05
print(ESTest(0.05, actual, ES, VaR, boot = TRUE))
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.