Quasi Maximum Likelihood (ML) estimation of a univariate multiplicative TV(s)-GARCH(p,q,r)-X model, where s indicates the number and the shape of the transition functions, r is the asymmetry order, p is the ARCH order, q is the GARCH order, and 'X' indicates that covariates can be included. Any transition variable, deterministic or stochastic, can be used to drive the transitions between the variance states. The TV long-term component introduces non-stationarity in the variance process, where the GARCH-X short-term component describes conditional heteroscedasticity. Maximization by parts leads to consistent and asymptotically normal estimates.
tvgarch(y, order.g = 1, order.h = c(1,1,0), xtv = NULL, xreg = NULL,
initial.values = list(), opt = 2, upper.speed = NULL, tvgarch = FALSE,
turbo = FALSE, trace = FALSE)
An object of class 'tvgarch'.
numeric vector
, time series or zoo
object.
integer
vector
of length s indicating the number of
locations in each transition function of the TV component. Indicates whether a
stationary GARCH or a nonstationary GARCH, i.e., TV-GARCH, shall be estimated.
integer
vector
of the form c(p,q,r). The first
entry controls the GARCH order, the second the ARCH order and the third the
asymmetry order of the GARCH-X component.
a list containing the initial parameter values passed on
to the optimisation routines (constrOptim for the TV component and
nlminb for the GARCH-X component). If list(), the default, then the
values are chosen automatically. TV component: intercept.g
- NULL
or numeric, size
- NULL
or numeric vector
containing the
size initial coefficients, speed
- NULL
or numeric vector
containing the speed initial coefficients, location
- NULL
or
numeric vector
containing the location initial coefficients. GARCH-X or
GARCH-X component of TV-GARCH-X: intercept.h
- numeric, arch
-
NULL
or numeric vector
containing the ARCH initial coefficients,
garch
- NULL
or numeric vector
containing the GARCH-type
initial coefficients, asym
- NULL
or numeric vector
containing the assymetry-type initial coefficients, and par.xreg
-
NULL
or numeric vector
containing the X-type initial
coefficients.
NULL
or numeric vector
, time series or zoo object to
include as the transition variable in the TV component. If NULL
, calendar
time, scaled between 0 and 1, is used as the transition variable. Not relevant
for stationary GARCH.
numeric vector
, time series or zoo object to include as
covariates in the GARCH-X component.
integer
indicating whether the speed parameter in the TV
component should be scaled. If 0, no scaling; if 1, speed
/sd(xtv
);
if 2, exp(speed
). Only relevant for TV-GARCH models.
NULL
or numeric scalar
that sets
the upper bound for speed
in each transition function. If NULL
,
the default, the upper bound is 10000 for all transition functions.
If numeric scalar
, upper.speed
is used for all transition
functions.
logical
. If TRUE
, the full parameter set
is estimated in one final step as well as the standard errors. If FALSE
(default), estimates from last iteration are reported instead.
logical
. If FALSE
(default), then the coefficient
variance-covariance is computed during estimation, and the fitted values and
residuals are attached to the returned object. If TRUE
, then these
operations are skipped, and hence estimation is faster. Note, however, that if
turbo is set to TRUE
, then the coefficient-covariance, fitted values and
residuals can still be extracted subsequent to estimation with vcov.tvgarch(),
fitted.tvgarch() and residuals.tvgarch(), respectively.
logical
. If TRUE
all output is printed when
estimating a TV-GARCH.
Susana Campos-Martins
Cristina Amado and Timo Terasvirta (2013) Modelling volatility by variance decomposition, Journal of Econometrics 175, 142-153.
Cristina Amado and Timo Terasvirta (2014) Modelling changes in the unconditional variance of long stock return series, Journal of Empirical Finance 25, 15-35.
Susana Campos-Martins and Genaro Sucarrat (2024) Modeling Nonstationary Financial Volatility with the R Package tvgarch, Journal of Statistical Software 108, 1-38.
garchx
,
tvgarchSim
,
nlminb
,
constrOptim
set.seed(123)
## Simulate from a TV(1)-GARCH(1,1) model (default):
ySim <- tvgarchSim(n = 1500)
## Estimate a TV(1)-GARCH(1,1) model:
yEst <- tvgarch(y = ySim)
## Print estimation results:
print(yEst)
## Extract coefficients:
coef(yEst)
## Plot conditional volatilities:
plot(yEst)
## Extract log-likelihood:
logLik(yEst)
## Extract and store standardised residuals:
etaEst <- residuals(yEst)
## Generate predictions:
predict(yEst)
Run the code above in your browser using DataLab