ghyp-distribution {ghyp} | R Documentation |
Density, distribution function, quantile function, expected shortfall and random generation for the univariate and multivariate generalized hyperbolic distribution and its special cases.
dghyp(x, object = ghyp(), logvalue = F) pghyp(q, object = ghyp(), n.sim = 10000, subdivisions = 200, rel.tol = .Machine$double.eps^0.5, abs.tol = rel.tol) qghyp(p, object = ghyp(), method = c("integration", "splines"), spline.points = 200, subdivisions = 200, root.tol = .Machine$double.eps^0.5, rel.tol = root.tol^1.5, abs.tol = rel.tol) rghyp(n, object = ghyp()) ESghyp(p, object = ghyp(), ...)
p |
A vector of probabilities. |
x |
A vector, matrix or data.frame of quantiles. |
q |
A vector, matrix or data.frame of quantiles. |
n |
Number of observations. |
object |
An object inheriting from class ghyp . |
logvalue |
If TRUE the logarithm of the density will be returned. |
n.sim |
The number of simulations when computing pghyp of a multivariate
generalized hyperbolic distribution. |
subdivisions |
The number of subdivisions passed to integrate when
computing the distribution function pghyp of a
univariate generalized hyperbolic distribution. |
rel.tol |
The relative accuracy requested from integrate . |
abs.tol |
The absolute accuracy requested from integrate . |
method |
The method how quantiles are computed (see Details) . |
spline.points |
The number of support points when computing the quantiles with the method “splines” instead of “integration”. |
root.tol |
The tolerance of uniroot . |
... |
Arguments passed from ESghyp to qghyp . |
qghyp
and ESghyp
only work for univariate generalized hyperbolic
distributions.
pghyp
just integrates the density in the univariate case. The multivariate
cumulative distribution is computed by means of monte carlo simulation.
qghyp
computes the quantiles either by using the “integration” method where the root of
the distribution function is solved or via “splines” which interpolates the distribution
function and solves it with uniroot
afterwards. The “integration”
method is recommended when only few quantiles are required. If more than approximately
20 quantiles are needed to be calculated the “splines” method becomes faster.
The accuracy can be controlled with an adequate setting of the
parameters rel.tol
, abs.tol
, root.tol
and spline.points
.
rghyp
uses the random generator for generalized inverse gaussian distributed
random variates from the S-Plus library QRMlib
(see http://www.math.ethz.ch/~mcneil/book/QRMlib.html).
dghyp
gives the density,
pghyp
gives the distribution function,
qghyp
gives the quantile function,
ESghyp
gives the expected shortfall and
rghyp
generates random deviates.
Objects generated with hyp
, NIG
, VG
and student.t
have
to use Xghyp
as well. E.g. dNIG(0, NIG())
does not work but dghyp(0, NIG())
.
When the skewness becomes very large the functions using qghyp
may fail.
The functions ESghyp
, qqghyp
, pairs
and portfolio.optimize
are based on qghyp
.
David Lüthi
Quantitative Risk Management: Concepts, Techniques and Tools by Alexander J. McNeil, Rüdiger
Frey and Paul Embrechts
Princeton Press, 2005
ghyp-class
definition, ghyp
constructors,
fitting routines fit.ghypuv
and fit.ghypmv
,
integrate
, spline
.
## Univariate generalized hyperbolic distribution univariate.ghyp <- ghyp() par(mfrow=c(5, 1)) quantiles <- seq(-4, 4, length = 500) plot(quantiles, dghyp(quantiles, univariate.ghyp)) plot(quantiles, pghyp(quantiles, univariate.ghyp)) probabilities <- seq(1e-4, 1-1e-4, length = 500) plot(probabilities, qghyp(probabilities, univariate.ghyp, method = "splines")) plot(probabilities, ESghyp(probabilities, univariate.ghyp, method = "splines")) hist(rghyp(n=10000,univariate.ghyp),nclass=100) ## Mutivariate generalized hyperbolic distribution multivariate.ghyp <- ghyp(sigma=var(matrix(rnorm(10),ncol=2)),mu=1:2,gamma=-(2:1)) par(mfrow=c(2, 1)) quantiles <- outer(seq(-4, 4, length = 50), c(1, 1)) plot(quantiles[, 1], dghyp(quantiles, multivariate.ghyp)) plot(quantiles[, 1], pghyp(quantiles, multivariate.ghyp, n.sim = 1000)) rghyp(n = 10, multivariate.ghyp)