HyperbolicDistribution {fBasics} | R Documentation |
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. |
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()
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 .
|
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).
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.
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.
David Scott for the HYP Generator from R's "HyperbolicDist" package,
Diethelm Wuertz for the Rmetrics R-port.
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.
## 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)