# ARMAacf

##### Compute Theoretical ACF for an ARMA Process

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

- Keywords
- ts

##### 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, \dots, \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

`library(stats)`

```
# NOT RUN {
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))
# }
```

*Documentation reproduced from package stats, version 3.6.2, License: Part of R 3.6.2*