NAG CL Interface
g13bgc (multi_inputmod_update)
1
Purpose
g13bgc accepts a series of new observations of an output time series and any associated input time series, for which a multiinput model is already fully specified, and updates the ‘state set’ information for use in constructing further forecasts.
The previous specification of the multiinput model will normally have been obtained by using
g13bec to estimate the relevant transfer function and ARIMA parameters. The supplied state set will originally have been produced by
g13bec (or possibly
g13bjc), but may since have been updated by
g13bgc.
2
Specification
void 
g13bgc (Nag_ArimaOrder *arimav,
Integer nser,
Nag_TransfOrder *transfv,
const double para[],
Integer npara,
Integer nnv,
double xxyn[],
Integer tdxxyn,
Integer kzef,
Nag_G13_Opt *options,
NagError *fail) 

The function may be called by the names: g13bgc, nag_tsa_multi_inputmod_update or nag_tsa_multi_inp_update.
3
Description
The multiinput model is specified in
Section 3 in
g13bec. The form of these equations required to update the state set is as follows:
the transfer models which generate input component values
${z}_{i,t}$ from one or more inputs
${x}_{i,t}$,
which generates the output noise component from the output
${y}_{t}$ and the input components, and
the ARIMA model for the output noise which generates the residuals
${a}_{t}$.
The state set (as also given in
Section 3 in
g13bec) is the collection of terms
for
$k=1$ up to the maximum lag associated with each of these series respectively, in the above model equations.
$n$ is the latest time point of the series from which the state set has been generated.
The function accepts further values of the series ${y}_{\mathit{t}}$, ${x}_{1,\mathit{t}},{x}_{2,\mathit{t}},\dots ,{x}_{m,\mathit{t}}$, for $\mathit{t}=n+1,\dots ,n+l$, and applies the above model equations over this time range, to generate new values of the various model components, noise series and residuals. The state set is reconstructed, corresponding to the latest time point $n+l$, the earlier values being discarded.
The set of residuals corresponding to the new observations may be of use in checking that the new observations conform to the previously fitted model. The components of the new observations of the output series which are due to the various inputs, and the noise component, are also optionally returned.
The parameters of the model are not changed in this function.
4
References
Box G E P and Jenkins G M (1976) Time Series Analysis: Forecasting and Control (Revised Edition) Holden–Day
5
Arguments

1:
$\mathbf{arimav}$ – Nag_ArimaOrder *

Pointer to structure of type Nag_ArimaOrder with the following members:
 p – Integer
 d – IntegerInput
 q – IntegerInput
 bigp – IntegerInput
 bigd – IntegerInput
 bigq – IntegerInput
 s – IntegerInput

On entry: these seven members of
arimav must specify the orders vector
$\left(p,d,q,P,D,Q,s\right)$, respectively, of the ARIMA model for the output noise component.
$p$, $q$, $P$ and $Q$ refer, respectively, to the number of autoregressive ($\varphi $), moving average ($\theta $), seasonal autoregressive ($\Phi $) and seasonal moving average ($\Theta $) parameters.
$d$, $D$ and $s$ refer, respectively, to the order of nonseasonal differencing, the order of seasonal differencing and the seasonal period.

2:
$\mathbf{nser}$ – Integer
Input

On entry: the total number of input and output series. There may be any number of input series (including none), but only one output series.

3:
$\mathbf{transfv}$ – Nag_TransfOrder *

Pointer to structure of type Nag_TransfOrder with the following members:
 b – Integer *Input
 q – Integer *Input
 p – Integer *
 r – Integer *Input

On entry: before use, these member pointers
must be allocated memory by calling
g13byc which allocates
${\mathbf{nseries}}1$ elements to each pointer. The memory allocated to these pointers must be given the transfer function model orders
$b$,
$q$ and
$p$ of each of the input series. The order parameters for input series
$i$ are held in the
$i$th element of the allocated memory for each pointer.
$\mathbf{b}\left[i1\right]$ holds the value
${b}_{i}$,
$\mathbf{transfv}\mathbf{\to}\mathbf{q}\left[i1\right]$ holds the value
${q}_{i}$ and
$\mathbf{transfv}\mathbf{\to}\mathbf{p}\left[i1\right]$ holds the value
${p}_{i}$.
For a simple input, ${b}_{i}={q}_{i}={p}_{i}=0$.
$\mathbf{r}\left[i1\right]$ holds the value ${r}_{i}$, where ${r}_{i}=1$ for a simple input, and ${r}_{i}=2\text{or}3$ for a transfer function input.
The choice ${r}_{i}=3$ leads to estimation of the preperiod input effects as nuisance parameters, and ${r}_{i}=2$ suppresses this estimation. This choice may affect the returned forecasts.
When ${r}_{i}=1$, any nonzero contents of the $i$th element of the memory of $\mathbf{b}$, $\mathbf{transfv}\mathbf{\to}\mathbf{q}$ and $\mathbf{transfv}\mathbf{\to}\mathbf{p}$ are ignored.
Constraint:
$\mathbf{r}\left[\mathit{i}1\right]=1$,
$2$ or
$3$, for
$\mathit{i}=1,2,\dots ,{\mathbf{nseries}}1$The memory allocated to the members of
transfv must be freed by a call to
g13bzc.

