snorm                 package:fGarch                 R Documentation

_S_k_e_w _N_o_r_m_a_l _D_i_s_t_r_i_b_u_t_i_o_n _a_n_d _P_a_r_a_m_e_t_e_r _E_s_t_i_m_a_t_i_o_n

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

     Functions to compute density, distribution function,  quantile
     function and to generate random variates  for the skew normal
     distribution. In addition maximum likelihood estimators are
     available to  fit the parameters of the distribution. 

     The functions are:

       '[dpqr]snorm'  Skew Normal Distribution,
       'normFit'      MLE parameter fit for Normal distribution,
       'snormFit'     MLE parameter fit for skew Normal distribution,
       'snormSlider'  Displays interactively skew Normal distribution.

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

     dsnorm(x, mean = 0, sd = 1, xi = 1.5)
     psnorm(q, mean = 0, sd = 1, xi = 1.5)
     qsnorm(p, mean = 0, sd = 1, xi = 1.5)
     rsnorm(n, mean = 0, sd = 1, xi = 1.5)

     normFit(x, ...)
     snormFit(x, ...)

     snormSlider(type = c("dist", "rand"))

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

mean, sd, xi: location parameter 'mean', scale parameter 'sd', skewness
          parameter 'xi'. 

       n: the number of observations. 

       p: a numeric vector of probabilities. 

    type: a character string denoting which interactive plot should be
          displayed. Either a distribution plot 'type="dist"', the
          default value, or a random variates plot, 'type="rand"'. 

    x, q: a numeric vector of quantiles. 

     ...: parameters parsed to the optimization function 'nlm'. 

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

     *Symmetric Normal Distibution:* 

      The functions for the normal distribution are part of R's base
     package. The functions for the symmetric Student-t  distribution
     are rescaled in such a way that they have unit  variance in
     contrast to the Student-t family 'dt', 'pt',  'qt' and 'rt' which
     are part of R's base package. The generalized error distribution
     functions are defined as  described by Nelson (1991). 

     *Skew Normal Distribution:* 

      The skew normal distribution functions are defined as described
     by Fernandez and Steel (2000). cr

     *Parameter Estimation:* 

      The function 'nlm' is used to minimize the "negative" maximum 
     log-likelihood function. 'nlm' carries out a minimization using  a
     Newton-type algorithm.

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

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

     '[s]normFit' returns a list with the following components:  


     par: The best set of parameters found.  

objective: The value of objective corresponding to 'par'. 

convergence: An integer code. 0 indicates successful convergence. 

 message: A character string giving any additional information 
          returned by the optimizer, or NULL. For details, see  PORT
          documentation. 

iterations: Number of iterations performed. 

evaluations: Number of objective function and gradient function 
          evaluations. 

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

     Diethelm Wuertz for the Rmetrics R-port.

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

     Fernandez C., Steel M.F.J. (2000);  _On Bayesian Modelling of Fat
     Tails and Skewness_, Preprint, 31 pages.

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

     ## snorm -
        
        # Ranbdom Numbers:
        par(mfrow = c(2, 2))
        set.seed(1953)
        r = rsnorm(n = 1000)
        plot(r, type = "l", main = "snorm", col = "steelblue")
        
        # Plot empirical density and compare with true density:
        hist(r, n = 25, probability = TRUE, border = "white", col = "steelblue")
        box()
        x = seq(min(r), max(r), length = 201)
        lines(x, dsnorm(x), lwd = 2)
        
        # Plot df and compare with true df:
        plot(sort(r), (1:1000/1000), main = "Probability", col = "steelblue",
          ylab = "Probability")
        lines(x, psnorm(x), lwd = 2)
        
        # Compute quantiles:
        round(qsnorm(psnorm(q = seq(-1, 5, by = 1))), digits = 6)
            
     ## snormFit -
        snormFit(r)
        
     ## snormSlider -
        if (require(tcltk)) {
        snormSlider("dist")
        snormSlider("rand")
        }

