garchSim               package:fGarch               R Documentation

_U_n_i_v_a_r_i_a_t_e _G_A_R_C_H/_A_P_A_R_C_H _T_i_m_e _S_e_r_i_e_s _S_i_m_u_l_a_t_i_o_n

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

     Simulates a univariate GARCH/APARCH time series model.

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

     garchSim(spec = garchSpec(), n = 100, n.start = 100, extended = FALSE) 

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

extended: logical parameter if the output series should be a 3 columns
          'timeSeries' object with 'garch', 'sigma' and 'eps' data
          ('extended = TRUE') or a univariate GARCH\APARCH time series
          ('extended = FALSE' 

    spec: a specification object of class '"fGARCHSPEC"' as returned by
          the function 'garchSpec'. The model parameters are taken from
          the '@model' slot, a list with the  following entries:
           'omega' - the constant coefficient of the variance equation,
          by default 1e-6; 
           'alpha' - the value or vector of autoregressive
          coefficients,  by default 0.1, specifying a model of order 1; 
           'beta' - the value or vector of variance coefficients, by
          default 0.8, specifying a model of order 1;  
           The optional values for the linear part are: 
           'mu' - the mean value, by default 0; 
           'ar' - the autoregressive ARMA coefficients, by default 0; 
           'ma' - the moving average ARMA coefficients, by default 0.  
           The optional parameters for the conditional distributions
          are:
           'skew' - the skewness parameter (also named xi), by default
          0.9, effective only for the '"dsnorm"', the '"dsged"', and
          the '"dsstd"' skewed conditional distributions; 
           'shape' = the shape parameter (also named nu), by default 2 
          for the '"dged"' and '"dsged"', and by default 4 for the
          '"dstd"' and '"dsstd"' conditional distributions.
           See also below for further details. 

       n: length of output series, an integer value. An integer value,
          by default 'n=100'. 

 n.start: length of "burn-in" period, by default 100. 

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

     The function 'garchSim' simulates an univariate GARCH or  APARCH
     time series process as specified by the argument 'model'. 

     The 'model' is an object of class '"fGARCHSPEC"' as  returned by
     the function 'garchSpec'. The returned model specification comes
     comes with a slot '@model' which is a list of just the numeric
     parameter entries. These are recognized  and extracted for use by
     the function 'garchSim'.

     By default the series will be returned as an object of class
     '"ts"' or as a '"numeric"' vector. Having time/date positions,
     e.g. from an empirical process the numeric vector can be easily
     transformed into other time series objects like  '"timeSeries"' or
     '"zoo"'. So one can estimate the parameters of a GARCH process
     from empirical data using the function 'garchFit' and simulate
     than statistically  equivalent GARCH processes with the same set
     of model parameters using the function 'garchSim'.

     The third entry in the argument 'returnClass="mts"' allows to
     return a trivariate time series, where the first column contains
     the simulated '"garch"' process, the second column the conditional
     standard deviations '"h"', and the last column the innovations
     named '"eps"'.

     Note, the default model specifies Bollerslev's GARCH(1,1) model
     with normal distributed innovations.

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

     The function 'garchSim' returns an objects of class '"timeSeries"'
     attributed by a list with entry '$garchSpec' giving the GARCH
     specification structure as returned by the function 'garchSpec'
     and with information on  conditional standard deviations and
     innovations. See details above.

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

     Diethelm Wuertz for the Rmetrics R-port.

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

     ## garchSpec -
        spec = garchSpec()
        spec

     ## garchSim -
        # Simulate a "timeSeries" object:
        x = garchSim(spec, n = 50)
        class(x)
        print(x) 
        
     ## More simulations ...

        # Default GARCH(1,1) - uses default parameter settings
        spec = garchSpec(model = list())
        garchSim(spec, n = 10)
        
        # ARCH(2) - use default omega and specify alpha, set beta=0!
        spec = garchSpec(model = list(alpha = c(0.2, 0.4), beta = 0))
        garchSim(spec, n = 10)
        
        # AR(1)-ARCH(2) - use default mu, omega
        spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0))
        garchSim(spec, n = 10)
        
        # AR([1,5])-GARCH(1,1) - use default garch values and subset ar[.]
        spec = garchSpec(model = list(mu = 0.001, ar = c(0.5,0,0,0,0.1)))
        garchSim(spec, n = 10)
        
        # ARMA(1,2)-GARCH(1,1) - use default garch values
        spec = garchSpec(model = list(ar = 0.5, ma = c(0.3, -0.3)))  
        garchSim(spec, n = 10)
        
        # GARCH(1,1) - use default omega and specify alpha/beta
        spec = garchSpec(model = list(alpha = 0.2, beta = 0.7))
        garchSim(spec, n = 10)
        
        # GARCH(1,1) - specify omega/alpha/beta
        spec = garchSpec(model = list(omega = 1e-6, alpha = 0.1, beta = 0.8))
        garchSim(spec, n = 10)
        
        # GARCH(1,2) - use default omega and specify alpha[1]/beta[2]
        spec = garchSpec(model = list(alpha = 0.1, beta = c(0.4, 0.4)))
        garchSim(spec, n = 10)
        
        # GARCH(2,1) - use default omega and specify alpha[2]/beta[1]
        spec = garchSpec(model = list(alpha = c(0.12, 0.04), beta = 0.08))
        garchSim(spec, n = 10)
        
        # snorm-ARCH(1) - use defaults with skew Normal
        spec = garchSpec(model = list(beta = 0, skew = 0.8), cond.dist = "snorm")
        garchSim(spec, n = 10)
        
        # sged-GARCH(1,1) - using defaults with skew GED
        model = garchSpec(model = list(skew = 0.93, shape = 3), cond.dist = "sged")
        garchSim(model, n = 10)
        
        # Taylor Schwert GARCH(1,1) - this belongs to the family of APARCH Models
        spec = garchSpec(model = list(delta = 1))
        garchSim(spec, n = 10)
        
        # AR(1)-t-APARCH(2, 1) - a little bit more complex specification ...
        spec = garchSpec(model = list(mu = 1.0e-4, ar = 0.5, omega = 1.0e-6, 
            alpha = c(0.10, 0.05), gamma = c(0, 0), beta = 0.8, delta = 1.8, 
            shape = 4, skew = 0.85), cond.dist = "sstd")
        garchSim(spec, n = 10)

