nig {fBasics} | R Documentation |
Normal Inverse Gaussian Distribution
Description
Density, distribution function, quantile function and random generation for the normal inverse Gaussian distribution.
Usage
dnig(x, alpha = 1, beta = 0, delta = 1, mu = 0, log = FALSE)
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)
Arguments
x , q |
a numeric vector of quantiles. |
p |
a numeric vector of probabilities. |
n |
number of observations. |
alpha |
shape parameter. |
beta |
skewness parameter |
delta |
scale parameter, must be zero or positive. |
mu |
location parameter, by default 0. |
log |
a logical flag by default |
Details
dnig
gives the density.
pnig
gives the distribution function.
qnig
gives the quantile function, and
rnig
generates random deviates.
The parameters alpha, beta, delta, mu
are in the first
parameterization of the distribution.
The random deviates are calculated with the method described by Raible (2000).
Value
numeric vector
Author(s)
David Scott for code implemented from R's contributed package
HyperbolicDist
.
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
## nig -
set.seed(1953)
r = rnig(5000, alpha = 1, beta = 0.3, delta = 1)
plot(r, type = "l", col = "steelblue",
main = "nig: alpha=1 beta=0.3 delta=1")
## nig -
# Plot empirical density and compare with true density:
hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue")
x = seq(-5, 5, 0.25)
lines(x, dnig(x, alpha = 1, beta = 0.3, delta = 1))
## nig -
# Plot df and compare with true df:
plot(sort(r), (1:5000/5000), main = "Probability", col = "steelblue")
lines(x, pnig(x, alpha = 1, beta = 0.3, delta = 1))
## nig -
# Compute Quantiles:
qnig(pnig(seq(-5, 5, 1), alpha = 1, beta = 0.3, delta = 1),
alpha = 1, beta = 0.3, delta = 1)