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
|
spec |
a specification object of class |
n |
length of output series, an integer value. An integer value,
by default |
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)