ghyp-package {ghyp} | R Documentation |
A package on the generalized hyperbolic distribution and its special cases
Description
This package provides detailed functionality for working with the univariate and multivariate Generalized Hyperbolic distribution and its special cases (Hyperbolic (hyp), Normal Inverse Gaussian (NIG), Variance Gamma (VG), skewed Student-t and Gaussian distribution). Especially, it contains fitting procedures, an AIC-based model selection routine, and functions for the computation of density, quantile, probability, random variates, expected shortfall and some portfolio optimization and plotting routines as well as the likelihood ratio test. In addition, it contains the Generalized Inverse Gaussian distribution.
Details
Initialize:
ghyp | Initialize a generalized hyperbolic distribution. |
hyp | Initialize a hyperbolic distribution. |
NIG | Initialize a normal inverse gaussian distribution. |
VG | Initialize a variance gamma distribution. |
student.t | Initialize a Student-t distribution. |
gauss | Initialize a Gaussian distribution. |
Density, distribution function, quantile function and random generation:
dghyp | Density of a generalized hyperbolic distribution. |
pghyp | Distribution function of a generalized hyperbolic distribution. |
qghyp | Quantile of a univariate generalized hyperbolic distribution. |
rghyp | Random generation of a generalized hyperbolic distribution. |
Fit to data:
fit.ghypuv | Fit a generalized hyperbolic distribution to univariate data. |
fit.hypuv | Fit a hyperbolic distribution to univariate data. |
fit.NIGuv | Fit a normal inverse gaussian distribution to univariate data. |
fit.VGuv | Fit a variance gamma distribution to univariate data. |
fit.tuv | Fit a skewed Student-t distribution to univariate data. |
fit.gaussuv | Fit a Gaussian distribution to univariate data. |
fit.ghypmv | Fit a generalized hyperbolic distribution to multivariate data. |
fit.hypmv | Fit a hyperbolic distribution to multivariate data. |
fit.NIGmv | Fit a normal inverse gaussian distribution to multivariate data. |
fit.VGmv | Fit a variance gamma distribution to multivariate data. |
fit.tmv | Fit a skewed Student-t distribution to multivariate data. |
fit.gaussmv | Fit a Gaussian distribution to multivariate data. |
stepAIC.ghyp | Perform a model selection based on the AIC. |
Risk, performance and portfolio optimization:
ESghyp | Expected shortfall of a univariate generalized hyperbolic distribution. |
ghyp.omega | Performance measure Omega based on a univariate ghyp distribution. |
portfolio.optimize | Calculate optimal portfolios with respect to alternative risk measures. |
Utilities:
mean | Returns the expected value. |
vcov | Returns the variance(-covariance). |
ghyp.skewness | Skewness of a univariate ghyp distribution. |
ghyp.kurtosis | Kurtosis of a univariate ghyp distribution. |
logLik | Returns Log-Likelihood of fitted ghyp objects. |
AIC | Returns the Akaike's Information Criterion of fitted ghyp objects. |
lik.ratio.test | Performs a likelihood-ratio test on fitted ghyp distributions. |
[ | Extract certain dimensions of a multivariate ghyp distribution. |
scale | Scale ghyp distribution objects to zero expectation and/or unit variance. |
transform | Transform a multivariate generalized hyperbolic distribution. |
ghyp.moment | Moments of the univariate ghyp distribution. |
coef | Parameters of a generalized hyperbolic distribution. |
ghyp.data | Data of a (fitted) generalized hyperbolic distribution. |
ghyp.fit.info | Information about the fitting procedure, log-likelihood and AIC value. |
ghyp.name | Returns the name of the ghyp distribution or a subclass of it. |
ghyp.dim | Returns the dimension of a ghyp object. |
summary | Summary of a fitted generalized hyperbolic distribution. |
Plot functions:
qqghyp | Perform a quantile-quantile plot of a (fitted) univariate ghyp distribution. |
hist | Plot a histogram of a (fitted) univariate generalized hyperbolic distribution. |
pairs | Produce a matrix of scatterplots with quantile-quantile plots on the diagonal. |
plot | Plot the density of a univariate ghyp distribution. |
lines | Add the density of a univariate ghyp distribution to a graphics device. |
Generalized inverse gaussian distribution:
dgig | Density of a generalized inverse gaussian distribution |
pgig | Distribution function of a generalized inverse gaussian distribution |
qgig | Quantile of a generalized inverse gaussian distribution |
ESgig | Expected shortfall of a generalized inverse gaussian distribution |
rgig | Random generation of a generalized inverse gaussian distribution |
Package vignette:
A document about generalized hyperbolic distributions can be found in the
doc
folder of this package or on https://cran.r-project.org/package=ghyp.
Existing solutions
There are packages like GeneralizedHyperbolic
,
HyperbolicDist
, SkewHyperbolic
, VarianceGamma
and fBasics
which cover the
univariate generalized hyperbolic distribution and/or some of its special cases. However, the univariate case is contained
in this package as well because we aim to provide a uniform interface to deal with
generalized hyperbolic distribution. Recently an R port of the S-Plus library QRMlib
was released. The package QRMlib
contains fitting procedures for the multivariate NIG, hyp and
skewed Student-t distribution but not for the generalized hyperbolic case.
The package fMultivar
implements
a fitting routine for multivariate skewed Student-t distributions as well.
Object orientation
We follow an object-oriented programming approach in this package and introduce distribution objects. There are mainly four reasons for that:
Unlike most distributions the GH distribution has quite a few parameters which have to fulfill some consistency requirements. Consistency checks can be performed uniquely when an object is initialized.
Once initialized the common functions belonging to a distribution can be called conveniently by passing the distribution object. A repeated input of the parameters is avoided.
Distributions returned from fitting procedures can be directly passed to, e.g., the density function since fitted distribution objects add information to the distribution object and consequently inherit from the class of the distribution object.
Generic method dispatching can be used to provide a uniform interface to, e.g., plot the probability density of a specific distribution like
plot(distribution.object)
. Additionally, one can take advantage of generic programming since R provides virtual classes and some forms of polymorphism.
Acknowledgement
This package has been partially developed in the framework of the COST-P10 “Physics of Risk” project. Financial support by the Swiss State Secretariat for Education and Research (SBF) is gratefully acknowledged.
Author(s)
David Luethi, Wolfgang Breymann
Institute of Data Analyses and Process Design
(https://www.zhaw.ch/en/engineering/institutes-centres/idp/groups/data-analysis-and-statistics/)
Maintainer: Marc Weibel <marc.weibel@quantsulting.ch>
References
Quantitative Risk Management: Concepts, Techniques and Tools by
Alexander J. McNeil, Ruediger Frey and Paul Embrechts
Princeton
Press, 2005
Intermediate probability: A computational approach by Marc
Paolella
Wiley, 2007
S-Plus and R Library for Quantitative Risk Management QRMlib by
Alexander J. McNeil (2005) and Scott Ulman (R-port) (2007)