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 |
orders |
a two-element numeric vector with the model
orders; the first element is the order |
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 ( |
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
Ayensu, O. K., Feng, Y., & Schulz, D. (2025). Recent Extensions of Exponential GARCH Models: Theory and Application. Forthcoming preprint, Paderborn University.
Bollerslev, T., & Mikkelsen, H. O. (1996). Modeling and pricing long memory in stock market volatility. Journal of Econometrics, 73(1), 151–184. DOI: 10.1016/0304-4076(95)01749-6.
Feng, Y., Beran, J., Ghosh, S., & Letmathe, S. (2020). Fractionally integrated Log-GARCH with application to value at risk and expected shortfall. Working Papers CIE No. 137, Paderborn University, Center for International Economics. URL: http://groups.uni-paderborn.de/wp-wiwi/RePEc/pdf/ciepap/WP137.pdf.
Feng, Y., Gries, T., & Letmathe, S. (2023). FIEGARCH, modulus asymmetric FILog-GARCH and trend-stationary dual long memory time series. Working Papers CIE No. 156, Paderborn University. URL: https://econpapers.repec.org/paper/pdnciepap/156.htm.
Feng, Y., Peitz, C., & Siddiqui, S. (2025). A few useful members of the EGARCH-family with short- or long-memory in volatility. Unpublished working paper at Paderborn University.
Geweke, J. (1986). Modeling the persistence of conditional variances: A comment. Econometric Reviews, 5(1), 57-61. DOI: 10.1080/07474938608800088.
Milhoj, A. (1987). A Multiplicative Parameterization of ARCH Models. University of Copenhagen, Denmark.
Nelson, D. B. (1991). Conditional Heteroskedasticity in Asset Returns: A New Approach. Econometrica, 59(2), 347–370. DOI: 10.2307/2938260.
Pantula, S. G. (1986). Modeling the persistence of conditional variances: A comment. Econometric Reviews, 5(1), 71-74. DOI: 10.1080/07474938608800089.
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)
)