g13 Chapter Contents
g13 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_tsa_auto_corr_part (g13acc)

## 1  Purpose

nag_tsa_auto_corr_part (g13acc) calculates partial autocorrelation coefficients given a set of autocorrelation coefficients. It also calculates the predictor error variance ratios for increasing order of finite lag autoregressive predictor, and the autoregressive parameters associated with the predictor of maximum order.

## 2  Specification

 #include #include
 void nag_tsa_auto_corr_part (const double r[], Integer nk, Integer nl, double p[], double v[], double ar[], Integer *nvl, NagError *fail)

## 3  Description

The data consist of values of autocorrelation coefficients ${r}_{1},{r}_{2},\dots ,{r}_{K}$, relating to lags $1,2,\dots ,K$. These will generally (but not necessarily) be sample values such as may be obtained from a time series ${x}_{t}$ using nag_tsa_auto_corr (g13abc).
The partial autocorrelation coefficient at lag $l$ may be identified with the parameter ${p}_{l,l}$ in the autoregression
 $xt = cl + pl,1 xt-1 + pl,2 xt-2 +⋯+ pl,l xt-l + el,t$
where ${e}_{l,t}$ is the predictor error.
The first subscript $l$ of ${p}_{l,l}$ and ${e}_{l,t}$ emphasizes the fact that the parameters will in general alter as further terms are introduced into the equation (i.e., as $l$ is increased).
The parameters are determined from the autocorrelation coefficients by the Yule–Walker equations
 $ri = pl,1 ri-1 + pl,2 ri-2 +⋯+ pl,l ri-l , i=1,2,…,l$
taking ${r}_{j}={r}_{\left|j\right|}$ when $j<0$, and ${r}_{0}=1$.
The predictor error variance ratio ${v}_{l}=\mathrm{var}\left({e}_{l,t}\right)/\mathrm{var}\left({x}_{t}\right)$ is defined by
 $vl = 1- pl,1 r1 - pl,2 r2 -⋯- pl,l rl .$
The above sets of equations are solved by a recursive method (the Durbin–Levinson algorithm). The recursive cycle applied for $l=1,2,\dots ,\left(L-1\right)$, where $L$ is the number of partial autocorrelation coefficients required, is initialized by setting ${p}_{1,1}={r}_{1}$ and ${v}_{1}=1-{r}_{1}^{2}$.
Then
 $p l + 1 , l + 1 = r l + 1 - p l , 1 r l - p l , 2 r l - 1 - ⋯ - p l , l r 1 / v l p l + 1 , j = p l , j - p l + 1 , l + 1 p l , l + 1 - j , j=1,2,…,l v l + 1 = v l 1 - p l + 1 , l + 1 1 + p l + 1 , l + 1 .$
If the condition $\left|{p}_{l,l}\right|\ge 1$ occurs, say when $l={l}_{0}$, it indicates that the supplied autocorrelation coefficients do not form a positive definite sequence (see Hannan (1960)), and the recursion is not continued. The autoregressive parameters are overwritten at each recursive step, so that upon completion the only available values are ${p}_{Lj}$, for $\mathit{j}=1,2,\dots ,L$, or ${p}_{{l}_{0}-1,j}$ if the recursion has been prematurely halted.

## 4  References

Box G E P and Jenkins G M (1976) Time Series Analysis: Forecasting and Control (Revised Edition) Holden–Day
Durbin J (1960) The fitting of time series models Rev. Inst. Internat. Stat. 28 233
Hannan E J (1960) Time Series Analysis Methuen

## 5  Arguments

1:     r[nk]const doubleInput
On entry: the autocorrelation coefficient relating to lag $\mathit{k}$, for $\mathit{k}=1,2,\dots ,K$.
2:     nkIntegerInput
On entry: $K$, the number of lags. The lags range from $1$ to $K$ and do not include zero.
Constraint: ${\mathbf{nk}}>0$.
3:     nlIntegerInput
On entry: $L$, the number of partial autocorrelation coefficients required.
Constraint: $0<{\mathbf{nl}}\le {\mathbf{nk}}$.
4:     p[nl]doubleOutput
On exit: ${\mathbf{p}}\left[\mathit{l}-1\right]$ contains the partial autocorrelation coefficient at lag $\mathit{l}$, ${p}_{\mathit{l},\mathit{l}}$, for $\mathit{l}=1,2,\dots ,{\mathbf{nvl}}$.
5:     v[nl]doubleOutput
On exit: ${\mathbf{v}}\left[\mathit{l}-1\right]$ contains the predictor error variance ratio ${v}_{\mathit{l}}$, for $\mathit{l}=1,2,\dots ,{\mathbf{nvl}}$.
6:     ar[nl]doubleOutput
On exit: the autoregressive parameters of maximum order, i.e., ${p}_{L\mathit{j}}$ if ${\mathbf{fail}}\mathbf{.}\mathbf{code}=$ NE_NOERROR, or ${p}_{{l}_{0}-1,\mathit{j}}$ if ${\mathbf{fail}}\mathbf{.}\mathbf{code}=$ NE_CORR_NOT_POS_DEF, for $\mathit{j}=1,2,\dots ,{\mathbf{nvl}}$.
7:     nvlInteger *Output
On exit: the number of valid values in each of p, v and ar. Thus in the case of premature termination at iteration ${l}_{0}$ (see Section 3), nvl is returned as ${l}_{0}-1$.
8:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

NE_CORR_NOT_POS_DEF
The autocorrelation coefficients do not form a positive definite sequence.
NE_INT
On entry, ${\mathbf{nk}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{nk}}>0$.
On entry, ${\mathbf{nl}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{nl}}>0$.
NE_INT_2
On entry, ${\mathbf{nk}}=⟨\mathit{\text{value}}⟩$ and ${\mathbf{nl}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{nk}}\ge {\mathbf{nl}}$.

## 7  Accuracy

The computations are believed to be stable.

## 8  Parallelism and Performance

Not applicable.

The time taken by nag_tsa_auto_corr_part (g13acc) is proportional to ${\left({\mathbf{nvl}}\right)}^{2}$.

## 10  Example

This example uses an input series of $10$ sample autocorrelation coefficients derived from the original series of sunspot numbers generated by the nag_tsa_auto_corr (g13abc) example program. The results show five values of each of the three output arrays: partial autocorrelation coefficients, predictor error variance ratios and autoregressive parameters. All of these were valid.

### 10.1  Program Text

Program Text (g13acce.c)

### 10.2  Program Data

Program Data (g13acce.d)

### 10.3  Program Results

Program Results (g13acce.r)

This plot shows the partial autocorrelations for all possible lag values. Reference lines are given at $±{z}_{0.975}/\sqrt{n}$.