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.
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)