ghyp-risk-performance: Risk and Performance Measures

ghyp-risk-performanceR Documentation

Risk and Performance Measures

Description

Functions to compute the risk measure Expected Shortfall and the performance measure Omega based on univariate generalized hyperbolic distributions.

Usage

ESghyp(alpha, object = ghyp(), distr = c("return", "loss"), ...)

ghyp.omega(L, object = ghyp(), ...)

Arguments

alpha

A vector of confidence levels.

L

A vector of threshold levels.

object

A univarite generalized hyperbolic distribution object inheriting from class ghyp.

distr

Whether the ghyp-object specifies a return or a loss-distribution (see Details).

...

Arguments passed from ESghyp to qghyp and from ghyp.omega integrate.

Details

The parameter distr specifies whether the ghyp-object describes a return or a loss-distribution. In case of a return distribution the expected-shortfall on a confidence level \alpha is defined as \hbox{ES}_\alpha := \hbox{E}(X | X \leq F^{-1}_X(\alpha)) while in case of a loss distribution it is defined on a confidence level \alpha as \hbox{ES}_\alpha := \hbox{E}(X | X > F^{-1}_X(\alpha)).

Omega is defined as the ratio of a European call-option price divided by a put-option price with strike price L (see References): \Omega(L) := \frac{C(L)}{P(L)}.

Value

ESghyp gives the expected shortfall and
ghyp.omega gives the performance measure Omega.

Author(s)

David Luethi

References

Omega as a Performance Measure by Hossein Kazemi, Thomas Schneeweis and Raj Gupta
University of Massachusetts, 2003

See Also

ghyp-class definition, ghyp constructors, univariate fitting routines, fit.ghypuv, portfolio.optimize for portfolio optimization with respect to alternative risk measures, integrate.

Examples

  data(smi.stocks)

  ## Fit a NIG model to Credit Suisse and Swiss Re log-returns
  cs.fit <- fit.NIGuv(smi.stocks[, "CS"], silent = TRUE)
  swiss.re.fit <- fit.NIGuv(smi.stocks[, "Swiss.Re"], silent = TRUE)

  ## Confidence levels for expected shortfalls
  es.levels <- c(0.001, 0.01, 0.05, 0.1)

  cs.es <- ESghyp(es.levels, cs.fit)
  swiss.re.es <- ESghyp(es.levels, swiss.re.fit)

  ## Threshold levels for Omega
  threshold.levels <- c(0, 0.01, 0.02, 0.05)

  cs.omega <- ghyp.omega(threshold.levels, cs.fit)
  swiss.re.omega <- ghyp.omega(threshold.levels, swiss.re.fit)

  par(mfrow = c(2, 1))

  barplot(rbind(CS = cs.es, Swiss.Re = swiss.re.es), beside = TRUE,
          names.arg = paste(100 * es.levels, "percent"), col = c("gray40", "gray80"),
          ylab = "Expected Shortfalls (return distribution)", xlab = "Level")

  legend("bottomright", legend = c("CS", "Swiss.Re"), fill = c("gray40", "gray80"))

  barplot(rbind(CS = cs.omega, Swiss.Re = swiss.re.omega), beside = TRUE,
          names.arg = threshold.levels, col = c("gray40", "gray80"),
          ylab = "Omega", xlab = "Threshold level")
  legend("topright", legend = c("CS", "Swiss.Re"), fill = c("gray40", "gray80"))

  ## => the higher the performance, the higher the risk (as it should be)

ghyp documentation built on Aug. 21, 2023, 5:12 p.m.