g13 Chapter Contents
g13 Chapter Introduction
NAG Library Manual

# NAG Library Function Documentnag_tsa_diff (g13aac)

## 1  Purpose

nag_tsa_diff (g13aac) carries out non-seasonal and seasonal differencing on a time series. Information which allows the original series to be reconstituted from the differenced series is also produced. This information is required in time series forecasting.

## 2  Specification

 #include #include
 void nag_tsa_diff (const double x[], Integer nx, Integer d, Integer ds, Integer s, double xd[], Integer *nxd, NagError *fail)

## 3  Description

Let ${\nabla }^{d}{\nabla }_{s}^{D}{x}_{i}$ be the $i$th value of a time series ${x}_{i}$, for $i=1,2,\dots ,n$ after non-seasonal differencing of order $d$ and seasonal differencing of order $D$ (with period or seasonality $s$). In general,
 ${\nabla }^{d}{\nabla }_{s}^{D}{x}_{i}$ $=$ ${\nabla }^{d-1}{\nabla }_{s}^{D}{x}_{i+1}-{\nabla }^{d-1}{\nabla }_{s}^{D}{x}_{i}$ $d>0$ ${\nabla }^{d}{\nabla }_{s}^{D}{x}_{i}$ $=$ ${\nabla }^{d}{\nabla }_{s}^{D-1}{x}_{i+s}-{\nabla }^{d}{\nabla }_{s}^{D-1}{x}_{i}$ $D>0$
Non-seasonal differencing up to the required order $d$ is obtained using
 ${\nabla }^{1}{x}_{i}$ $=$ ${x}_{i+1}-{x}_{i}$ for $i=1,2,\dots ,\left(n-1\right)$ ${\nabla }^{2}{x}_{i}$ $=$ ${\nabla }^{1}{x}_{i+1}-{\nabla }^{1}{x}_{i}$ for $i=1,2,\dots ,\left(n-2\right)$ $\text{ }⋮$ ${\nabla }^{d}{x}_{i}$ $=$ ${\nabla }^{d-1}{x}_{i+1}-{\nabla }^{d-1}{x}_{i}$ for $i=1,2,\dots ,\left(n-d\right)$
Seasonal differencing up to the required order $D$ is then obtained using
 ${\nabla }^{d}{\nabla }_{s}^{1}{x}_{i}$ $=$ ${\nabla }^{d}{x}_{i+s}-{\nabla }^{d}{x}_{i}$ for $i=1,2,\dots ,\left(n-d-s\right)$ ${\nabla }^{d}{\nabla }_{s}^{2}{x}_{i}$ $=$ ${\nabla }^{d}{\nabla }_{s}^{1}{x}_{i+s}-{\nabla }^{d}{\nabla }_{s}^{1}{x}_{i}$ for $i=1,2,\dots ,\left(n-d-2s\right)$ $\text{ }⋮$ ${\nabla }^{d}{\nabla }_{s}^{D}{x}_{i}$ $=$ ${\nabla }^{d}{\nabla }_{s}^{D-1}{x}_{i+s}-{\nabla }^{d}{\nabla }_{s}^{D-1}{x}_{i}$ for $i=1,2,\dots ,\left(n-d-D×s\right)$
Mathematically, the sequence in which the differencing operations are performed does not affect the final resulting series of $m=n-d-D×s$ values.

None.

## 5  Arguments

1:     x[nx]const doubleInput
On entry: the undifferenced time series, ${x}_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,n$.
2:     nxIntegerInput
On entry: $n$, the number of values in the undifferenced time series.
Constraint: ${\mathbf{nx}}>{\mathbf{d}}+\left({\mathbf{ds}}×{\mathbf{s}}\right)$.
3:     dIntegerInput
On entry: $d$, the order of non-seasonal differencing.
Constraint: ${\mathbf{d}}\ge 0$.
4:     dsIntegerInput
On entry: $D$, the order of seasonal differencing.
Constraint: ${\mathbf{ds}}\ge 0$.
5:     sIntegerInput
On entry: $s$, the seasonality.
Constraints:
• if ${\mathbf{ds}}>0$, ${\mathbf{s}}>0$;
• if ${\mathbf{ds}}=0$, ${\mathbf{s}}\ge 0$.
6:     xd[nx]doubleOutput
On exit: the differenced values in elements $0$ to ${\mathbf{nxd}}-1$, and reconstitution data in the remainder of the array.
7:     nxdInteger *Output
On exit: the number of differenced values in the array xd.
8:     failNagError *Input/Output
The NAG error argument (see Section 3.6 in the Essential Introduction).

## 6  Error Indicators and Warnings

On entry, argument $⟨\mathit{\text{value}}⟩$ had an illegal value.
NE_INT
On entry, ${\mathbf{d}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{d}}\ge 0$.
On entry, ${\mathbf{ds}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{ds}}\ge 0$.
On entry, ${\mathbf{s}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{s}}\ge 0$.
NE_INT_2
On entry, ${\mathbf{ds}}=⟨\mathit{\text{value}}⟩$.
Constraint: if ${\mathbf{s}}=0$, ${\mathbf{ds}}\le 0$.
NE_INT_4
On entry, ${\mathbf{nx}}=⟨\mathit{\text{value}}⟩$, ${\mathbf{d}}=⟨\mathit{\text{value}}⟩$, ${\mathbf{ds}}=⟨\mathit{\text{value}}⟩$ and ${\mathbf{s}}=⟨\mathit{\text{value}}⟩$.
Constraint: ${\mathbf{nx}}>{\mathbf{d}}+\left({\mathbf{ds}}×{\mathbf{s}}\right)$.
NE_INTERNAL_ERROR
An internal error has occurred in this function. Check the function call and any array sizes. If the call is correct then please contact NAG for assistance.

## 7  Accuracy

The computations are believed to be stable.

## 8  Parallelism and Performance

Not applicable.

The time taken by nag_tsa_diff (g13aac) is approximately proportional to $\left({\mathbf{d}}+{\mathbf{ds}}\right)×{\mathbf{nx}}$.

## 10  Example

This example reads in a set of data consisting of $20$ observations from a time series. Non-seasonal differencing of order $2$ and seasonal differencing of order $1$ (with seasonality of $4$) are applied to the input data, giving an output array holding $14$ differenced values and $6$ values which can be used to reconstitute the output array.

### 10.1  Program Text

Program Text (g13aace.c)

### 10.2  Program Data

Program Data (g13aace.d)

### 10.3  Program Results

Program Results (g13aace.r)