fEGarch_spec {fEGarch}R Documentation

General EGARCH Family Model Specification

Description

Create an object with specifications for a model from the broader EGARCH family.

Usage

fEGarch_spec(
  model_type = c("egarch", "loggarch"),
  orders = c(1, 1),
  long_memo = FALSE,
  cond_dist = c("norm", "std", "ged", "ald", "snorm", "sstd", "sged", "sald"),
  powers = c(1, 1),
  modulus = c(FALSE, FALSE)
)

Arguments

model_type

a character value (either "egarch" or "loggarch") that indicates the type of model to implement (see Details for more information).

orders

a two-element numeric vector with the model orders; the first element is the order p for the term based on \ln\left(\sigma_t^2\right), i.e. the log-transformed conditional variance, while the second element is the order q for the innovation-based term (see Details below for more information).

long_memo

a logical value that indicates whether the long-memory version of the model should be considered or not.

cond_dist

a character value stating the underlying conditional distribution to consider; available are a normal distribution ("norm"), a t-distribution ("std"), a generalized error distribution ("ged"), an average Laplace distribution ("ald") and the skewed versions of them ("snorm", "sstd", "sged", "sald").

powers

a two-element numeric vector that states the exponents in the power-transformations of the asymmetry and the magnitude terms in that order (see Details for more information).

modulus

a two-element logical vector indicating if the innovations in the asymmetry and the magnitude terms (in that order) should use a modulus transformation (see Details for more information).

Details

Let \left\{r_t\right\}, with t \in \mathbb{Z} as the time index, be a theoretical time series that follows

r_t=\mu+\sigma_t \eta_t \text{ with } \eta_t \sim \text{IID}(0,1), \text{ where}

\ln\left(\sigma_t^2\right)=\omega_{\sigma}+\theta(B)g(\eta_{t-1}).

Here, \eta_t\sim\text{IID}(0,1) means that the innovations \eta_t are independent and identically distributed (iid) with mean zero and variance one, whereas \sigma_t > 0 are the conditional standard deviations in r_t. Note that \ln\left(\cdot\right) denotes the natural logarithm. Moreover, B is the backshift operator and \theta(B) = 1 +\sum_{i=1}^{\infty}\theta_i B^{i}, where \theta_i, i=1,2,\dots, are real-valued coefficients. g\left(\eta_{t-1}\right) is a suitable function in \eta_{t-1}. Generally, \left\{g\left(\eta_{t}\right)\right\} should be an iid zero-mean sequence with finite variance. We have \mu = E\left(r_t\right) as a real-valued parameter. The real-valued parameter \omega_{\sigma} is in fact \omega_{\sigma}=E\left[\ln\left(\sigma_t^2\right)\right]. This previous set of equations defines the broader family of EGARCH models (Feng et al., 2025; Ayensu et al., 2025), from which subtypes are described in the following that depend on the choice of g.

\textbf{Type I}:

We have \theta(B) = \phi^{-1}(B)(1-B)^{-d}\psi(B), where

\phi(B) = 1-\sum_{i=1}^{p}\phi_{i}B^{i} \text{ and}

\psi(B) = 1+\sum_{j=1}^{q-1}\psi_{j}B^{j},

are characteristic polynomials with real coefficients \phi_{0},\dots,\phi_{p},\psi_{0},\dots,\psi_{q-1}, by fixing \phi_{0}=\psi_{0}=1, and without common roots. Furthermore, the fractional differencing parameter is d \in [0,1].

g\left(\cdot\right) can be defined in different ways. Following a type I specification (model_type = "egarch"), we have

g\left(\eta_t\right)=\kappa \left\{g_a\left(\eta_t\right) - E\left[g_a\left(\eta_t\right)\right] \right\} + \gamma\left\{g_m\left(\eta_t\right)-E\left[ g_m\left(\eta_t\right)\right]\right\}

with g_a\left(\eta_t\right) and g_m\left(\eta_t\right) being suitable transformations of \eta_t and where \kappa and \gamma are two additional real-valued parameters. In case of a simple (FI)EGARCH, we have g_a\left(\eta_t\right) = \eta_t (and therefore with E\left[g_a\left(\eta_t\right)\right] = 0) and g_m\left(\eta_t\right) = \left|\eta_t \right|.

Generally, we consider two cases:

g_{1,a}\left(\eta_t\right)=\text{sgn}\left(\eta_t\right)\left|\eta_t\right|^{p_a}/p_a \text{ and}

g_{2,a}\left(\eta_t\right)=\text{sgn}\left(\eta_t\right)\left[\left(\left|\eta_t\right| + 1\right)^{p_a} - 1\right] / p_{a}

whereas

g_{1,m}\left(\eta_t\right)=\left|\eta_t\right|^{p_m}/p_m \text{ and}

g_{2,m}\left(\eta_t\right)=\left[\left(\left|\eta_t\right| + 1\right)^{p_m} - 1\right] / p_{m}.

