HyperbolicDistribution {fBasics}R Documentation

Generalized Hyperbolic Distribution

Description

A collection and description of functions to compute density, distribution function, quantile function and to generate random variates for three cases of the generalized hyperbolic distribution: the generalized hyperbolic distribution itself, the hperbolic distribution and the normal inverse Gaussian distribution.

The functions are:

[dpqr]gh The generalized hyperbolic distribution,
[dpqr]hyp The hyperbolic distribution,
hypMode the hyperbolic mode,
[dpqr]nig The normal inverse Gaussian distribution,
hypSlider interactive hyperbolic distribution display,
nigSlider interactive NIG distribution display.

Usage

dgh(x, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1)
pgh(q, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1)
qgh(p, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1)
rgh(n, alpha = 1, beta = 0, delta = 1, mu = 0, lambda = 1)

dhyp(x, alpha = 1, beta = 0, delta = 1, mu = 0, pm = c(1, 2, 3, 4))
phyp(q, alpha = 1, beta = 0, delta = 1, mu = 0, pm = c(1, 2, 3, 4), ...)
qhyp(p, alpha = 1, beta = 0, delta = 1, mu = 0, pm = c(1, 2, 3, 4), ...)
rhyp(n, alpha = 1, beta = 0, delta = 1, mu = 0, pm = c(1, 2, 3, 4))

hypMode(alpha = 1, beta = 0, delta = 1, mu = 0, pm = c(1, 2, 3, 4))

dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0)
pnig(q, alpha = 1, beta = 0, delta = 1, mu = 0)
qnig(p, alpha = 1, beta = 0, delta = 1, mu = 0)
rnig(n, alpha = 1, beta = 0, delta = 1, mu = 0)

hypSlider()
nigSlider()

Arguments

alpha, beta, delta, mu, lambda shape parameter alpha; skewness parameter beta, abs(beta) is in the range (0, alpha); scale parameter delta, delta must be zero or positive; location parameter mu, by default 0; and lambda parameter lambda, by default 1. These is the meaning of the parameters in the first parameterization pm=1 which is the default parameterization selection. In the second parameterization, pm=2 alpha and beta take the meaning of the shape parameters (usually named) zeta and rho. In the third parameterization, pm=3 alpha and beta take the meaning of the shape parameters (usually named) xi and chi. In the fourth parameterization, pm=4 alpha and beta take the meaning of the shape parameters (usually named) a.bar and b.bar.
n number of observations.
p a numeric vector of probabilities.
pm an integer value between 1 and 4 for the selection of the parameterization. The default takes the first parameterization.
x, q a numeric vector of quantiles.
... arguments to be passed to the function integrate.

Details

Generalized Hyperbolic Distibution:

The generator rgh is based on the GH algorithm given by Scott (2004).

Hyperbolic Distibution:

The generator rhyp is based on the HYP algorithm given by Atkinson (1982).

Normal Inverse Gaussian Distribution:

The random deviates are calculated with the method described by Raible (2000).

Value

All values for the *gh, *hyp, and *nig functions are numeric vectors: d* returns the density, p* returns the distribution function, q* returns the quantile function, and r* generates random deviates.
All values have attributes named "param" listing the values of the distributional parameters.
The function hyp*Mode returns the mode in the appropriate parameterization. A numeric value.
The functions hypSlider and nigSlider display for educational purposes the densities and probabilities of the hyperbolic and normal inverse Gaussian distributions.

Note

An undocumented R function for the modified Bessel function K1 named .BesselK1(X) is availalble, which is called by the S-Plus version of the program.

Author(s)

David Scott for the HYP Generator from R's "HyperbolicDist" package,
Diethelm Wuertz for the Rmetrics R-port.

References

Atkinson, A.C. (1982); The simulation of generalized inverse Gaussian and hyperbolic random variables, SIAM J. Sci. Stat. Comput. 3, 502–515.

Barndorff-Nielsen O. (1977); Exponentially decreasing distributions for the logarithm of particle size, Proc. Roy. Soc. Lond., A353, 401–419.

Barndorff-Nielsen O., Blaesild, P. (1983); Hyperbolic distributions. In Encyclopedia of Statistical Sciences, Eds., Johnson N.L., Kotz S. and Read C.B., Vol. 3, pp. 700–707. New York: Wiley.

Raible S. (2000); Levy Processes in Finance: Theory, Numerics and Empirical Facts, PhD Thesis, University of Freiburg, Germany, 161 pages.

Examples

## SOURCE("fBasics.13B-HyperbolicDistribution")

## hyp -
   xmpBasics("\nStart: Hyperbolic Distribution > ")
   par(mfcol = c(3, 2), cex = 0.5)
   set.seed(1953)
   r = rhyp(1000, alpha = 1, beta = 0.3, delta = 1)
   plot(r, type = "l", col = "steelblue4",
     main = "hyp: alpha=1 beta=0.3 delta=1")
   # Plot empirical density and compare with true density:
   hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue4") 
   x = seq(-5, 5, 0.25)
   lines(x, dhyp(x, alpha = 1, beta = 0.3, delta = 1))
   # Plot df and compare with true df:
   plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue4")
   lines(x, phyp(x, alpha = 1, beta = 0.3, delta = 1))
   # Compute quantiles:
   qhyp(phyp(seq(-5, 7, 1), alpha = 1, beta = 0.3, delta = 1), 
     alpha = 1, beta = 0.3, delta = 1)
   # Compute the mode: 
   hypMode(alpha = 1, beta = 0.3, delta = 1)
 
     
## nig -
   xmpBasics("\nNext: Normal Inverse Gaussian Distribution > ")
   set.seed(1953)
   r = rnig(5000, alpha = 1, beta = 0.3, delta = 1)
   plot(r, type = "l", col = "steelblue4",
     main = "nig: alpha=1 beta=0.3 delta=1")
   # Plot empirical density and compare with true density:
   hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue4")
   x = seq(-5, 5, 0.25)
   lines(x, dnig(x, alpha = 1, beta = 0.3, delta = 1))
   # Plot df and compare with true df:
   plot(sort(r), (1:5000/5000), main = "Probability", col = "steelblue4")
   lines(x, pnig(x, alpha = 1, beta = 0.3, delta = 1))
   # Compute Quantiles:
   qnig(pnig(seq(-5, 5, 1), alpha = 1, beta = 0.3, delta = 1), 
     alpha = 1, beta = 0.3, delta = 1) 

[Package fBasics version 221.10065 Index]