GarchModelling {fSeries} | R Documentation |
A collection and description of functions to
simulate artificial ARCH time series processes,
to fit the parameters of univariate time series
to ARCH models, to perform a diagnostic analysis of
the fit, and to predict future values of the time
series.
The family of GARCH time series models includes the following processes:
garch | generalized AR conditional heteroskedastic models, |
aparch | asymmetric power GARCH models. |
Included functions are:
garchSpec | Specifies a GARCH model, |
garchSim | simulates a GARCH process, |
garchFit | fits parameters of a GARCH model, |
garchKappa | computes ARCH expectation value. |
Included methods are:
print | Prints results from a GARCH fit, |
summary | creates a summary report from a GARCH fit, |
plot | creates diagnostic plots for a fitted GARCH process, |
residuals | returns residuals for a GARCH model, |
fitted | returns fitted values for a GARCH model, |
predict | predicts mean and variance from a GARCH model. |
Note: This collection is still under a complete reconstruction.
garchSpec(model = list(omega = 1.0e-6, alpha = 0.1, beta = 0.8), presample = NULL, cond.dist = c("rnorm", "rged", "rstd", "rsnorm", "rsged", "rsstd"), rseed = NULL) ## S3 method for class 'garchSpec': print(x, ...) garchSim(model = list(omega = 1.0e-6, alpha = 0.1, beta = 0.8), n = 100, n.start = 100, presample = NULL, cond.dist = c("rnorm", "rged", "rstd", "rsnorm", "rsged", "rsstd"), rseed = NULL) garchFit(formula, data, init.rec = c("mci", "uev"), delta = 2, skew = 1, shape = 4, cond.dist = c("dnorm", "dsnorm", "dged", "dsged", "dstd", "dsstd"), include.mean = TRUE, include.delta = NULL, include.skew = NULL, include.shape = NULL, leverage = NULL, trace = TRUE, algorithm = c("sqp", "nlminb", "lbfgsb", "nlminb+nm", "lbfgsb+nm"), control = list(), title = NULL, description = NULL, ...) garchKappa(cond.dist = c("dnorm", "dged", "dstd", "dsnorm", "dsged", "dsstd"), gamma = 0, delta = 2, skew = NA, shape = NA) ## S3 method for class 'fGARCH': print(x, ...) ## S3 method for class 'fGARCH': plot(x, which = "ask", ...) ## S3 method for class 'fGARCH': summary(object, ...) ## S3 method for class 'fGARCH': residuals(object, ...) ## S3 method for class 'fGARCH': fitted(object, ...) ## S3 method for class 'fGARCH': predict(object, n.ahead = 10, trace = FALSE, ...)
algorithm |
[garchFit] - a string parameter that determines the algorithm used for maximum likelihood estimation. Allowed values are "sqp" ,
"nlminb" , and "bfgs" where the first is the default
setting.
|
cond.dist |
[garchSpec, garchSim, garchFit] - a character string naming the desired conditional distribution. Valid values are "dnorm" , "dged" , "dstd" ,
"dsnorm" , "dsged" , "dsstd" . The default value
is the normal distribution.
|
control |
[garchFit] - control parameters, the same as used for the functions from nlminb , and 'bfgs' and 'Nelder-Mead' from optim .
|
data |
an optional timeSeries or data frame object containing the variables
in the model. If not found in data , the variables are taken
from environment(formula) , typically the environment from which
armaFit is called. If data is an univariate series, then
the series is converted into a numeric vector and the name of the
response in the formula will be neglected.
|
delta, include.delta |
[garchFit][kappa] - the exponent delta of the variance recursion. By default,
this value will be fixed, otherwise the exponent will be estimated
together with the other model parameters if include.delta=FALSE .
|
description |
[garchFit] - a character string which allows for a brief description. |
formula |
[garchFit] - formula object describing the mean and variance equation of the ARMA-GARCH/APARCH model. A pure GARCH(1,1) model is selected when e.g. formula=~garch(1,1) . To specify for example an
ARMA(2,1)-APARCH(1,1) use formula = ~arma(2,1)+apaarch(1,1) .
|
gamma |
[kappa] - APARCH leverage parameter entering into the formula for calculating the expectation value. |
include.mean |
this flag determines if the parameter for the mean will be estimated
or not. If include.mean=TRUE this will be the case, otherwise
the parameter will be kept fixed durcing the process
of parameter optimization.
|
include.skew, include.shape |
this flag determines if the parameters for the skew and shape
of the conditional distribution will be estimated or not. If
include.skew=TRUE and/or include.shape=TRUE this will
be the case, otherwise the parameters will be kept fixed durcing
the process of parameter optimization.
|
init.rec |
[garchFit] - a character string indicating the method how to initialize the mean and varaince recursion relation. |
leverage |
a logical flag for APARCH models. Should the model be leveraged?
By default leverage=TRUE .
|
model |
[garchSpec, garchSim] - List of GARCH model parameters: omega - the constant coefficient of the variance equation; alpha - the vector of autoregressive coefficients; beta - the vector of variance coefficients; Further Optional Values: mu - the mean value; ar - the autoregressive ARMA coefficients; ma - the moving average ARMA coefficients; The default model is Bollerslev's GARCH(1,1) model. |
n |
[garchSim] - length of output series, an integer value. An integer value, by default n=100 .
|
n.ahead |
[predict] - number of steps to be forecasted, an integer value, by default 10. |
n.start |
[garchSim] - length of "burn-in" period, by default 100. |
object |
[predict][summary] - an object of class fGARCH as returned from the function
garchFit() .
|
presample |
a numeric three column matrix with start values for the series, innovations, and conditional variances. For an ARMA(m,n)-GARCH(p,q) process the number of rows must be at least max(m,n,p,q), longer presamples are cutted. |
rseed |
[garchSpec][garchSpec] - single integer argument, the seed for the intitialization of the random number generator for the innovations. |
skew, shape |
[garchFit][kappa] - skewness and shape parameter of the conditional distribution. |
title |
[garchFit][predict] - a character string which allows for a project title. |
trace |
[garchFit] - a logical flag. Should the optimization process of fitting the model parameters be printed? By default trace=TRUE .[predict] - a logical flag. Should the prediction process be printed? By default trace=FALSE .
|
which |
[plot] - if which is set to "ask" the function will
interactively ask which plot should be displayed. This is
the default value and then those plots will
be displayed for which the elements in the logical vector
which ar set to TRUE ; by default all four
elements are set to "all" .
|
x |
[print][plot] - either an object of class garchSpec for printing specification
structures, or an object of class fGARCH for printing fitted
GARCH/APARCH models or plotting results from the diagnostic analysis
of fitted models.
|
... |
additional arguments to be passed. |
Parameter Estimation:
garchFit
uses the nlminb()
optimizer to find the maximum
likelihood estimates.
Residuals Methods:
The method for the computation of the residuals may have an additional
argument named standardize
which allows to standardize the
residuals by the conditional variances.
garchSpec
returns a S4 object of class fGARCH
with the following slots:
@call |
the call of the garch function.
|
@formula |
a list with two formula entries for the mean and variance equation. |
@model |
a list with the model parameters. |
@presample |
a numeric matrix with presample values. |
@distribution |
a character string with the name of the conditional distribution. |
@call |
the call of the garch function.
|
@formula |
a list with two formula entries, one for the mean and the other one for the variance equation. |
@method |
a string denoting the optimization method, by default the returneds string is "Max Log-Likelihood Estimation". |
@data |
a list with one entry named x , containing the data of
the time series to be estimated, the same as given by the
input argument series .
|
@fit |
a list with the results from the parameter estimation. The entries of the list depend on the selected algorithm, see below. |
@residuals |
a numeric vector with the residual values. |
@fitted.values |
a numeric vector with the fitted values. |
@cvariances |
a numeric vector with the conditional variances. |
@title |
a title string. |
@description |
a string with a brief description. |
$par |
The best set of parameters found. |
$value |
The value of the max log likelihood function corresponding to
the optimal values of $par .
|
$counts |
A two-element integer vector giving the number of calls to 'fn' and 'gr' respectively. This excludes those calls needed to compute the Hessian, if requested, and any calls to 'fn' to compute a finite-difference approximation to the gradient. |
$convergence |
An integer code. '0' indicates successful convergence. Values
different from zero indicate an error code. For details, please
consult the help page of optim .
|
message |
|
hessian |
Only if control list argument hessian is true. A
symmetric matrix giving an estimate of the Hessian at the
solution found. Note that this is the Hessian of the
unconstrained problem even if the box constraints are active.
|
$par |
The best set of parameters found. |
$value |
The value of the max log likelihood function corresponding to
the optimal values of $par .
|
What's next?
The software will be extended to further GARCH models including
integrated GARCH models, EGARCH models, GARCH-in-Mean models as
well as fractionally integrated GARCH models. In the next version
also the fixing of individual ARMA-GARCH/APARCH coefficients will
become available. Furthermore, we will provide additional conditional
distribution functions including for example members from the family
of the hyperbolic distribution. Concerning performance analysis we
plan to offer in addition several performance measures for the
residuals like Theil's inequality coefficient, and Mincer and
Zarnowitz's R2 coefficient. Concerning hypothesis testing we will
add some specific tests including Engle's LM ARCH test to test
the presence of ARCH effects, Engle and Ng's test to investigate
possible misspecifications of the conditional variance equation,
and Nyblom's test to check the constancy of model parameters over
time.
Diethelm Wuertz for the Rmetrics R-port,
R Core Team for the 'optim' R-port,
Douglas Bates and Deepayan Sarkar for the 'nlminb' R-port,
Bell-Labs for the underlying PORT Library,
Ladislav Luksan for the underlying SQP Routine,
Zhu, Byrd, Lu-Chen and Nocedal for the underlying L-BFGS-B Routine.
ATT (1984); PORT Library Documentation, http://netlib.bell-labs.com/netlib/port/.
Bera A.K., Higgins M.L. (1993); ARCH Models: Properties, Estimation and Testing, J. Economic Surveys 7, 305–362.
Bollerslev T. (1986); Generalized Autoregressive Conditional Heteroscedasticity, Journal of Econometrics 31, 307–327.
Byrd R.H., Lu P., Nocedal J., Zhu C. (1995); A Limited Memory Algorithm for Bound Constrained Optimization, SIAM Journal of Scientific Computing 16, 1190–1208.
Engle R.F. (1982); Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation, Econometrica 50, 987–1008.
Nash J.C. (1990); Compact Numerical Methods for Computers, Linear Algebra and Function Minimisation, Adam Hilger.
Nelder J.A., Mead R. (1965); A Simplex Algorithm for Function Minimization, Computer Journal 7, 308–313.
Nocedal J., Wright S.J. (1999); Numerical Optimization, Springer, New York.
## SOURCE("fSeries1.4C-GarchModelling") # garchSpec - # garchSim - # garchFit - # For examples we refer to: demo/xmpDWChapter34.R ...