HyperbolicDistribution        package:fBasics        R Documentation

_G_e_n_e_r_a_l_i_z_e_d _H_y_p_e_r_b_o_l_i_c _D_i_s_t_r_i_b_u_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

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

     The functions are:

       '[dpqr]hyp'  The hyperbolic distribution,
       '[dpqr]nig'  The normal inverse Gaussian distribution.

_U_s_a_g_e:

     dhyp(x, alpha , beta , delta , mu = 0)
     phyp(q, alpha , beta , delta , mu = 0, ...)
     qhyp(p, alpha , beta , delta , mu = 0)
     rhyp(n, alpha , beta , delta , mu = 0)

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

_A_r_g_u_m_e_n_t_s:

alpha, beta, delta, mu: shape parameter 'alpha'; skewness parameter
          'beta', 'abs(beta)' is in the  range (0,alpha); scale
          parameter 'delta', 'delta' must be zero or  positive; and
          location parameter 'mu', by default 0. 

       n: number of observations. 

       p: a numeric vector of probabilities. 

    x, q: a numeric vector of quantiles. 

     ...: arguments to be passed to the function 'integrate'. 

_D_e_t_a_i_l_s:

     *Hyperbolic Distibution:* 

      The generator 'rhyperb' 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).

_V_a_l_u_e:

     All values are numeric vectors: 'd*' returns the density, 'p*'
     returns the distribution function, 'q*' returns the quantile
     function, and 'r*' generates random deviates.

_A_u_t_h_o_r(_s):

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

_R_e_f_e_r_e_n_c_e_s:

     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.

_S_e_e _A_l_s_o:

     'dstable', 'dsymstb'.

_E_x_a_m_p_l_e_s:

     ## 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, 7, 0.2)
        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) 
      
          
     ## 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.1)
        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, 7, 1), alpha = 1, beta = 0.3, delta = 1), 
          alpha = 1, beta = 0.3, delta = 1) 

