NAG Library Routine Document
g13bgf (multi_inputmod_update)
1
Purpose
g13bgf 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
g13bef to estimate the relevant transfer function and ARIMA parameters. The supplied state set will originally have been produced by
g13bef (or possibly
g13bjf), but may since have been updated by
g13bgf.
2
Specification
Fortran Interface
Subroutine g13bgf ( 
sttf, nsttf, mr, nser, mt, para, npara, nnv, xxyn, ldxxyn, kzef, res, wa, iwa, ifail) 
Integer, Intent (In)  ::  nsttf, mr(7), nser, mt(4,nser), npara, nnv, ldxxyn, kzef, iwa  Integer, Intent (Inout)  ::  ifail  Real (Kind=nag_wp), Intent (In)  ::  para(npara)  Real (Kind=nag_wp), Intent (Inout)  ::  sttf(nsttf), xxyn(ldxxyn,nser)  Real (Kind=nag_wp), Intent (Out)  ::  res(nnv), wa(iwa) 

C Header Interface
#include nagmk26.h
void 
g13bgf_ (double sttf[], const Integer *nsttf, const Integer mr[], const Integer *nser, const Integer mt[], const double para[], const Integer *npara, const Integer *nnv, double xxyn[], const Integer *ldxxyn, const Integer *kzef, double res[], double wa[], const Integer *iwa, Integer *ifail) 

3
Description
The multiinput model is specified in
Section 3 in
g13bef. 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
g13bef) 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 routine 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 routine.
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{sttf}\left({\mathbf{nsttf}}\right)$ – Real (Kind=nag_wp) arrayInput/Output

On entry: the
nsttf values in the state set before updating as returned by
g13bef or
g13bjf, or a previous call to
g13bgf.
On exit: the state set values after updating.
 2: $\mathbf{nsttf}$ – IntegerInput

On entry: the exact number of values in the state set array
sttf as returned by
g13bef or
g13bjf.
 3: $\mathbf{mr}\left(7\right)$ – Integer arrayInput

On entry: the orders vector
$\left(p,d,q,P,D,Q,s\right)$ of the ARIMA model for the output noise component.
$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 nonseasonal 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$.
 4: $\mathbf{nser}$ – IntegerInput

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.
 5: $\mathbf{mt}\left(4,{\mathbf{nser}}\right)$ – Integer arrayInput

On entry: the transfer function model orders
$b$,
$p$ and
$q$ of each of the input series. The data for input series
$i$ are held in column
$i$. Row 1 holds the value
${b}_{i}$, row 2 holds the value
${q}_{i}$ and row 3 holds the value
${p}_{i}$. For a simple input,
${b}_{i}={q}_{i}={p}_{i}=0$.
Row 4 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. When ${r}_{i}=1$ any nonzero contents of rows 1, 2 and 3 of column $i$ are ignored. The choice of ${r}_{i}=2$ or ${r}_{i}=3$ is an option for use in model estimation and does not affect the operation of g13bgf.
Constraint:
${\mathbf{mt}}\left(4,\mathit{i}\right)=1$, $2$ or $3$, for $\mathit{i}=1,2,\dots ,{\mathbf{nser}}1$.
 6: $\mathbf{para}\left({\mathbf{npara}}\right)$ – Real (Kind=nag_wp) arrayInput

On entry: estimates of the multiinput model parameters as returned by
g13bef. 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$.
 7: $\mathbf{npara}$ – IntegerInput

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.)
 8: $\mathbf{nnv}$ – IntegerInput

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.
 9: $\mathbf{xxyn}\left({\mathbf{ldxxyn}},{\mathbf{nser}}\right)$ – Real (Kind=nag_wp) arrayInput/Output

On entry: the
nnv new observation sets being used to update the state set. Column
$i$ contains the values of input series
$\mathit{i}$, for
$\mathit{i}=1,2,\dots ,{\mathbf{nser}}1$. Column
${\mathbf{nser}}$ 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.
 10: $\mathbf{ldxxyn}$ – IntegerInput

On entry: the first dimension of the array
xxyn as declared in the (sub)program from which
g13bgf is called.
Constraint:
${\mathbf{ldxxyn}}\ge {\mathbf{nnv}}$.
 11: $\mathbf{kzef}$ – IntegerInput

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.
 12: $\mathbf{res}\left({\mathbf{nnv}}\right)$ – Real (Kind=nag_wp) arrayOutput

On exit: the values of the residual series ${a}_{t}$ corresponding to the new observations of the output series.
 13: $\mathbf{wa}\left({\mathbf{iwa}}\right)$ – Real (Kind=nag_wp) arrayWorkspace
 14: $\mathbf{iwa}$ – IntegerInput

On entry: the dimension of the array
wa as declared in the (sub)program from which
g13bgf is called.
Constraint:
${\mathbf{iwa}}\ge {\mathbf{nnv}}+2\times {\mathbf{nsttf}}+\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{nnv}},{\mathbf{nsttf}}\right)+\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left({\mathbf{nnv}},\mathit{ncc}\right)$, where $\mathit{ncc}=4\times \left(p+q+P+Q\right)$.
 15: $\mathbf{ifail}$ – IntegerInput/Output

On entry:
ifail must be set to
$0$,
$1\text{ or}1$. If you are unfamiliar with this argument you should refer to
Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value
$1\text{ or}1$ is recommended. If the output of error messages is undesirable, then the value
$1$ is recommended. Otherwise, if you are not familiar with this argument, the recommended value is
$0$.
When the value $\mathbf{1}\text{ or}\mathbf{1}$ is used it is essential to test the value of ifail on exit.
On exit:
${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see
Section 6).
6
Error Indicators and Warnings
If on entry
${\mathbf{ifail}}=0$ or
$1$, explanatory error messages are output on the current error message unit (as defined by
x04aaf).
Errors or warnings detected by the routine:
 ${\mathbf{ifail}}=1$

On entry,  nsttf is not consistent with the orders in arrays mr and mt. 
 ${\mathbf{ifail}}=2$

On entry,  npara is not consistent with the orders in arrays mr and mt. 
 ${\mathbf{ifail}}=3$

 ${\mathbf{ifail}}=4$

On entry,  iwa is too small. 
 ${\mathbf{ifail}}=5$

On entry, one of the ${r}_{\mathit{i}}$, stored in ${\mathbf{mt}}\left(4,\mathit{i}\right)$, for $\mathit{i}=1,2,\dots ,{\mathbf{nser}}1$ does not equal $1$, $2$ or $3$.
 ${\mathbf{ifail}}=99$
An unexpected error has been triggered by this routine. Please
contact
NAG.
See
Section 3.9 in How to Use the NAG Library and its Documentation for further information.
 ${\mathbf{ifail}}=399$
Your licence key may have expired or may not have been installed correctly.
See
Section 3.8 in How to Use the NAG Library and its Documentation for further information.
 ${\mathbf{ifail}}=999$
Dynamic memory allocation failed.
See
Section 3.7 in How to Use the NAG Library and its Documentation for further information.
7
Accuracy
The computations are believed to be stable.
8
Parallelism and Performance
g13bgf is not threaded in any implementation.
The time taken by g13bgf is approximately proportional to ${\mathbf{nnv}}\times {\mathbf{npara}}$.
10
Example
This example uses the data described in
g13bef 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
Program Text (g13bgfe.f90)
10.2
Program Data
Program Data (g13bgfe.d)
10.3
Program Results
Program Results (g13bgfe.r)