g13ad calculates preliminary estimates of the parameters of an autoregressive integrated moving average (ARIMA) model from the autocorrelation function of the appropriately differenced times series.

# Syntax

C# |
---|

public static void g13ad( int[] mr, double[] r, int nk, double xv, double[] par, out double rv, int[] isf, out int ifail ) |

Visual Basic |
---|

Public Shared Sub g13ad ( _ mr As Integer(), _ r As Double(), _ nk As Integer, _ xv As Double, _ par As Double(), _ <OutAttribute> ByRef rv As Double, _ isf As Integer(), _ <OutAttribute> ByRef ifail As Integer _ ) |

Visual C++ |
---|

public: static void g13ad( array<int>^ mr, array<double>^ r, int nk, double xv, array<double>^ par, [OutAttribute] double% rv, array<int>^ isf, [OutAttribute] int% ifail ) |

F# |
---|

static member g13ad : mr : int[] * r : float[] * nk : int * xv : float * par : float[] * rv : float byref * isf : int[] * ifail : int byref -> unit |

#### Parameters

- mr
- Type: array<System..::..Int32>[]()[][]An array of size [$7$]
*On entry*: the orders vector $\left(p,d,q,P,D,Q,s\right)$ of the ARIMA model whose parameters are to be estimated. $p$, $q$, $P$ and $Q$ refer respectively to the number of autoregressive $\left(\varphi \right)$, moving average $\left(\theta \right)$, seasonal autoregressive $\left(\Phi \right)$ and seasonal moving average $\left(\Theta \right)$ parameters. $d$, $D$ and $s$ refer respectively to the order of non-seasonal differencing, the order of seasonal differencing and the seasonal period.*Constraints*:- $p,d,q,P,D,Q,s\ge 0$;
- $p+q+P+Q>0$;
- $s\ne 1$;
- if $s=0$, $P+D+Q=0$;
- if $s>1$, $P+D+Q>0$.

- r
- Type: array<System..::..Double>[]()[][]An array of size [nk]
*On entry*: the autocorrelations (starting at lag $1$), which must have been calculated after the time series has been appropriately differenced.*Constraint*: $-1.0\le {\mathbf{r}}\left[\mathit{i}\right]\le 1.0$, for $\mathit{i}=0,1,\dots ,{\mathbf{nk}}-1$.

- nk
- Type: System..::..Int32
*On entry*: the maximum lag of the autocorrelations in array r.*Constraint*: ${\mathbf{nk}}\ge \mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(p+q,s\times \left(P+Q\right)\right)$.

- xv
- Type: System..::..Double
*On entry*: the series sample variance, calculated after appropriate differencing has been applied to the series.*Constraint*: ${\mathbf{xv}}>0.0$.

- par
- Type: array<System..::..Double>[]()[][]An array of size [dim1]
**Note:**dim1 must satisfy the constraint: $\mathbf{\_npar}=p+q+P+Q$*On exit*: the first**_npar**elements of par contain the preliminary estimates of the ARIMA model parameters, in standard order.

- rv
- Type: System..::..Double%
*On exit*: an estimate of the residual variance of the preliminarily estimated model.

- isf
- Type: array<System..::..Int32>[]()[][]An array of size [$4$]
*On exit*: contains success/failure indicators, one for each of the four types of parameter (autoregressive, moving average, seasonal autoregressive, seasonal moving average).The indicator has the interpretation:$\phantom{-}0$ No parameter of this type is in the model. $\phantom{-}1$ Parameters of this type appear in the model and satisfactory preliminary estimates of this type were obtained. $-1$ Parameters of this type appear in the model but satisfactory preliminary estimates of this type were not obtainable. The estimates of this type of parameter were set to $0.0$ in array par.

- ifail
- Type: System..::..Int32%
*On exit*: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

# Description

Preliminary estimates of the $p$ non-seasonal autoregressive parameters ${\varphi}_{1},{\varphi}_{2},\dots ,{\varphi}_{p}$ and the $q$ non-seasonal moving average parameters ${\theta}_{1},{\theta}_{2},\dots ,{\theta}_{q}$ may be obtained from the sample autocorrelations relating to lags $1$ to $p+q$, i.e., ${r}_{1},\dots ,{r}_{p+q}$, of the differenced ${\nabla}^{d}{\nabla}_{s}^{D}{x}_{t}$, where ${x}_{t}$ is assumed to follow a (possibly) seasonal ARIMA model (see [Description] in g13ae for the specification of an ARIMA model).

