| garchSim {fGarch} | R Documentation |
Simulates a univariate GARCH/APARCH time series model.
garchSim(spec = garchSpec(), n = 100, n.start = 100, extended = FALSE)
extended |
logical parameter if the output series should be a 3 columns
timeSeries object with garch, sigma and
eps data (extended = TRUE) or a univariate GARCH\APARCH time
series (extended = FALSE
|
spec |
a specification object of class "fGARCHSPEC" as
returned by the function garchSpec. The model parameters
are taken from the @model slot, a list with the
following entries:omega - the constant coefficient of the variance equation,
by default 1e-6; alpha - the value or vector of autoregressive coefficients,
by default 0.1, specifying a model of order 1; beta - the value or vector of variance coefficients,
by default 0.8, specifying a model of order 1;
The optional values for the linear part are: mu - the mean value, by default 0; ar - the autoregressive ARMA coefficients, by default 0; ma - the moving average ARMA coefficients, by default 0.
The optional parameters for the conditional distributions are: skew - the skewness parameter (also named xi), by default
0.9, effective only for the "dsnorm", the "dsged",
and the "dsstd" skewed conditional distributions; shape = the shape parameter (also named nu), by default 2
for the "dged" and "dsged", and by default 4
for the "dstd" and "dsstd" conditional
distributions.See also below for further details. |
n |
length of output series, an integer value. An integer value,
by default n=100.
|
n.start |
length of "burn-in" period, by default 100. |
The function garchSim simulates an univariate GARCH or
APARCH time series process as specified by the argument model.
The model is an object of class "fGARCHSPEC" as
returned by the function garchSpec. The returned model
specification comes comes with a slot @model which is
a list of just the numeric parameter entries. These are recognized
and extracted for use by the function garchSim.
By default the series will be returned as an object of class
"ts" or as a "numeric" vector. Having time/date
positions, e.g. from an empirical process the numeric vector
can be easily transformed into other time series objects like
"timeSeries" or "zoo". So one can estimate the
parameters of a GARCH process from empirical data using the
function garchFit and simulate than statistically
equivalent GARCH processes with the same set of model parameters
using the function garchSim.
The third entry in the argument returnClass="mts" allows
to return a trivariate time series, where the first column contains
the simulated "garch" process, the second column the conditional
standard deviations "h", and the last column the innovations
named "eps".
Note, the default model specifies Bollerslev's GARCH(1,1) model with normal distributed innovations.
The function garchSim returns an objects of class
"timeSeries" attributed by a list with entry
$garchSpec giving the GARCH specification structure as
returned by the function garchSpec and with information on
conditional standard deviations and innovations. See details above.
Diethelm Wuertz for the Rmetrics R-port.
## garchSpec -
spec = garchSpec()
spec
## garchSim -
# Simulate a "timeSeries" object:
x = garchSim(spec, n = 50)
class(x)
print(x)
## More simulations ...
# Default GARCH(1,1) - uses default parameter settings
spec = garchSpec(model = list())
garchSim(spec, n = 10)
# ARCH(2) - use default omega and specify alpha, set beta=0!
spec = garchSpec(model = list(alpha = c(0.2, 0.4), beta = 0))
garchSim(spec, n = 10)
# AR(1)-ARCH(2) - use default mu, omega
spec = garchSpec(model = list(ar = 0.5, alpha = c(0.3, 0.4), beta = 0))
garchSim(spec, n = 10)
# AR([1,5])-GARCH(1,1) - use default garch values and subset ar[.]
spec = garchSpec(model = list(mu = 0.001, ar = c(0.5,0,0,0,0.1)))
garchSim(spec, n = 10)
# ARMA(1,2)-GARCH(1,1) - use default garch values
spec = garchSpec(model = list(ar = 0.5, ma = c(0.3, -0.3)))
garchSim(spec, n = 10)
# GARCH(1,1) - use default omega and specify alpha/beta
spec = garchSpec(model = list(alpha = 0.2, beta = 0.7))
garchSim(spec, n = 10)
# GARCH(1,1) - specify omega/alpha/beta
spec = garchSpec(model = list(omega = 1e-6, alpha = 0.1, beta = 0.8))
garchSim(spec, n = 10)
# GARCH(1,2) - use default omega and specify alpha[1]/beta[2]
spec = garchSpec(model = list(alpha = 0.1, beta = c(0.4, 0.4)))
garchSim(spec, n = 10)
# GARCH(2,1) - use default omega and specify alpha[2]/beta[1]
spec = garchSpec(model = list(alpha = c(0.12, 0.04), beta = 0.08))
garchSim(spec, n = 10)
# snorm-ARCH(1) - use defaults with skew Normal
spec = garchSpec(model = list(beta = 0, skew = 0.8), cond.dist = "snorm")
garchSim(spec, n = 10)
# sged-GARCH(1,1) - using defaults with skew GED
model = garchSpec(model = list(skew = 0.93, shape = 3), cond.dist = "sged")
garchSim(model, n = 10)
# Taylor Schwert GARCH(1,1) - this belongs to the family of APARCH Models
spec = garchSpec(model = list(delta = 1))
garchSim(spec, n = 10)
# AR(1)-t-APARCH(2, 1) - a little bit more complex specification ...
spec = garchSpec(model = list(mu = 1.0e-4, ar = 0.5, omega = 1.0e-6,
alpha = c(0.10, 0.05), gamma = c(0, 0), beta = 0.8, delta = 1.8,
shape = 4, skew = 0.85), cond.dist = "sstd")
garchSim(spec, n = 10)