R: Compute Theoretical ACF for an ARMA Process

ARMAacf {stats} | R Documentation

## Compute Theoretical ACF for an ARMA Process

### Description

Compute the theoretical autocorrelation function or partial autocorrelation function for an ARMA process.

### Usage

    ARMAacf(ar = numeric(), ma = numeric(), lag.max = r, pacf = FALSE)

### Arguments

`ar` | numeric vector of AR coefficients
`ma` | numeric vector of MA coefficients
`lag.max` | integer. Maximum lag required. Defaults to `max(p, q+1)`, where `p, q` are the numbers of AR and MA terms respectively.
`pacf` | logical. Should the partial autocorrelations be returned?

### Details

The methods used follow Brockwell & Davis (1991, section 3.3). Their equations (3.3.8) are solved for the autocovariances at lags 0, …, max(p, q+1), and the remaining autocorrelations are given by a recursive filter.

### Value

A vector of (partial) autocorrelations, named by the lags.

### References

Brockwell, P. J. and Davis, R. A. (1991) Time Series: Theory and Methods, Second Edition. Springer.

### See Also

`arima`, `ARMAtoMA`, `acf2AR` for inverting part of `ARMAacf`; further `filter`.

### Examples

    ARMAacf(c(1.0, -0.25), 1.0, lag.max = 10)

    ## Example from Brockwell & Davis (1991, pp.92-4)
    ## answer: 2^(-n) * (32/3 + 8 * n) /(32/3)
    n <- 1:10
    a.n <- 2^(-n) * (32/3 + 8 * n) /(32/3)
    (A.n <- ARMAacf(c(1.0, -0.25), 1.0, lag.max = 10))
    stopifnot(all.equal(unname(A.n), c(1, a.n)))

    ARMAacf(c(1.0, -0.25), 1.0, lag.max = 10, pacf = TRUE)
    zapsmall(ARMAacf(c(1.0, -0.25), lag.max = 10, pacf = TRUE))

    ## Cov-Matrix of length-7 sub-sample of AR(1) example:
    toeplitz(ARMAacf(0.8, lag.max = 7))

[Package stats version 3.5.1 Index]