| cvar-package | R Documentation |
Compute expected shortfall (ES) and Value at Risk (VaR) from a
quantile function, distribution function, random number generator,
probability density function, or data. ES is also known as Conditional
Value at Risk (CVaR). Virtually any continuous distribution can be
specified. VaR() and ES() are vectorised over the
arguments. Some support for GARCH models is provided, as well.
The name, cvar, of this package comes from Conditional Value at Risk (CVaR), which is an alternative term for expected shortfall.
There is a huge number of functions for computations with distributions in core R and in contributed packages. Pdf's, cdf's, quantile functions and random number generators are covered comprehensively. The coverage of expected shortfall is more patchy but a large collection of distributions, including functions for expected shortfall, is provided by \insertCiteVaRES2013;textualcvar. \insertCitePerformanceAnalytics2018;textualcvar and \insertCiteactuarJSS2008;textualcvar provide packages covering comprehensively various aspects of risk measurement, including some functions for expected shortfall.
Package cvar is a small package with, essentially, two main
functions — ES for computing the expected shortfall and
VaR for Value at Risk. The user specifies the distribution by
supplying one of the functions that define a continuous
distribution—currently this can be a quantile function (qf), cumulative
distribution function (cdf) or probability density function
(pdf). Virtually any continuous distribution can be specified. The
distributions are usually obtained by fitting distributions or
specialised models to data. Instead of distributions, data for returns or
log-returns can be supplied, as well.
The functions VaR and ES are vectorised over the parameters
of the distributions, making bulk computations more convenient, for
example for forecasting or model evaluation.
We chose to use the standard names ES and VaR,
despite the possibility for name clashes with same named
functions in other packages, rather than invent possibly
difficult to remember alternatives. Just call the functions as
cvar::ES and cvar::VaR if necessary.
Locations-scale transformations can be specified separately
from the other distribution parameters. This is useful when
such parameters are not provided directly by the distribution
at hand. The use of these parameters often leads to more
efficient computations and better numerical accuracy even if
the distribution has its own parameters for this purpose. Some
of the examples for VaR and ES illustrate this
for the Gaussian distribution.
Since VaR is a quantile, functions computing it for a given
distribution are convenience functions. VaR exported by
cvar could be attractive in certain workflows because of
its vectorised distribution parameters, the location-scale
transformation, and the possibility to compute it from cdf's
when quantile functions are not available.
Some support for GARCH models is provided, as well. It is
currently under development, see predict.garch1c1
for current functionality.
In practice, we may need to compute VaR associated with data. The
distribution comes from fitting a model. In the simplest case, we fit a
distribution to the data, assuming that the sample is i.i.d. For example,
a normal distribution N(\mu, \sigma^2) can be fitted using the
sample mean and sample variance as estimates of the unknown parameters
\mu and \sigma^2, see section ‘Examples’. For other
common distributions there are specialised functions to fit their
parameters and if not, general optimisation routines can be used. More
soffisticated models may be used, even time series models such as GARCH
and mixture autoregressive models.
The functions VaR and ES are generic (S3). Further methods
for them may be defined in other packages.
Georgi N. Boshnakov
ES,
VaR
## see the examples for ES(), VaR(), predict.garch1c1()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.