4:
$\mathbf{para}\left[{\mathbf{npara}}\right]$ – const double
Input

On entry: estimates of the multiinput model parameters as returned by
g13bec. These are in order, firstly the ARIMA model parameters:
$p$ values of
$\varphi $ parameters,
$q$ values of
$\theta $ parameters,
$P$ values of
$\Phi $ parameters and
$Q$ values of
$\Theta $ parameters. These are followed by the transfer function model parameter values
${\omega}_{0},{\omega}_{1},\dots ,{\omega}_{{q}_{1}}$,
${\delta}_{1},{\delta}_{2},\dots ,{\delta}_{{p}_{1}}$ for the first of any input series and similarly for each subsequent input series. The final component of
para is the value of the constant
$c$.

5:
$\mathbf{npara}$ – Integer
Input

On entry: the exact number of $\varphi $, $\theta $, $\Phi $, $\Theta $, $\omega $, $\delta $ and $c$ parameters. ($c$ must be included whether its value was previously estimated or was set fixed.)

6:
$\mathbf{nnv}$ – Integer
Input

On entry: the number of new observation sets being used to update the state set, each observation set consisting of a value of the output series and the associated values of each of the input series at a particular time point.

7:
$\mathbf{xxyn}\left[{\mathbf{nnv}}\times {\mathbf{tdxxyn}}\right]$ – double
Input/Output

Note: the $\left(i,j\right)$th element of the matrix is stored in ${\mathbf{xxyn}}\left[\left(i1\right)\times {\mathbf{tdxxyn}}+j1\right]$.
On entry: the
nnv new observation sets being used to update the state set. Column
$i1$ contains the values of input series
$\mathit{i}$, for
$\mathit{i}=1,2,\dots ,{\mathbf{nser}}1$. Column
${\mathbf{nser}}1$ contains the values of the output series. Consecutive rows correspond to increasing time sequence.
On exit: if
${\mathbf{kzef}}=0$,
xxyn remains unchanged.
If
${\mathbf{kzef}}\ne 0$, the columns of
xxyn hold the corresponding values of the input component series
${z}_{t}$ and the output noise component
${n}_{t}$ in that order.

8:
$\mathbf{tdxxyn}$ – Integer
Input

On entry: the stride separating matrix column elements in the array
xxyn.
Constraint:
${\mathbf{tdxxyn}}\ge {\mathbf{nser}}$.

9:
$\mathbf{kzef}$ – Integer
Input

On entry: must not be set to
$0$, if the values of the input component series
${z}_{t}$ and the values of the output noise component
${n}_{t}$ are to overwrite the contents of
xxyn on exit, and must be set to
$0$ if
xxyn is to remain unchanged on exit.

10:
$\mathbf{options}$ – Nag_G13_Opt *
Input/Output

On entry: a pointer to a structure of type Nag_G13_Opt as returned by
g13bec or
g13bjc.
On exit: the structure contains the updated state space information.

11:
$\mathbf{fail}$ – NagError *
Input/Output

The NAG error argument (see
Section 7 in the Introduction to the NAG Library CL Interface).
6
Error Indicators and Warnings
 NE_ALLOC_FAIL

Dynamic memory allocation failed.
See
Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
 NE_BAD_PARAM

On entry, argument $\u2329\mathit{\text{value}}\u232a$ had an illegal value.
 NE_INT

On entry, ${\mathbf{tdxxyn}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{tdxxyn}}>0$.
 NE_INT_2

On entry, ${\mathbf{tdxxyn}}=\u2329\mathit{\text{value}}\u232a$ and ${\mathbf{nser}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{tdxxyn}}\ge {\mathbf{nser}}$.
 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.
See
Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
 NE_NO_LICENCE

Your licence key may have expired or may not have been installed correctly.
See
Section 8 in the Introduction to the NAG Library CL Interface for further information.
 NE_STRUCT_CORRUPT

Values of the members of structures
arimav,
transfv and
options are not compatible.
7
Accuracy
The computations are believed to be stable.
8
Parallelism and Performance
g13bgc is not threaded in any implementation.
The time taken by g13bgc is approximately proportional to ${\mathbf{nnv}}\times {\mathbf{npara}}$.
10
Example
This example uses the data described in
g13bec in which
$40$ observations of an output time series and a single input series were processed. In this example a model which included seasonal differencing of order
$1$ was used. The
$10$ values of the state set and the
$5$ final values of
para then obtained are used as input to this program, together with the values of
$4$ new observations and the transfer function orders of the input series. The model used is
${\varphi}_{1}=0.5158$,
${\Theta}_{1}=0.9994$,
${\omega}_{0}=8.6343$,
${\delta}_{1}=0.6726$,
$c=0.3172$.
The following are computed and printed out: the updated state set, the residuals ${a}_{t}$ and the values of the components ${z}_{t}$ and the output noise component ${n}_{t}$ corresponding to the new observations.
10.1
Program Text
10.2
Program Data
10.3
Program Results