NAG Library Function Document

nag_tsa_multi_inp_update (g13bgc)


    1  Purpose
    7  Accuracy


nag_tsa_multi_inp_update (g13bgc) accepts a series of new observations of an output time series and any associated input time series, for which a multi-input model is already fully specified, and updates the ‘state set’ information for use in constructing further forecasts.
The previous specification of the multi-input model will normally have been obtained by using nag_tsa_multi_inp_model_estim (g13bec) to estimate the relevant transfer function and ARIMA parameters. The supplied state set will originally have been produced by nag_tsa_multi_inp_model_estim (g13bec) (or possibly nag_tsa_multi_inp_model_forecast (g13bjc)), but may since have been updated by nag_tsa_multi_inp_update (g13bgc).


#include <nag.h>
#include <nagg13.h>
void  nag_tsa_multi_inp_update (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 multi-input model is specified in Section 3 in nag_tsa_multi_inp_model_estim (g13bec). The form of these equations required to update the state set is as follows:
the transfer models which generate input component values zi,t from one or more inputs xi,t,
which generates the output noise component from the output yt and the input components, and
wt =dsDnt-c et =wt-Φ1wt-s-Φ2wt-2×s--ΦPwt-P×s+Θ1et-s+Θ2et-2×s++ΘQet-Q×s at =et-ϕ1et-1-ϕ2et-2--ϕpet-p+θ1at-1+θ2at-2++θqat-q  
the ARIMA model for the output noise which generates the residuals at.
The state set (as also given in Section 3 in nag_tsa_multi_inp_model_estim (g13bec)) is the collection of terms
zn+1-k,xn+1-k,nn+1-k,wn+1-k,en+1-k  and  an+1-k  
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 yt, x1,t,x2,t,,xm,t, for t=n+1,,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.


Box G E P and Jenkins G M (1976) Time Series Analysis: Forecasting and Control (Revised Edition) Holden–Day


1:     arimav Nag_ArimaOrder *
Pointer to structure of type Nag_ArimaOrder with the following members:
On entry: these seven members of arimav must specify the orders vector p,d,q,P,D,Q,s, respectively, of the ARIMA model for the output noise component.
p, q, P and Q refer, respectively, to the number of autoregressive (ϕ), moving average (θ), seasonal autoregressive (Φ) and seasonal moving average (Θ) parameters.
d, D and s refer, respectively, to the order of non-seasonal differencing, the order of seasonal differencing and the seasonal period.
2:     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.
3:     transfv Nag_TransfOrder *
Pointer to structure of type Nag_TransfOrder with the following members:
bInteger *Input
qInteger *Input
pInteger *
rInteger *Input
On entry: before use, these member pointers must be allocated memory by calling nag_tsa_transf_orders (g13byc) which allocates 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 arguments for input series i are held in the ith element of the allocated memory for each pointer. b[i-1] holds the value bi, transfvq[i-1]  holds the value qi and transfvp[i-1]  holds the value pi.
For a simple input, bi=qi=pi=0.
r[i-1]  holds the value ri, where ri=1 for a simple input, and ri=2​ or ​3 for a transfer function input.
The choice ri=3 leads to estimation of the pre-period input effects as nuisance parameters, and ri=2 suppresses this estimation. This choice may affect the returned forecasts.
When ri=1, any nonzero contents of the ith element of the memory of b, transfvq and transfvp are ignored.
Constraint: r[i-1]=1, 2 or 3, for i=1,2,nseries-1
The memory allocated to the members of transfv must be freed by a call to nag_tsa_trans_free (g13bzc).
4:     para[npara] const doubleInput
On entry: estimates of the multi-input model parameters as returned by nag_tsa_multi_inp_model_estim (g13bec). These are in order, firstly the ARIMA model parameters: p values of ϕ parameters, q values of θ parameters, P values of Φ parameters and Q values of Θ parameters. These are followed by the transfer function model parameter values ω0,ω1,,ωq1, δ1,δ2,,δp1 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:     npara IntegerInput
On entry: the exact number of ϕ, θ, Φ, Θ, ω, δ and c parameters. (c must be included whether its value was previously estimated or was set fixed.)
6:     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.
7:     xxyn[nnv×tdxxyn] doubleInput/Output
Note: the i,jth element of the matrix is stored in xxyn[i-1×tdxxyn+j-1].
On entry: the nnv new observation sets being used to update the state set. Column i-1 contains the values of input series i, for i=1,2,,nser-1. Column nser-1 contains the values of the output series. Consecutive rows correspond to increasing time sequence.
On exit: if kzef=0, xxyn remains unchanged.
If kzef0, the columns of xxyn hold the corresponding values of the input component series zt and the output noise component nt in that order.
8:     tdxxyn IntegerInput
On entry: the stride separating matrix column elements in the array xxyn.
Constraint: tdxxynnser.
9:     kzef IntegerInput
On entry: must not be set to 0, if the values of the input component series zt and the values of the output noise component nt are to overwrite the contents of xxyn on exit, and must be set to 0 if xxyn is to remain unchanged on exit.
10:   options Nag_G13_Opt *Input/Output
On entry: a pointer to a structure of type Nag_G13_Opt as returned by nag_tsa_multi_inp_model_estim (g13bec) or nag_tsa_multi_inp_model_forecast (g13bjc).
On exit: the structure contains the updated state space information.
11:   fail NagError *Input/Output
The NAG error argument (see Section 3.7 in How to Use the NAG Library and its Documentation).

Error Indicators and Warnings

Dynamic memory allocation failed.
See Section in How to Use the NAG Library and its Documentation for further information.
On entry, argument value had an illegal value.
On entry, tdxxyn=value.
Constraint: tdxxyn>0.
On entry, tdxxyn=value and nser=value.
Constraint: tdxxynnser.
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 2.7.6 in How to Use the NAG Library and its Documentation for further information.
Your licence key may have expired or may not have been installed correctly.
See Section 2.7.5 in How to Use the NAG Library and its Documentation for further information.
Values of the members of structures arimav, transfv and options are not compatible.


The computations are believed to be stable.

Parallelism and Performance

nag_tsa_multi_inp_update (g13bgc) is not threaded in any implementation.

Further Comments

The time taken by nag_tsa_multi_inp_update (g13bgc) is approximately proportional to nnv×npara.


This example uses the data described in nag_tsa_multi_inp_model_estim (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 ϕ1=0.5158, Θ1=0.9994, ω0=8.6343, δ1=0.6726, c=-0.3172.
The following are computed and printed out: the updated state set, the residuals at and the values of the components zt and the output noise component nt corresponding to the new observations.

Program Text

Program Text (g13bgce.c)

Program Data

Program Data (g13bgce.d)

Program Results

Program Results (g13bgce.r)

© The Numerical Algorithms Group Ltd, Oxford, UK. 2017