R: Fit ARMA Models to Time Series

arma {tseries} | R Documentation

## Fit ARMA Models to Time Series

### Description

Fit an ARMA model to a univariate time series by conditional least squares. For exact maximum likelihood estimation see `arima0`.

### Usage

    arma(x, order = c(1, 1), lag = NULL, coef = NULL,
         include.intercept = TRUE, series = NULL, qr.tol = 1e-07, ...)

### Arguments

`x` | a numeric vector or time series.
`order` | a two dimensional integer vector giving the orders of the model to fit. `order[1]` corresponds to the AR part and `order[2]` to the MA part.
`lag` | a list with components `ar` and `ma`. Each component is an integer vector, specifying the AR and MA lags that are included in the model. If both, `order` and `lag`, are given, only the specification from `lag` is used.
`coef` | If given this numeric vector is used as the initial estimate of the ARMA coefficients. The preliminary estimator suggested in Hannan and Rissanen (1982) is used for the default initialization.
`include.intercept` | Should the model contain an intercept?
`series` | name for the series. Defaults to `deparse(substitute(x))`.
`qr.tol` | the `tol` argument for `qr` when computing the asymptotic standard errors of `coef`.
`...` | additional arguments for `optim` when fitting the model.

### Details

The following parametrization is used for the ARMA(p,q) model:

y[t] = a[0] + a[1]y[t-1] + … + a[p]y[t-p] + b[1]e[t-1] + … + b[q]e[t-q] + e[t],

where a[0] is set to zero if no intercept is included. By using the argument `lag`, it is possible to fit a parsimonious submodel by setting arbitrary a[i] and b[i] to zero.

`arma` uses `optim` to minimize the conditional sum-of-squared errors. The gradient is computed, if it is needed, by a finite-difference approximation. Default initialization is done by fitting a pure high-order AR model (see `ar.ols`). The estimated residuals are then used for computing a least squares estimator of the full ARMA model. See Hannan and Rissanen (1982) for details.

### Value

A list of class `"arma"` with the following elements:

`lag` | the lag specification of the fitted model.
`coef` | estimated ARMA coefficients for the fitted model.
`css` | the conditional sum-of-squared errors.
`n.used` | the number of observations of `x`.
`residuals` | the series of residuals.
`fitted.values` | the fitted series.
`series` | the name of the series `x`.
`frequency` | the frequency of the series `x`.
`call` | the call of the `arma` function.
`vcov` | estimate of the asymptotic-theory covariance matrix for the coefficient estimates.
`convergence` | The `convergence` integer code from `optim`.
`include.intercept` | Does the model contain an intercept?

### Author(s)

A. Trapletti

### References

E. J. Hannan and J. Rissanen (1982): Recursive Estimation of Mixed Autoregressive-Moving Average Order. Biometrika 69, 81–94.

### See Also

`summary.arma` for summarizing ARMA model fits; `arma-methods` for further methods; `arima0`, `ar`.

### Examples

    data(tcm)
    r <- diff(tcm10y)
    summary(r.arma <- arma(r, order = c(1, 0)))
    summary(r.arma <- arma(r, order = c(2, 0)))
    summary(r.arma <- arma(r, order = c(0, 1)))
    summary(r.arma <- arma(r, order = c(0, 2)))
    summary(r.arma <- arma(r, order = c(1, 1)))
    plot(r.arma)

    data(nino)
    s <- nino3.4
    summary(s.arma <- arma(s, order=c(20,0)))
    summary(s.arma
             <- arma(s, lag=list(ar=c(1,3,7,10,12,13,16,17,19),ma=NULL)))
    acf(residuals(s.arma), na.action=na.remove)
    pacf(residuals(s.arma), na.action=na.remove)
    summary(s.arma
             <- arma(s, lag=list(ar=c(1,3,7,10,12,13,16,17,19),ma=12)))
    summary(s.arma
             <- arma(s, lag=list(ar=c(1,3,7,10,12,13,16,17),ma=12)))
    plot(s.arma)

[Package tseries version 0.10-47 Index]