garchFit               package:fGarch               R Documentation

_U_n_i_v_a_r_i_a_t_e _G_A_R_C_H _T_i_m_e _S_e_r_i_e_s _F_i_t_t_i_n_g

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

     Estimates the parameters of an univariate ARMA-GARCH/APARCH
     process.

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

         
     garchFit(formula, data, init.rec = c("mci", "uev"), 
         delta = 2, skew = 1, shape = 4, 
         cond.dist = c("norm", "snorm", "ged", "sged", "std", "sstd", "QMLE"), 
         include.mean = TRUE, include.delta = NULL, include.skew = NULL, 
             include.shape = NULL, leverage = NULL, trace = TRUE, 
         algorithm = c("nlminb", "lbfgsb", "nlminb+nm", "lbfgsb+nm"), 
         hessian = c("ropt", "rcd"), control = list(), 
         title = NULL, description = NULL, ...)
         
     garchKappa(cond.dist = c("norm", "ged", "std", "snorm", "sged", "sstd"), 
         gamma = 0, delta = 2, skew = NA, shape = NA)

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

algorithm: a string parameter that determines the algorithm used for
          maximum  likelihood estimation. 

cond.dist: a character string naming the desired conditional
          distribution. Valid values are '"dnorm"', '"dged"', '"dstd"',
           '"dsnorm"', '"dsged"', '"dsstd"' and '"QMLE"'. The default
          value is the normal distribution.  See Details for more
          information. 

 control: control parameters, the same as used for the functions from
          'nlminb', and 'bfgs' and 'Nelder-Mead' from 'optim'. 

    data: an optional timeSeries or data frame object containing the
          variables  in the model. If not found in 'data', the
          variables are taken  from 'environment(formula)', typically
          the environment from which 'armaFit' is called. If 'data' is
          an univariate series, then the series is converted into a
          numeric vector and the name of the response in the formula
          will be neglected. 

   delta: a numeric value, the exponent 'delta' of the variance
          recursion. By default, this value will be fixed, otherwise
          the exponent will be  estimated together with the other model
          parameters if  'include.delta=FALSE'. 

description: a character string which allows for a brief description.  

 formula: formula object describing the mean and variance equation of
          the  ARMA-GARCH/APARCH model. A pure GARCH(1,1) model is
          selected  when e.g. 'formula=~garch(1,1)'. To specify for
          example an  ARMA(2,1)-APARCH(1,1) use 'formula =
          ~arma(2,1)+apaarch(1,1)'. 

   gamma: APARCH leverage parameter entering into the formula for
          calculating the expectation value. 

 hessian: a string denoting how the Hessian matrix should be evaluated,
          either 'hessian ="rcd"', or '"ropt"', the default, '"rcd"' 
          is a central difference approximation implemented in R and
          '"ropt"' use the internal R function 'optimhess'. 

include.delta: a logical flag which determines if the parameter for the
          recursion equation 'delta' will be estimated or not. If 
          'include.delta=FALSE' then the shape parameter will be kept 
          fixed during the process of parameter optimization. 

include.mean: this flag determines if the parameter for the mean will
          be estimated or not. If 'include.mean=TRUE' this will be the
          case, otherwise the parameter will be kept fixed durcing the
          process of parameter optimization. 

include.shape: a logical flag which determines if the parameter for the
          shape of the conditional distribution will be estimated or
          not. If  'include.shape=FALSE' then the shape parameter will
          be kept  fixed during the process of parameter optimization. 

include.skew: a logical flag which determines if the parameter for the
          skewness of the conditional distribution will be estimated or
          not. If  'include.skew=FALSE' then the skewness parameter
          will be kept  fixed during the process of parameter
          optimization. 

init.rec: a character string indicating the method how to initialize
          the  mean and varaince recursion relation.  

leverage: a logical flag for APARCH models. Should the model be
          leveraged? By default 'leverage=TRUE'. 

   shape: a numeric value, the shape parameter of the conditional
          distribution. 

    skew: a numeric value, the skewness parameter of the conditional
          distribution. 

   title: a character string which allows for a project title. 

   trace: a logical flag. Should the optimization process of fitting
          the model parameters be printed? By default 'trace=TRUE'.  

     ...: additional arguments to be passed. 

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

     '"QMLE"' stands for Quasi-Maximum Likelihood Estimation, which
     assumes normal distribution and uses robust standard errors for
     inference. Bollerslev and Wooldridge (1992) proved that if the
     mean and the volatility equations are correctly specified, the QML
     estimates are consistent and asymptotically normally distributed.
     However, the estimates are not efficient and "the efficiency loss
     can be marked under asymmetric ... distributions" (Bollerslev and
     Wooldridge (1992), p. 166). The robust variance-covariance matrix
     of the estimates equals the (Eicker-White) sandwich estimator,
     i.e.


                       V = H^(-1) G' G H^(-1),


     where V denotes the variance-covariance matrix, H stands for the
     Hessian and G represents the matrix of contributions to the
     gradient, the elements of which are defined as


            G_{t,i} = derivative of l_{t} w.r.t. zeta_{i},


     where l_{t} is the log likelihood of the t-th observation and
     zeta_{i} is the i-th estimated parameter. See sections 10.3 and
     10.4 in Davidson and MacKinnon (2004) for a more detailed
     description of the robust variance-covariance matrix.

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

     'garchFit' 

      returns a S4 object of class '"fGARCH"' with the following slots: 

   @call: the call of the 'garch' function. 

@formula: a list with two formula entries, one for the mean and the
          other  one for the variance equation. 

 @method: a string denoting the optimization method, by default the  
          returneds string is "Max Log-Likelihood Estimation". 

   @data: a list with one entry named 'x', containing the data of  the
          time series to be estimated, the same as given by the input
          argument 'series'. 

    @fit: a list with the results from the parameter estimation. The
          entries  of the list depend on the selected algorithm, see
          below. 

