Fit GARCH Models to Time Series
Fit a Generalized Autoregressive Conditional Heteroscedastic GARCH(p, q) time series model to the data by computing the maximum-likelihood estimates of the conditionally normal model.
garch(x, order = c(1, 1), series = NULL, control = garch.control(...), ...) garch.control(maxiter = 200, trace = TRUE, start = NULL, grad = c("analytical","numerical"), abstol = max(1e-20, .Machine$double.eps^2), reltol = max(1e-10, .Machine$double.eps^(2/3)), xtol = sqrt(.Machine$double.eps), falsetol = 1e2 * .Machine$double.eps, ...)
x |
a numeric vector or time series. |
order |
a two dimensional integer vector giving the orders of the
model to fit. |
series |
name for the series. Defaults to
|
control |
a list of control parameters as set up by |
maxiter |
gives the maximum number of log-likelihood function
evaluations |
trace |
logical. Trace optimizer output? |
start |
If given this numeric vector is used as the initial estimate
of the GARCH coefficients. Default initialization is to set the
GARCH parameters to slightly positive values and to initialize the
intercept such that the unconditional variance of the initial GARCH
is equal to the variance of |
grad |
character indicating whether analytical gradients or a numerical approximation is used for the optimization. |
abstol |
absolute function convergence tolerance. |
reltol |
relative function convergence tolerance. |
xtol |
coefficient-convergence tolerance. |
falsetol |
false convergence tolerance. |
... |
additional arguments for |
garch
uses a Quasi-Newton optimizer to find the maximum
likelihood estimates of the conditionally normal model. The first
max(p, q) values are assumed to be fixed. The optimizer uses a hessian
approximation computed from the BFGS update. Only a Cholesky factor
of the Hessian approximation is stored. For more details see Dennis
et al. (1981), Dennis and Mei (1979), Dennis and More (1977), and
Goldfarb (1976). The gradient is either computed analytically or
using a numerical approximation.
A list of class "garch"
with the following elements:
order |
the order of the fitted model. |
coef |
estimated GARCH coefficients for the fitted model. |
n.likeli |
the negative log-likelihood function evaluated at the coefficient estimates (apart from some constant). |
n.used |
the number of observations of |
residuals |
the series of residuals. |
fitted.values |
the bivariate series of conditional standard
deviation predictions for |
series |
the name of the series |
frequency |
the frequency of the series |
call |
the call of the |
vcov |
outer product of gradient estimate of the asymptotic-theory covariance matrix for the coefficient estimates. |
A. Trapletti, the whole GARCH part; D. M. Gay, the FORTRAN optimizer
A. K. Bera and M. L. Higgins (1993): ARCH Models: Properties, Estimation and Testing. J. Economic Surveys 7 305–362.
T. Bollerslev (1986): Generalized Autoregressive Conditional Heteroscedasticity. Journal of Econometrics 31, 307–327.
R. F. Engle (1982): Autoregressive Conditional Heteroscedasticity with Estimates of the Variance of United Kingdom Inflation. Econometrica 50, 987–1008.
J. E. Dennis, D. M. Gay, and R. E. Welsch (1981): Algorithm 573 — An Adaptive Nonlinear Least-Squares Algorithm. ACM Transactions on Mathematical Software 7, 369–383.
J. E. Dennis and H. H. W. Mei (1979): Two New Unconstrained Optimization Algorithms which use Function and Gradient Values. J. Optim. Theory Applic. 28, 453–482.
J. E. Dennis and J. J. More (1977): Quasi-Newton Methods, Motivation and Theory. SIAM Rev. 19, 46–89.
D. Goldfarb (1976): Factorized Variable Metric Methods for Unconstrained Optimization. Math. Comput. 30, 796–811.
summary.garch
for summarizing GARCH model fits;
garch-methods
for further methods.
n <- 1100 a <- c(0.1, 0.5, 0.2) # ARCH(2) coefficients e <- rnorm(n) x <- double(n) x[1:2] <- rnorm(2, sd = sqrt(a[1]/(1.0-a[2]-a[3]))) for(i in 3:n) # Generate ARCH(2) process { x[i] <- e[i]*sqrt(a[1]+a[2]*x[i-1]^2+a[3]*x[i-2]^2) } x <- ts(x[101:1100]) x.arch <- garch(x, order = c(0,2)) # Fit ARCH(2) summary(x.arch) # Diagnostic tests plot(x.arch) data(EuStockMarkets) dax <- diff(log(EuStockMarkets))[,"DAX"] dax.garch <- garch(dax) # Fit a GARCH(1,1) to DAX returns summary(dax.garch) # ARCH effects are filtered. However, plot(dax.garch) # conditional normality seems to be violated
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.