fBasics (version 3011.87)

sgh: Standardized Generalized Hyperbolic Distribution

Description

Density, distribution function, quantile function and random generation for the standardized generalized hyperbolic distribution.

Usage

dsgh(x, zeta = 1, rho = 0, lambda = 1, log = FALSE) psgh(q, zeta = 1, rho = 0, lambda = 1) qsgh(p, zeta = 1, rho = 0, lambda = 1) rsgh(n, zeta = 1, rho = 0, lambda = 1)

Arguments

zeta, rho, lambda
shape parameter zeta is positive, skewness parameter rho is in the range (-1, 1).
log
a logical flag by default FALSE. If TRUE, log values are returned.
n
number of observations.
p
a numeric vector of probabilities.
x, q
a numeric vector of quantiles.

Value

All values for the *sgh 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.

Details

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

Examples

Run this code
## rsgh -
   set.seed(1953)
   r = rsgh(5000, zeta = 1, rho = 0.5, lambda = 1)
   plot(r, type = "l", col = "steelblue",
     main = "gh: zeta=1 rho=0.5 lambda=1")
 
## dsgh - 
   # Plot empirical density and compare with true density:
   hist(r, n = 50, probability = TRUE, border = "white", col = "steelblue",
     ylim = c(0, 0.6))
   x = seq(-5, 5, length = 501)
   lines(x, dsgh(x, zeta = 1, rho = 0.5, lambda = 1))
 
## psgh -  
   # Plot df and compare with true df:
   plot(sort(r), (1:5000/5000), main = "Probability", col = "steelblue")
   lines(x, psgh(x, zeta = 1, rho = 0.5, lambda = 1))
   
## qsgh -
   # Compute Quantiles:
   round(qsgh(psgh(seq(-5, 5, 1), zeta = 1, rho = 0.5), zeta = 1, rho = 0.5), 4)

Run the code above in your browser using DataLab