HestonNandiGarchFit         package:fOptions         R Documentation

_H_e_s_t_o_n-_N_a_n_d_i _G_a_r_c_h(_1,_1) _M_o_d_e_l_l_i_n_g

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

     A collection and description of functions to model  the GARCH(1,1)
     price paths which underly Heston and  Nandi's option pricing
     model. 

     The functions are:

       'hngarchSim'       Simulates a Heston-Nandi Garch(1,1) process,
       'hngarchFit'       MLE for a Heston Nandi Garch(1,1) model,
       'hngarchStats'     True moments of the log-Return distribution,
       'print.hngarch'    Print method,
       'summary.hngarch'  Diagnostic summary.

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

     hngarchSim(model, n, innov, n.start, start.innov, rand.gen, ...)
     hngarchFit(x, model, symmetric, trace, ...)
     hngarchStats(model)

     ## S3 method for class 'hngarch':
     print(x, ...)
     ## S3 method for class 'hngarch':
     summary(object, ...)

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

   innov: [hngarchSim] - 
           is a univariate time series or vector of innovations to
          produce  the series. If not provided, 'innov' will be
          generated using  the random number generator specified by
          'rand.gen'.  Missing values are not allowed. By default the
          normal random number generator will be used. 

   model: a list of GARCH model parameters with the following entries:
          'lambda', 'omega', the constant coefficient of the variance
          equation,  'alpha' the autoregressive coefficient, 'beta' the
          variance coefficient, 'gamma' the asymmetry coefficient, and
          'rf', the risk free rate, numeric values.   

       n: [hngarchSim] - 
           is the length of the series to be simulated. The default 
          value is 1000. 

 n.start: [hngarchSim] - 
           gives the number of start-up values to be discarded. The
          default value is 100. 

  object: [summary] - 
           a fitted HN-GARCH(1,1) time series object of class
          '"hngarch"'  as returned from the function 'hngarchFit'. 

rand.gen: [hngarchSim] - 
           is the function which is called to generate the innovations.
           Usually, 'rand.gen' will be a random number generator. 
          Additional arguments required by the random number generator 
          'rand.gen', usually the location, scale and/or shape 
          parameter of the underlying distribution function, have to be
           passed through the 'dots' argument. 

start.innov: [hngarchSim] - 
           is a univariate time series or vector of innovations to be
          used  as start up values. Missing values are not allowed. 

symmetric: [hngarchFit] - 
           a logical, if TRUE a symmetric model is estimated, otherwise
           the parameters are estimated for an asymmetric HN Garch(1,1)
          model. 

   trace: [hngarchFit] - 
           a logical value. Should the optimizarion be traced? If
          'trace=FALSE', no tracing is done of the  iteration path. 

       x: [hngarchFit] - 
           an univariate vector or time series. 
           [print] - 
           a fitted HN-GARCH(1,1) time series object of class
          '"hngarch"'  as returned from the function 'hngarchFit'. 

     ...: additional arguments to be passed. 

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

     *Path Simulation:* 

      The function 'hngarchSim' simulates a Heston-Nandi Garch(1,1) 
     process with structure parameters specified through the list 
     'model(lambda, omega, alpha, beta, gamma, rf)'. 

     *Parameter Estimation:* 

      The function 'hngarchFit' estimates by the maximum log-likelihood
     approach the parameters either for a symmetric or an asymmetric 
     Heston-Nandi Garch(1,1) model from the log returns 'x' of a 
     financial time series. For optimization R's 'optim' function is
     used. Additional optimization parameters may be passed throught
     the  '...' argument. 

     *Diagnostic Analysis:* 

      The function 'summary.hngarch' performs a diagnostic analysis and
     recalculates conditional variances and innovations from the time 
     series. 

     *Calculation of Moments:* 

      The function 'hngarchStats' calculates the first four true 
     moments of the unconditional log return distribution for a
     stationary  Heston-Nandi Garch(1,1) process with standard normally
     distributed  innovations. In addition the persistence and the
     expectation values  of sigma to the power 2, 4, 6, and 8 can be
     accessed.

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

     'hngarchSim' 
      returns numeric vector with the simulated time  series points 
     neglecting those from the first 'start.innov'  innovations.   

     'hngarchFit' 
      returns list with two entries: The estimated model parmeters 
     'model', where 'model' is a list of the parameters  itself, and
     'llh' the value of the log likelihood. 

     'hngarchStats' 
      returns a list with the following components: 'persistence', the
     value of the persistence, 'meansigma2', 'meansigma4',
     'meansigma6', 'meansigma8',  the expectation value of sigma to the
     power of 2, 4, 6, and 8, 'mean', 'variance', 'skewness',
     'kurtosis', the mean, variance, skewness and kurtosis of the log
     returns. 

     'summary.hngarch' 
      returns list with the following elements: 'h',  a numeric vector
     with the conditional variances, 'z', a numeric  vector with the
     innovations.

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

     Diethelm Wuertz for this R-Port.

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

     Heston S.L., Nandi S. (1997); _A Closed-Form GARCH Option Pricing
     Model_, Federal Reserve Bank of Atlanta.

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

     ## hngarchSim -
     ## Simulate a Heston Nandi Garch(1,1) Process:
        xmpOptions("\nStart: Simulate a HN-GARCH(1,1) Process > ")
        # Symmetric Model - Parameters:
        model = list(lambda = 4, omega = 8e-5, alpha = 6e-5, 
          beta = 0.7, gamma = 0, rf = 0)
        ts = hngarchSim(model = model, n = 500, n.start = 100)
        par(mfrow = c(2, 1), cex = 0.75)
        ts.plot(ts, col = "steelblue4", main = "HN Garch Symmetric Model")
        grid()
        
     ## hngarchFit - 
     ## HN-GARCH log likelihood Parameter Estimation:
        xmpOptions("\nNext: Estimate a HN-GARCH(1,1) Process > ")
        # To speed up, we start with the simulated model ...
        mle = hngarchFit(model = model, x = ts, symmetric = TRUE)
        mle
        
     ## summary.hngarch - 
     ## HN-GARCH Diagnostic Analysis:
        xmpOptions("\nNext: Analyse a HN-GARCH(1,1) Process > ")
        par(mfrow = c(3, 1), cex = 0.75)
        summary(mle)    

     ## hngarchStats - 
     ## HN-GARCH Moments:
        xmpOptions("\nNext: Compute Moments of a HN-GARCH(1,1) Process > ")
        hngarchStats(mle$model)     