Taking ${r}_{0}=1$ and ${r}_{-k}={r}_{k}$, the ${\varphi}_{i}$, for $\mathit{i}=1,2,\dots ,p$ are the solutions to the equations

The ${\theta}_{j}$, for $\mathit{j}=1,2,\dots ,q$, are obtained from the solutions to the equations

(Cramer Wold-factorization), by setting

where ${c}_{j}$ are the ‘covariances’ modified in a two stage process by the autoregressive parameters.

$${r}_{q+i-1}{\varphi}_{1}+{r}_{q+i-2}{\varphi}_{2}+\cdots +{r}_{q+i-p}{\varphi}_{p}={r}_{q+i}\text{, \hspace{1em}}i=1,2,\dots ,p\text{.}$$ |

$${c}_{j}={\tau}_{0}{\tau}_{j}+{\tau}_{1}{\tau}_{j+1}+\cdots +{\tau}_{q+j}{\tau}_{q}\text{, \hspace{1em}}j=0,1,\dots ,q$$ |

$${\theta}_{j}=-\frac{{\tau}_{j}}{{\tau}_{0}}\text{,}$$ |

Stage 1:

Stage 2:

The $P$ seasonal autoregressive parameters ${\Phi}_{1},{\Phi}_{2},\dots ,{\Phi}_{P}$ and the $Q$ seasonal moving average parameters ${\Theta}_{1},{\Theta}_{2},\dots ,{\Theta}_{Q}$ are estimated in the same way as the non-seasonal parameters, but each ${r}_{j}$ is replaced in the calculation by ${r}_{s\times j}$, where $s$ is the seasonal period.

$$\begin{array}{ll}{d}_{j}={r}_{j}-{\varphi}_{1}{r}_{j-1}-\cdots -{\varphi}_{p}{r}_{j-p},& j=0,1,\dots ,q\text{;}\\ {d}_{j}=0\text{,}& j=q+1,q+2,\dots ,p+q\text{.}\end{array}$$ |

$${c}_{j}={d}_{j}-{\varphi}_{1}{d}_{j+1}-{\varphi}_{2}{d}_{j+2}-\cdots -{\varphi}_{p}{d}_{j+p}\text{, \hspace{1em}}j=0,1,\dots ,q\text{.}$$ |

An estimate of the residual variance is obtained by successively reducing the sample variance, first for non-seasonal, and then for seasonal, parameter estimates. If moving average parameters are estimated, the variance is reduced by a multiplying factor of ${\tau}_{0}^{2}$, but otherwise by ${c}_{0}$.

# References

Box G E P and Jenkins G M (1976)

*Time Series Analysis: Forecasting and Control*(Revised Edition) Holden–Day# Error Indicators and Warnings

Errors or warnings detected by the method:

Some error messages may refer to parameters that are dropped from this interface
(NPAR) In these
cases, an error in another parameter has usually caused an incorrect value to be inferred.

- ${\mathbf{ifail}}=1$
- On entry, the orders vector mr is invalid. One of the constraints in [Parameters] has been violated.

- ${\mathbf{ifail}}=2$
- On entry, ${\mathbf{nk}}<\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(p+q,s\times \left(P+Q\right)\right)$. There are not enough autocorrelations to enable the required model to be estimated.

- ${\mathbf{ifail}}=3$
On entry, at least one element of r lies outside the range $\left[-1.0,1.0\right]$.

- ${\mathbf{ifail}}=4$
On entry, ${\mathbf{xv}}\le 0.0$.

- ${\mathbf{ifail}}=6$
On entry, the workspace array wa is too small. See [Parameters] for the minimum size formula.

- ${\mathbf{ifail}}=7$
- Satisfactory parameter estimates could not be obtained for all parameter types in the model. Inspect array isf for indicators of the parameter type(s) which could not be estimated.

# Accuracy

The performance of the algorithm is conditioned by the roots of the autoregressive and moving average operators. If these are not close to unity in modulus, the errors, $e$, should satisfy $e<100\epsilon $ where $\epsilon $ is machine precision.

# Parallelism and Performance

None.

# Further Comments

The time taken by g13ad is approximately proportional to $\left({p}^{3}+{q}^{2}+{P}^{3}+{Q}^{2}\right)\text{.}$

# Example

This example reads the sample autocorrelations to lag $40$ and the sample variance of the lagged and doubly differenced series of airline passenger totals (Box and Jenkins example series G (see Box and Jenkins (1976))). Preliminary estimates of the parameters of the $\left(0,1,1,0,1,1,12\right)$ model are obtained by a call to g13ad.

Example program (C#): g13ade.cs