GarchModelling {fSeries}R Documentation

Univariate GARCH Time Series Modelling

Description

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.

Usage

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, ...)

Arguments

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.

Details

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.

Value

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.

Note

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.

Author(s)

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.

References

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.

Examples

## SOURCE("fSeries1.4C-GarchModelling")

    # garchSpec -
    # garchSim - 
    # garchFit -

    # For examples we refer to: demo/xmpDWChapter34.R ...
    

[Package fSeries version 240.10068 Index]