# garch

##### 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.

- Keywords
- ts

##### Usage

```
garch (x, order = c(1, 1), coef = NULL, itmax = 200, eps = NULL,
grad = c("analytical","numerical"), series = NULL, trace = TRUE, ...)
predict (object, newdata, genuine = FALSE)
coef (object)
residuals (object)
fitted (object)
print (object, digits = max(3,.Options$digits-3))
summary (object)
plot (object, ask = interactive())
print.summary (object, digits = max(3,.Options$digits-3),
signif.stars = .Options$show.signif.stars, ...)
```

##### Arguments

- x
- a numeric vector or time series.
- order
- a two dimensional integer vector giving the orders of the
model to fit.
`order[2]`

corresponds to the ARCH part and`order[1]`

to the GARCH part. - coef
- 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 t
- itmax
- gives the maximum number of log-likelihood function
evaluations
`itmax`

and the maximum number of iterations`2*itmax`

the optimizer is allowed to compute. - eps
- defines the absolute (
`max(1e-20,eps^2)`

) and relative function convergence tolerance (`max(1e-10,eps^(2/3))`

), the coefficient-convergence tolerance (`sqrt(eps)`

), and the false convergence tolerance ( - grad
- indicates if the analytical gradient or a numerical approximation is used for the optimization.
- series
- name for the series. Defaults to
`deparse(substitute(x))`

. - trace
- trace optimizer output?
- object
- a fit from
`garch`

. - newdata
- a numeric vector or time series to compute GARCH
predictons. Defaults to
`eval(parse(text=object$series))`

. - genuine
- a logical indicating whether a genuine prediction should be made, i.e., a prediction for which there is no target observation available.
- digits, signif.stars
- see
`print.coefmat`

. - ask
- Should the
`plot`

method work interactively? See`interactive`

. - ...
- either additional arguments for
`qr`

when computing the asymptotic standard errors of`coef`

(`garch`

), or additional arguments for`print`

##### Details

`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.

`predict`

returns +/- the conditional standard deviation
predictions from a fitted GARCH model.

`coef`

returns the coefficient estimates.

`residuals`

returns the GARCH residuals, i.e., the time series
used to fit the model divided by the computed conditional standard
deviation predictions for this series. Under the assumption of
conditional normality the residual series should be i.i.d. standard
normal.

`fitted`

returns +/- the conditional standard deviation
predictions for the series which has been used to fit the model.

`print`

, `summary`

, `plot`

, and `print.summary`

provide the usual generic functions for fitted GARCH
models. `summary`

computes the asymptotic standard errors of the
coefficient estimates from an outer-product approximation of the
Hessian evaluated at the estimates, see Bollerslev (1986). It furthermore
tests the residuals for normality and remaining ARCH effects, see
`jarque.bera.test`

and `Box.test`

.
`plot`

graphically investigates normality and remaining ARCH
effects for the residuals.

##### Value

- For
`garch`

and its methods`print`

and`plot`

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 `x`

.residuals the series of residuals. fitted.values the bivariate series of conditional standard deviation predictions for `x`

.series the name of the series `x`

.frequency the frequency of the series `x`

.call the call of the `garch`

function.asy.se.coef the asymptotic-theory standard errors of the coefficient estimates. - For
`predict`

a bivariate time series (two-column matrix) of predictions. For`coef`

, a numeric vector, for`residuals`

and`fitted`

a univariate (vector) and a bivariate time series (two-column matrix), respectively.For

`summary`

and`print.summary`

a list of class`"summary.garch"`

.

##### References

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 Trans.
Math. 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.

##### Examples

```
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 = 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
```

*Documentation reproduced from package tseries, version 0.7-4, License: GPL (see file COPYING), except for ./src/muin2ser.f and ./misc which are free for non-commercial purposes. See file README for details.*