Note that \text{sgn}\left(\eta_t\right) denotes the sign of \eta_t. g_{1,\cdot} incorporates a power transformation and g_{2,\cdot} a modulus transformation together with a power transformation. The choices g_{1,a} and g_{2,a} correspond to setting the first element in modulus to FALSE or TRUE, respectively, under model_type = "egarch", where p_a can be selected via the first element in powers. As a special case, for p_a = 0, a log-transformation is employed and the division through p_a is dropped, i.e. g_{1,a}\left(\eta_t\right)=\text{sgn}\left(\eta_t\right)\ln\left(\left|\eta_t\right|\right) and g_{2,a}\left(\eta_t\right)=\text{sgn}\left(\eta_t\right)\ln\left(\left|\eta_t\right|+1\right) are employed for p_a=0. Completely analogous thoughts hold for g_{1,m} and g_{2,m} and the second elements in the arguments modulus and powers. The aforementioned model family is a type I model selectable through model_type = "egarch". Simple (FI)EGARCH models are given through selection of g_{1,a}(\cdot) and g_{1,m}(\cdot) in combination with p_a = p_m = 1. Another of such type I models is the FIMLog-GARCH (Feng et al., 2023), where instead g_{2,a}(\cdot) and g_{2,m}(\cdot) are selected with p_a = p_m = 0.

\textbf{Type II}:

As additional specifications of a Log-GARCH and a FILog-GARCH, which belong to the broader EGARCH family, we redefine

\psi(B) = 1+\sum_{j=1}^{q}\psi_{j}B^{j}

now as a polynomial of order q and

\ln\left(\sigma_t^2\right)=\omega_{\sigma}+\left[\phi^{-1}(B)(1-B)^{-d}\psi(B) - 1\right]\xi_t,

where

\xi_t=\ln\left(\eta_t^2\right)-E\left[\ln\left(\eta_t^2\right)\right].

Everything else is defined as before. Since

\phi^{-1}(B)(1-B)^{-d}\psi(B) - 1=\sum_{i=1}^{\infty}\gamma_i B^{i}=\gamma_1 B\left[\sum_{i=1}^{\infty}(\gamma_i/\gamma_1)B^{i-1}\right]=\gamma_1 B\left[1+\sum_{i=1}^{\infty}\theta_i B^{i}\right]=\theta(B)\gamma_1 B,

where \theta_i = \gamma_{i+1}/\gamma_{1}, i=0,1,\dots, and by defining

g\left(\eta_{t-1}\right)=\gamma_1\left\{\ln\left(\eta_{t-1}^2\right)-E\left[\ln\left(\eta_{t-1}^2\right)\right]\right\} = 2\gamma_1\left\{\ln\left(\left|\eta_{t-1}\right|\right)-E\left[\ln\left(\left|\eta_{t-1}\right|\right)\right]\right\},

the equation of \ln\left(\sigma_t^2\right) can be stated to be

\ln\left(\sigma_t^2\right)=\omega_{\sigma}+\theta(B)g(\eta_{t-1})

as in the broad EGARCH family at the very beginning. Therefore, Log-GARCH and FI-Log-GARCH models are equivalent to the type I models, where \kappa = 0 with usage of g_{1,m} with p_m = 0 and where \gamma = 2\gamma_1. Nonetheless, in this package, the type II models make use of the more common parameterization of \ln\left(\sigma_t^2\right) stated at the beginning of the type II model description.

This describes the established Log-GARCH models as part of the broad EGARCH family (type II models; model_type = "loggarch").

\textbf{General information}:

While the arguments powers and modulus are only relevant under a type I model, i.e. for model_type = "egarch", the arguments orders, long_memo and cond_dist are meaningful for both model_type = "egarch" and model_type = "loggarch", i.e. both under type I and II models. The first element of the two-element vector orders is the order p, while the second element is the order q. Furthermore, for long_memo = TRUE, the mentioned models are kept as they are, while for long_memo = FALSE the parameter d is set to zero. cond_dist controls the conditional distribution. The unconditional mean \mu is controlled via the function mean_spec; for include_mean = FALSE therein, \mu is not being estimated and fixed to zero; its default is however include_mean = TRUE.

See also the closely related spec-functions that immediately create specifications of specific submodels of the broad EGARCH family. These functions are egarch_spec(), fiegarch_spec(), loggarch_spec(),filoggarch_spec(), megarch_spec(), mloggarch_spec() and mafiloggarch_spec(), which are all wrappers for fEGarch_spec().

See the references section for sources on the EGARCH (Nelson, 1991), FIEGARCH (Bollerslev and Mikkelsen, 1996), Log-GARCH (Geweke, 1986; Pantula, 1986; Milhoj, 1987) and FILog-GARCH (Feng et al., 2020) models.

Value

An object of either class "egarch_type_spec" or "loggarch_type_spec" is returned, depending on the choice for the input argument model_type.

References

Examples

# EGARCH(1, 1) with cond. normal distribution
spec1 <- fEGarch_spec()
# EGARCH(2, 1) with cond. t-distribution
spec2 <- fEGarch_spec(orders = c(2, 1), cond_dist = "std")
# FIEGARCH(1, 1) with cond. normal distribution
spec3 <- fEGarch_spec(long_memo = TRUE)
# MEGARCH(1, 1) with cond. generalized error distribution
spec4 <- fEGarch_spec(modulus = c(TRUE, FALSE), powers = c(0, 1))
# Some unnamed specification
spec5 <- fEGarch_spec(
 model_type = "egarch",
 orders = c(1, 1),
 long_memo = TRUE,
 cond_dist = "std",
 powers = c(0.25, 0.75),
 modulus = c(TRUE, FALSE)
)


[Package fEGarch version 1.0.1 Index]