fEGarch {fEGarch} | R Documentation |
Fitting Function for Models of the Broader EGARCH Family
Description
Use quasi-maximum-likelihood estimation to fit a model from the broader EGARCH family to some observed time series.
Usage
fEGarch(
spec = egarch_spec(),
rt,
drange = c(0, 1),
meanspec = mean_spec(),
Drange = c(0, 1),
nonparspec = locpol_spec(),
use_nonpar = FALSE,
n_test = 0,
start_pars = NULL,
LB = NULL,
UB = NULL,
control = list(),
control_nonpar = list(),
mean_after_nonpar = FALSE,
parallel = TRUE,
ncores = max(1, future::availableCores() - 1),
trunc = "none",
presample = 50,
Prange = c(1, 5)
)
Arguments
spec |
an S4 object of class |
rt |
the input time series to fit the model to ordered from
past to present; can also be a |
drange |
a two-element numeric vector that indicates the boundaries
of the interval over which to search for the fractional differencing
parameter |
meanspec |
an object of class "mean_spec"; indicates the specifications for the model in the conditional mean. |
Drange |
a two-element numeric vector that indicates the boundaries
of the interval over which to search for the fractional differencing
parameter |
nonparspec |
an object of class |
use_nonpar |
a logical indicating whether or not to implement a
semiparametric extension of the volatility model defined through |
n_test |
a single numerical value indicating, how many observations
at the end of |
start_pars |
a vector with starting parameters for the optimization; must be of the same length as the output vector of parameters; the default NULL uses internally saved default sets of starting values; see "Details" for the order of elements. |
LB |
a vector with lower boundaries for parameters; must be of the same length as the output vector of parameters; the default NULL uses internally saved default sets of lower boundary values; see "Details" for the order of elements. |
UB |
a vector with upper boundaries for parameters; must be of the same length as the output vector of parameters; the default NULL uses internally saved default sets of upper boundary values; see "Details" for the order of elements. |
control |
a list that is passed to |
control_nonpar |
a list containing changes to the arguments
for the hyperparameter estimation algorithm in the nonparametric
scale function estimation for
|
mean_after_nonpar |
only for |
parallel |
only relevant for a (skewed) average Laplace (AL)
distribution, i.e.
if |
ncores |
only relevant for a (skewed) average Laplace (AL)
distribution, i.e.
if |
trunc |
a positive integer indicating the finite truncation length of the
infinite-order polynomials of the infinite-order representations of the
long-memory model parts; the character |
presample |
the presample length for initialization (for extended EGARCH- / Log-GARCH-type models only relevant for the FARIMA-part, as series in log-transformed conditional variance are initialized by zero). |
Prange |
a two-element vector that indicates the search boundaries for
the parameter |
Details
For details on the models in the conditional variance, see fEGarch_spec.
For details on the models in the conditional mean, see mean_spec.
The combined model defined through mean_spec and
fEGarch_spec is the specified model. It can be thought of
as the model described in mean_spec with \left\{r_t\right\}
therein being governed by a model from the EGARCH family (see for example Feng et al., 2025) as described in
fEGarch_spec, however with mean of \left\{r_t\right\}
fixed
to zero.
The specified model is then fitted using quasi maximum likelihood estimation,
where pre-sample values of g\left(\eta_{t-1}\right)
are
filled in through its theoretical expectation of zero, which is analogous to not
setting pre-sample values in the long-memory case. In addition, in
short-memory models, pre-sample values of ln(\sigma_t^2)
are roughly
approximated through \ln\left(\hat{\sigma}_{t}^{2}\right)
, where
\hat{\sigma}_{t}^{2}
is the sample variance of the observations.
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. For information on the FIMLog-GARCH, see Feng et al. (2023).
In the current package version, standard errors of parameter estimates are
computed from the Hessian at the optimum of the log-likelihood using
hessian
. To ensure numerical stability and
applicability to a huge variety of differently scaled data, parametric
models are first fitted to data that is scaled to have sample variance
1. Parameter estimates and other quantities are then either
retransformed or recalculated afterwards for the original data.
For a conditional average Laplace distribution, an optimal model for each
distribution parameter P
from 1 to 5 is estimated (assuming that
P
is then fixed to the corresponding value). Afterwards, P
is then
estimated by selecting the estimated model among the five fitted models that
has the largest log-likelihood. The five models are, by default, fitted
simultaneously using parallel programming techniques (see also the arguments
parallel
and ncores
, which are only relevant for a conditional
average Laplace distribution). After the optimal model (including
the estimate of P
called \hat{P}
) has been determined, P=\hat{P}
is seen as fixed to obtain the standard errors via the Hessian matrix for the
estimates of the continuous parameters. A standard error for \hat{P}
is therefore
not obtained and the ones obtained for the remaining estimates do not account
for \hat{P}
.
As an alternative, a semiparametric extension of the pure models
in the conditional variance can be implemented. If use_nonpar = TRUE
,
meanspec
is omitted and before fitting a zero-mean model in the
conditional volatility following spec
, a smooth scale function,
i.e. a function representing the unconditional standard deviation over time,
is being estimated following the specifications in nonparspec
and
control_nonpar
. This preliminary step stabilizes the input
series rt
, as long-term changes in the unconditional variance
are being estimated and removed before the parametric step using
either tsmooth
or tsmoothlm
depending on whether spec
specifies a model with short memory
or with long memory. control_nonpar
can be adjusted following
the arguments of tsmooth
for short-memory
specifications of spec
, on the other hand changes to
arguments of tsmoothlm
can be passed to it
for long-memory specifications. These arguments specify settings
for the automated bandwidth selection algorithms implemented by these
two functions. By default, we use the settings
Mcf = "NP"
, InfR = "Opt"
,
bStart = 0.15
, bvc = "Y"
, cb = 0.05
,
and method = "lpr"
within the call to tsmooth
,
as well as pmin = 0
, pmax = 1
, qmin = 0
,
qmax = 1
, InfR = "Opt"
,
bStart = 0.15
, cb = 0.05
, and
method = "lpr"
for tsmoothlm
.
locpol_spec
passed to nonparspec
handles
more direct settings of the local polynomial smoother itself. See
the documentation for these functions to get a detailed overview
of these settings. Assume \{r_t\}
to be the observed series, where
t = 1, 2, \dots, n
,
then r_t^{*} = r_t - \bar{r}
, with \bar{r}
being the arithmetic
mean over the observed r_t
, is computed and subsequently
y_t = \ln\left[\left(r_t^{*}\right)^2\right]
. The subtraction of
\bar{r}
is necessary so that r_t^{*}
are all different from zero
almost surely. Once y_t
are available, its trend m(x_t)
,
with x_t
as the rescaled time on the interval [0, 1]
, is
being estimated using either tsmooth
or
tsmoothlm
and denoted here by
\hat{m}(x_t)
. Then from \hat{\xi}_t = y_t - \hat{m}(x_t)
obtain \hat{C} = -\ln\left\{\sum_{t=1}^{n}\exp\left(\hat{\xi}_t\right)\right\}
,
and obtain the estimated scale function as
\hat{s}(x_t)=\exp\left[\left(\hat{\mu}(x_t) - \hat{C}\right) / 2\right]
.
The stabilized / standardized version of the series \left\{r_t\right\}
is then \tilde{r}_t = r_t^{*} / \hat{s}(x_t)
, to which
a purely parametric volatility model following spec
is then
fitted. The estimated volatility at a given time point is then
the product of the estimate of the corresponding scale function value
and of the estimated conditional standard deviation (following the parametric
model part) for that same time point. See for example Feng et al. (2022)
or Letmathe et al. (2023) for more information on the semiparametric extension
of volatility models. Moreover, if bwidth
in the object passed to nonparspec
is not at its default NULL
but instead a numeric value between 0
and 0.5
,
the automated bandwidth selection is skipped and the provided bandwidth in bwidth
is used.
The order for manual settings of start_pars
, LB
and UB
is crucial. The correct order is: \mu
, \text{ar}_1,\dots,\text{ar}_{p^{*}}
,
\text{ma}_1,\dots,\text{ma}_{q^{*}}
,D
,\omega_{\sigma}
,
\phi_1,\dots,\phi_p
, \psi_1, \dots, \psi_{q-1}
, \kappa
, \gamma
,
d
, \text{shape parameter}
,
\text{skewness parameter}
for Type I models (see fEGarch_spec
). For Type
II models, we have \mu
, \text{ar}_1,\dots,\text{ar}_{p^{*}}
,
\text{ma}_1,\dots,\text{ma}_{q^{*}}
,D
,\omega_{\sigma}
,
\phi_1,\dots,\phi_p
, \psi_1, \dots, \psi_{q}
, d
,
shape parameter,
skewness parameter. Depending on the exact model specification,
parameters irrelevant for the specification at hand should be dropped
in start_pars
, LB
and UB
.
Value
An object of S4-class "fEGarch_fit_egarch"
"fEGarch_fit_loggarch"
is returned depending on the selected model type in the model
specification. It contains the following elements.
pars
:a named numeric vector with the parameter estimates.
se
:a named numeric vector with the obtained standard errors in accordance with the parameter estimates.
vcov_mat
:the variance-covariance matrix of the parameter estimates with named columns and rows.
rt
:the input object
rt
(or at least the training data, ifn_test
is greater than zero); ifrt
was a"zoo"
or"ts"
object, the formatting is kept.sigt
:the estimated conditional standard deviations (or for
use_nonpar = TRUE
the estimated total volatilities, i.e. scale function value times conditional standard deviation); ifrt
was a"zoo"
or"ts"
object, the formatting is also applied tosigt
.cmeans
:the estimated conditional means; if
rt
was a"zoo"
or"ts"
object, the formatting is also applied tocmeans
.etat
:the obtained residuals; if
rt
was a"zoo"
or"ts"
object, the formatting is also applied toetat
.orders
:a two-element numeric vector stating the considered model orders.
cond_dist
:a character value stating the conditional distribution considered in the model fitting.
long_memo
:a logical value stating whether or not long memory was considered in the model fitting.
llhood
:the log-likelihood value obtained at the optimal parameter combination.
inf_criteria
:a named two-element numeric vector with the corresponding AIC (first element) and BIC (second element) of the fitted parametric model part; for purely parametric models, these criteria are valid for the entire model; for semiparametric models, they are only valid for the parametric step and are not valid for the entire model.
powers
:a two-element numeric vector stating the powers considered for the asymmetry term (first element) and the magnitude term (second element); only exists, if a type I model was fitted.
modulus
:a two-element logical vector stating the modulus transformations (
TRUE
, otherwiseFALSE
) considered for the asymmetry term (first element) and the magnitude term (second element); only exists, if a type I model was fitted.meanspec
:the settings for the model in the conditional mean; is an object of class
"mean_spec"
that is identical to the object passed to the input argumentmeanspec
.test_obs
:the observations at the end up the input
rt
reserved for testing followingn_test
.scale_fun
:the estimated scale function values, if
use_nonpar = TRUE
, otherwiseNULL
; formatting ofrt
is reused.nonpar_model
:the estimation object returned by either
tsmooth
ortsmoothlm
foruse_nonpar = TRUE
.trunc
:the input argument
trunc
.
References
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., & Schulz, D. (2022). The smoots Package in R for Semiparametric Modeling of Trend Stationary Time Series. The R Journal, 14(1), 182-195. URL: https://journal.r-project.org/articles/RJ-2022-017/.
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.
Letmathe, S., Beran, J., & Feng, Y. (2023). An extended exponential SEMIFAR model with application in R. Communications in Statistics - Theory and Methods, 53(22), 7914–7926. DOI: 10.1080/03610926.2023.2276049.
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
window.zoo <- get("window.zoo", envir = asNamespace("zoo"))
rt <- window.zoo(SP500, end = "2002-12-31")
# Pure conditional volatility model
spec <- fEGarch_spec()
model <- fEGarch(spec, rt)
model
# Simultaneously model conditional mean
spec <- egarch_spec()
model2 <- fEGarch(spec, rt, meanspec = mean_spec(orders = c(1, 1)))
model2