Package com.imsl.stat

Class EGARCH

All Implemented Interfaces:
Serializable, Cloneable

public class EGARCH extends ExtendedGARCH
Implements the exponential GARCH (EGARCH) model.

For a time series \( \epsilon_t \) the exponential GARCH\((p,q)\) model has the form $$ \left\{ \begin{array}{ll} \epsilon_t = \sigma_tz_t & \\ h(\sigma_t) = \log \sigma_t^2 = \omega + I(B) g(\epsilon_t,\sigma_t) + \beta(B)\log(\sigma^2_{t}) & \end{array} \right.$$ where $$g(\epsilon_{t-k},\sigma_{t-k})=\alpha_k z_{t-k} + \gamma_k(|z_{t-k}| - E|z_{t-k}|) $$ \(I(B) = \sum_{i=1}^{q}B^i\), \(\beta(B) = \sum_{i=1}^{p}\beta_i B^i\), and \(B^k z_t = z_{t-k}\) is the back shift operator. The integers \(p,q\) are the GARCH and ARCH orders, respectively. The parameters \(\{ \omega,\alpha_k,\beta_i,\gamma_k\}\) are real numbers to be estimated in the model and the random variables \(z_t\) are independent and identically distributed. The default distribution for \(z_t\) is the standard normal; choices other than normal can be implemented via the interface, ExtendedGARCH.zDistribution.

The exponential GARCH was introduced by Nelson (1991). The model addresses two drawbacks of the classical GARCH model. First, the log function on \(\sigma^2\) removes restrictions on the parameters usually needed to ensure the conditional variance remains positive. Second, through the specification of \(g\), the exponential GARCH allows for asymmetric behavior in response to market moves, known as leverage. For instance, it is frequently observed in real data that volatility increases more rapidly during market declines than during market rises.

References
Nelson, D.B. (1991) Conditional heteroskedasticity in asset returns: A new approach. Econometrica 59: 347–370.

See Also:
  • Constructor Details

    • EGARCH

      public EGARCH(TimeSeries ts)
      Constructs an EGARCH(1,1) model
      Parameters:
      ts - An object of class TimeSeries containing the data
    • EGARCH

      public EGARCH(TimeSeries ts, int p, int q, int[] meanModel)
      Constructs an EGARCH(p, q) model with a possible ARMA configuration for the mean.
      Parameters:
      ts - an object of class TimeSeries containing the data
      p - an int, the GARCH order for the model
      q - an int, the ARCH order for the model
      meanModel - an int array containing the ARMA mean model specification. meanModel must have the following form: \(\{p^\prime,0,q^\prime\}\), where \(\{p^\prime,q^\prime\}\) are, respectively, the AR and MA orders for the ARMA model. If meanModel is null, the mean model is not fit.
  • Method Details

    • conditionalVarianceFunction

      public double conditionalVarianceFunction(double sigma2)
      Implements the function \(h =\log(\sigma^2)\) for the EGARCH model.
      Specified by:
      conditionalVarianceFunction in class ExtendedGARCH
      Parameters:
      sigma2 - a double representing the conditional variance
      Returns:
      a double, the value of the function
    • conditionalVarianceInverseFunction

      public double conditionalVarianceInverseFunction(double f)
      Implements the inverse function \(h^{-1}(f)= \exp(h) = \sigma^2\) for the EGARCH model.
      Specified by:
      conditionalVarianceInverseFunction in class ExtendedGARCH
      Parameters:
      f - a double representing the function value \( h = \log(\sigma^2)\)
      Returns:
      a double, the value of the inverse \(\sigma^2\)
    • gFunction

      public double gFunction(double epsilon, double sigma, int lag, double[] params, double[] values)
      Returns the value of \( g(\epsilon,\sigma) \) evaluated at the input parameter values. This function is called by methods in the Extended GARCH class. $$ g(\epsilon_{t-k},\sigma_{t-k}) = \alpha_{k}\frac{\epsilon_{t-k}}{\sigma_{t-k}} + \gamma_k (|\frac{\epsilon_{t-k}}{\sigma_{t-k}}| - E[|\frac{\epsilon_{t-k}}{\sigma_{t-k}}|]) =\alpha_{k}z_{t-k} + \gamma_k(|z_{t-k}| - E[|z_{t-k}|])$$ The expectation \(E[|z_t|]\) depends on the distribution of \(z_t\). When using a distribution other than the default normal, the expectation must be set via the method ExtendedGARCH.setValues(double[]).
      Specified by:
      gFunction in class ExtendedGARCH
      Parameters:
      epsilon - a double, the value of the return series
      sigma - a double, the square root of the conditional variance
      lag - an int, the value of the lag \(k\)
      params - a double array containing the parameter values
      values - a double array containing the additional values
      Returns:
      a double, the value of the function