@residuals: a numeric vector with the (raw, unstandardized) residual
          values. 

 @fitted: a numeric vector with the fitted values. 

    @h.t: a numeric vector with the conditional variances (h.t =
          sigma.t^delta).  

@sigma.t: a numeric vector with the conditional standard deviation. 

  @title: a title string. 

@description: a string with a brief description. 


     The entries of the @fit slot show the results from the
     optimization.

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

     Diethelm Wuertz for the Rmetrics R-port,
      R Core Team for the 'optim' R-port,
      Douglas Bates and Deepayan Sarkar for the 'nlminb' R-port,
      Bell-Labs for the underlying PORT Library,
      Ladislav Luksan for the underlying Fortran SQP Routine, 
      Zhu, Byrd, Lu-Chen and Nocedal for the underlying L-BFGS-B
     Routine.

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

     ATT (1984); _PORT Library Documentation_, 
     http://netlib.bell-labs.com/netlib/port/.

     Bera A.K., Higgins M.L. (1993); _ARCH Models: Properties,
     Estimation and Testing_, J. Economic Surveys 7, 305-362.

     Bollerslev T. (1986); _Generalized Autoregressive Conditional
     Heteroscedasticity_, Journal of Econometrics 31, 307-327.

     Bollerslev T., Wooldridge J.M. (1992); _Quasi-Maximum Likelihood
     Estimation and Inference in Dynamic Models with Time-Varying
     Covariance_, Econometric Reviews 11, 143-172.

     Byrd R.H., Lu P., Nocedal J., Zhu C. (1995); _A Limited Memory
     Algorithm for Bound Constrained Optimization_, SIAM Journal of
     Scientific Computing 16, 1190-1208.

     Davidson R., MacKinnon J.G. (2004); _Econometric Theory and
     Methods_, Oxford University Press, New York.

     Engle R.F. (1982); _Autoregressive Conditional Heteroscedasticity
     with Estimates  of the Variance of United Kingdom Inflation_,
     Econometrica 50, 987-1008.

     Nash J.C. (1990); _Compact Numerical Methods for Computers_,
     Linear Algebra and Function Minimisation, Adam Hilger.

     Nelder J.A., Mead R. (1965); _A Simplex Algorithm for Function
     Minimization_, Computer Journal 7, 308-313.

     Nocedal J., Wright S.J. (1999); _Numerical Optimization_,
     Springer, New York.

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

       
     ## UNIVARIATE TIME SERIES INPUT:
        # In the univariate case the lhs formula has not to be specified ... 
        
        # A numeric Vector from default GARCH(1,1) - fix the seed:
        N = 200
        x.vec = as.vector(garchSim(garchSpec(rseed = 1985), n = N)[,1])
        garchFit(~ garch(1,1), data = x.vec, trace = FALSE)

        # An univariate timeSeries object with dummy dates:
        x.timeSeries = dummyDailySeries(matrix(x.vec), units = "GARCH11")
        garchFit(~ garch(1,1), data = x.timeSeries, trace = FALSE)         

     ## Not run: 
        # An univariate zoo object:
        x.zoo = zoo(as.vector(x.vec), order.by = as.Date(rownames(x.timeSeries)))
        garchFit(~ garch(1,1), data = x.zoo, trace = FALSE) 
     ## End(Not run)

        # An univariate "ts" object:
        x.ts = as.ts(x.vec)
        garchFit(~ garch(1,1), data = x.ts, trace = FALSE)
         
     ## MULTIVARIATE TIME SERIES INPUT:
        # For multivariate data inputs the lhs formula must be specified ...
        
        # A numeric matrix binded with dummy random normal variates:
        X.mat = cbind(GARCH11 = x.vec, R = rnorm(N))
        garchFit(GARCH11 ~ garch(1,1), data = X.mat)
             
        # A multivariate timeSeries object with dummy dates:
        X.timeSeries = dummyDailySeries(X.mat, units = c("GARCH11", "R")) 
        garchFit(GARCH11 ~ garch(1,1), data = X.timeSeries)

     ## Not run: 
         
        # A multivariate zoo object:
        X.zoo = zoo(X.mat, order.by = as.Date(rownames(x.timeSeries)))
        garchFit(GARCH11 ~ garch(1,1), data = X.zoo)
     ## End(Not run)

        # A multivariate "mts" object:
        X.mts = as.ts(X.mat)
        garchFit(GARCH11 ~ garch(1,1), data = X.mts)
      
     ## MODELING THE PERCENTUAL SPI/SBI SPREAD FROM LPP BENCHMARK:
         
        X.timeSeries = as.timeSeries(data(LPP2005REC))
        X.mat = as.matrix(x.timeSeries)
        ## Not run: X.zoo = zoo(X.mat, order.by = as.Date(rownames(X.mat)))
        X.mts = ts(X.mat)
        garchFit(100*(SPI - SBI) ~ garch(1,1), data = X.timeSeries)
        # The remaining are not yet supported ...
        # garchFit(100*(SPI - SBI) ~ garch(1,1), data = X.mat)
        # garchFit(100*(SPI - SBI) ~ garch(1,1), data = X.zoo)
        # garchFit(100*(SPI - SBI) ~ garch(1,1), data = X.mts)
         
     ## MODELING HIGH/LOW RETURN SPREADS FROM MSFT PRICE SERIES:
         
        X.timeSeries = as.timeSeries(msft.dat)
        garchFit(Open ~ garch(1,1), data = returns(X.timeSeries)) 
        garchFit(100*(High-Low) ~ garch(1,1), data = returns(X.timeSeries)) 

