g13bjc (pdf version)
Chapter Contents
Chapter Introduction
NAG C Library Contents

NAG C Library Function Document

nag_tsa_multi_inp_model_forecast (g13bjc)

+ Contents

     1 Purpose
     2 Specification
     3 Description
     4 References
     5 Parameters
     6 Error Indicators and Warnings
     7 Accuracy
     8 Further Comments
+  9 Example
+  9.1 Example 1
+  10 Optional Parameters
+  11 Example 2

1  Purpose

nag_tsa_multi_inp_model_forecast (g13bjc) produces forecasts of a time series (the output series) which may depend on one or more other (input) series via a previously estimated multi-input model. The future values of any input series must be supplied. Standard errors of the forecasts are produced. If future values of some of the input series have been obtained as forecasts using ARIMA models for those series, this may be allowed for in the calculation of the standard errors.

2  Specification

#include <nag.h>
#include <nagg13.h>

void nag_tsa_multi_inp_model_forecast(Nag_ArimaOrder *arimav, Integer nseries, Nag_TransfOrder *transfv, double para[], Integer npara, Integer nev, Integer nfv, const double xxy[], Integer tdxxy, double rmsxy[], const Integer mrx[], Integer tdmrx, const double parx[], Integer ldparx, Integer tdparx, double fva[], double fsd[], Nag_G13_Opt *options, NagError *fail)

3  Description

nag_tsa_multi_inp_model_forecast (g13bjc) has two stages. The first stage is essentially the same as a call to the model estimation function nag_tsa_multi_inp_model_estim (g13bec), with zero iterations. In particular, all the parameters remain unchanged in the supplied input series transfer function models and output noise series ARIMA model except that a further iteration takes place for any ω  corresponding to a simple input. The internal nuisance parameters associated with the pre-observation period effects of the input series are estimated where requested, and so are any backforecasts of the output noise series. The output components z t  and n t , and residuals a t  are calculated exactly as described in the Section 3 of nag_tsa_multi_inp_model_estim (g13bec).
In the second stage, the forecasts of the output series y t  are calculated for t = n + 1 , n + 2 , , n + L  where n  is the latest time point of the observations and L  is the maximum lead time of the forecasts.
First the new values, x t  for any input series are used to form the input components z t  for t = n + 1 , n + 2 , , n + L  using the transfer function models:
  1. z t = δ 1 z t-1 + δ 2 z t-2 + + δ p z t-p + ω 0 x t-b - ω 1 x t-b - 1 - - ω q x t - b - q .
    The output noise component n t  for t = n + 1 , n + 2 , , n + L  is then forecast by setting a t = 0  for t = n + 1 , n + 2 , , n + L  and using the ARIMA model equations:
  2. e t = ϕ 1 e t-1 + ϕ 2 e t-2 + + ϕ p e t-p + a t - θ 1 a t-1 - θ 2 a t-2 - - θ q a t-q .
  3. w t = Φ 1 w t-s + Φ 2 w t - 2 × s + + Φ P w t-P × s + e t - Θ 1 e t-s - Θ 2 e t - 2 × s - - Θ Q e t-Q × s .
  4. n t = d s D -1 w t + c .
This last step of ‘integration’ reverses the process of differencing. Finally the output forecasts are calculated as
y t = z 1,t + z 2,t + + z m,t + n t .
The forecast error variance of y t+l  (i.e., at lead time l ) is S l 2 , which is the sum of parts which arise from the various input series, and the output noise component. That part due to the output noise is
sn l 2 = V n × ψ 0 2 + ψ 1 2 + + ψ l-1 2
V n  is the estimated residual variance of the output noise ARIMA model, and ψ 0 , ψ 1 , , are the ‘psi-weights’ of this model as defined in Box and Jenkins (1976). They are calculated by applying the equations (b), (c) and (d) above for t = 0 , 1 , , L , but with artificial values for the various series and with the constant c  set to 0. Thus all values of a t , e t , w t  and n t  are taken as zero for t<0 ; a t  is taken to be 1 for t=0  and 0 for t>0 . The resulting values of n t  for t = 0 , 1 , , L  are precisely ψ 0 , ψ 1 , , ψ L  as required.
Further contributions to S l 2  come only from those input series, for which future values are forecasts which have been obtained by applying input series ARIMA models. For such a series the contribution is
sz l 2 = V x × ν 0 2 + ν 1 2 + + ν l-1 2
V x  is the estimated residual variance of the input series ARIMA model. The coefficients ν 0 , ν 1 ,  are calculated by applying the transfer function model equation (a) above for t = 0 , 1 , , L , but again with artificial values of the series. Thus all values of z t  and x t  for t<0  are taken to be zero, and x 0 , x 1 ,  are taken to be the psi-weight sequence ψ 0 , ψ 1 ,  for the input series ARIMA model. The resulting values of z t  for t = 0 , 1 , , L  are precisely ν 0 , ν 1 , , ν L  as required.
In adding such contributions sz l 2  to sn l 2  to make up the total forecast error variance S l 2 , it is assumed that the various input series with which these contributions are associated, are statistically independent of each other.
When using the function in practice an ARIMA model is required for all the input series. In the case of those inputs for which no such ARIMA model is available (or its effects are to be excluded), the corresponding orders and parameters and the estimated residual variance should be set to zero.

4  References

5  Parameters

1:     arimav – Nag_ArimaOrder *
Pointer to structure of type Nag_ArimaOrder with the following members:
p – Integer 
d – Integer Input
q – Integer Input
bigp – Integer Input
bigd – Integer Input
bigq – Integer Input
s – Integer Input
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:     nseries – Integer Input
On entry: the number of input and output series. There may be any number of input series (including none), but only one output series.
Constraint: nseries>1  if there are no parameters in the model (that is p = q = P = Q = 0  and options.cfixed=TRUE ), nseries1  otherwise .
3:     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 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 parameters for input series i  are held in the i th element of the allocated memory for each pointer. bi-1  holds the value b i , qi-1  holds the value q i  and pi-1  holds the value p i .
For a simple input, b i = q i = p i = 0 .
ri-1  holds the value r i , where r i = 1  for a simple input, and r i = 2  or 3 for a transfer function input.
The choice r i = 3  leads to estimation of the pre-period input effects as nuisance parameters, and r i = 2  suppresses this estimation. This choice may affect the returned forecasts.
When r i = 1 , any non-zero contents of the i th element of the memory of b, q and p are ignored.
Constraint: ri-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] – double Input/Output
On entry: estimates of the multi-input model parameters. These are in order firstly the ARIMA model parameters: p  values of ϕ  parameters, q  values of θ  parameters, P  values of Φ  parameters, Q  values of Θ  parameters. These are followed by the transfer function model parameter values ω 0 , ω 1 , , ω q 1 , and δ 1 , δ 2 , , δ 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 .
On exit: the input estimates are unaltered except that any ω  estimates corresponding to a simple input will be undated by a single iteration.
5:     npara – Integer Input
On entry: the exact number of ϕ , θ , Φ , Θ , ω , δ , c  parameters, so that npara = p + q + P + Q + nseries + p i + q i , the summation being over all the input series. ( c  must be included whether its value was previously estimated or was set fixed.)
6:     nev – Integer Input
On entry: the number of original (undifferenced) values in each of the input and output time-series.
7:     nfv – Integer Input
On entry: the number of forecast values of the output series required.
Constraint: nfv>0 .
8:     xxy[nev+nfv][tdxxy] – const double Input
On entry: the columns of xxy must contain in the first nev places, the past values of each of the input and output series, in that order. In the next nfv places, the columns relating to the input series (i.e., columns 0 to nseries-2 ) contain the future values of the input series which are necessary for construction of the forecasts of the output series y .
9:     tdxxy – Integer Input
On entry: the second dimension of the array xxy as declared in the subroutine from which nag_tsa_multi_inp_model_forecast (g13bjc) is called.
Constraint: tdxxynseries .
10:   rmsxy[nseries] – double Input/Output
On entry: elements of rmsxy0  to rmsxynseries-2  must contain the estimated residual variance of the input series ARIMA models. In the case of those inputs for which no ARIMA model is available or its effects are to be excluded in the calculation of forecast standard errors, the corresponding entry of rmsxy should be set to 0.
On exit: rmsxynseries-1  contains the estimated residual variance of the output noise ARIMA model which is calculated from the supplied series. Otherwise rmsxy is unchanged.
11:   mrx[7][tdmrx] – const Integer Input
On entry: the orders array for each of the input series ARIMA models. Thus, column i-1  contains values of p , d , q , P , D , Q , s  for input series i . In the case of those inputs for which no ARIMA model is available, the corresponding orders should be set to 0.
If there are no input series then the null pointer (Integer *)0 may be supplied in place of mrx.
12:   tdmrx – Integer Input
On entry: the second dimension of the array mrx as declared in the subroutine from which nag_tsa_multi_inp_model_forecast (g13bjc) is called.
Constraint: tdmrx nseries - 1 .
13:   parx[ldparx][tdparx] – const double Input
On entry: values of the parameters ( ϕ , θ , Φ , and Θ ) for each of the input series ARIMA models. Thus column i  contains mrx0i  values of ϕ , mrx2i  values of θ , mrx3i  values of Φ  and mrx5i  values of Θ  – in that order.
Values in the columns relating to those input series for which no ARIMA model is available are ignored.
If there are no input series then the null pointer (double *)0 may be supplied in place of parx.
14:   ldparx – Integer Input
Constraint: ldparx nce = max1, mrx0i + mrx2i + mrx3i + mrx5i , for i=0,1,,nseries-1.
15:   tdparx – Integer Input
On entry: the second dimension of the array parx as declared in the subroutine from which nag_tsa_multi_inp_model_forecast (g13bjc) is called.
Constraint: tdparx nseries - 1 .
16:   fva[nfv] – double Output
On exit: the required forecast values for the output series.
17:   fsd[nfv] – double Output
On exit: the standard errors for each of the forecast values.
18:   options – Nag_G13_Opt *Input/Output
19:   fail – NagError *Input/Output

6  Error Indicators and Warnings

NE_G13_OPTIONS_NOT_INIT
NE_G13_ORDERS_NOT_INIT
NE_INT_ARRAY_2
NE_BAD_PARAM
NE_INT_ARG_LT
On entry, nseries must not be less than 1: nseries=value .
NE_INT_ARG_LE
On entry, nfv must not be less than or equal to 0: nfv=value .
NE_2_INT_ARG_LT
NE_ALLOC_FAIL
Memory allocation failed.
NE_INVALID_NSER
On entry, nseries=1  and there are no parameters in the model, i.e., ( p = q = P = Q = 0  and options.cfixed=TRUE ).
NE_NSER_INCONSIST
Value of nseries passed to nag_tsa_transf_orders (g13byc) was value which is not equal to the value value passed in this function.
NE_NPARA_MR_MT_INCONSIST
On entry, there is inconsistency between npara on the one hand and the elements in the orders structures, arimav and transfv on the other.
NE_DELTA_TEST_FAILED
On entry, or during execution, one or more sets of δ  parameters do not satisfy the stationarity or invertibility test conditions.
NE_SOLUTION_FAIL_CONV
Iterative refinement has failed to improve the solution of the equations giving the latest estimates of the parameters. This occurred because the matrix of the set of equations is too ill-conditioned.
NE_MAT_NOT_POS_DEF
Attempt to invert the second derivative matrix needed in the calculation of the covariance matrix of the parameter estimates has failed. The matrix is not positive-definite, possibly due to rounding errors.
NE_ARIMA_TEST_FAILED
On entry, or during execution, one or more sets of the ARIMA ( ϕ , θ , Φ  or Θ ) parameters do not satisfy the stationarity or invertibility test conditions.
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 consult NAG for assistance.

7  Accuracy

The computation used is believed to be stable.

8  Further Comments

The time taken by nag_tsa_multi_inp_model_forecast (g13bjc) is approximately proportional to the product of the length of each series and the square of the number of parameters in the multi-input model.

9  Example

9.1  Example 1

This example illustrates the use of the default option G13_DEFAULT in a call to nag_tsa_multi_inp_model_forecast (g13bjc).
The data in the example relate to 40 observations of an output time series and 5 input time series. This example differs from Example 1 in nag_tsa_multi_inp_model_estim (g13bec) in that there are now 4 simple input series. The output series has one autoregressive ϕ  parameter and one seasonal moving average Θ  parameter. The seasonal period is 4. The transfer function input (the fifth in the set) is defined by orders b 5 = 1 , q 5 = 0 , p 5 = 1 , r 5 = 3 , so that it allows for pre-observation period effects. The initial values of the specified model are:
ϕ = 0.495 Θ = 0.238 , ω 1 = -0.367 ω2 = -3.876 ω 3 = 4.516 ω 4 = 2.474 ω 5,1 = 8.629 δ 5,1 = 0.688 c = -82.858 .
A further 8 values of the input series are supplied, and it is assumed that the values for the fifth series have themselves been forecast from an ARIMA model with orders 2 0 2 0 1 1 4 , in which ϕ 1 = 1.6743 , ϕ 2 = -0.9505 , θ 1 = 1.4605 , θ 2 = -0.4862  and Θ 1 = 0.8993 , and for which the residual mean square is 0.1720.
The following are computed and printed out: the estimated residual variance for the output noise series, the 8 forecast values and their standard errors.

9.1.1  Program Text

9.1.2  Program Data

9.1.3  Program Results

10  Optional Parameters

A number of optional input and output parameters to nag_tsa_multi_inp_model_forecast (g13bjc) are available through the structure argument options of type Nag_G13_Opt. A parameter may be selected by assigning an appropriate value to the relevant structure member and those parameters not selected will be assigned default values. If no use is to be made of any of the optional parameters the user should use the null pointer, G13_DEFAULT, in place of options when calling nag_tsa_multi_inp_model_forecast (g13bjc); the default settings will then be used for all parameters.
Before assigning values to options the structure must be initialised by a call to the function nag_tsa_options_init (g13bxc). Values may then be assigned directly to the structure members in the normal C manner.
Options selected by direct assignment are checked within nag_tsa_multi_inp_model_forecast (g13bjc) for being within the required range, if outside the range, an error message is generated.
When all calls to nag_tsa_multi_inp_model_forecast (g13bjc) have been completed and the results contained in the options structure are no longer required; then nag_tsa_free (g13xzc) should be called to free the NAG allocated memory from options.

10.1  Optional Parameters Checklist and Default Values

For easy reference, the following list shows the input and output members of options which are valid for nag_tsa_multi_inp_model_forecast (g13bjc) together with their default values where relevant.
Boolean list TRUE
Boolean cfixed FALSE
double *zt
double *noise

10.2  Description of Optional Parameters

list – Boolean InputDefault =TRUE
On entry: if list=TRUE  then the parameter settings which are used in the call to nag_tsa_multi_inp_model_forecast (g13bjc) will be printed.
cfixed – Boolean InputDefault =FALSE
On entry: cfixed must be set to FALSE if the constant was estimated when the model was fitted, and TRUE if it was held at a fixed value. This only affects the degrees of freedom used in calculating the estimated residual variance.
zt – double *OutputDefault memory = nev+nfv × nseries-1
On exit: this pointer is allocated memory internally with nev+nfv × nseries-1  elements corresponding to nev+nfv  rows by nseries-1  columns. The columns of zt hold the values of the input component series z t .
noise – double *OutputDefault memory = nev + nfv
On exit: this pointer is allocated memory internally with nev+nfv  elements. It holds the output noise component n t .

11  Example 2

This example illustrates the use of the options parameter in a call to nag_tsa_multi_inp_model_forecast (g13bjc).
The data in the example relate to the same 40 obervations of an output time series and 5 input time series as in Example 1. This example differs from Example 2 in nag_tsa_multi_inp_model_estim (g13bec) in that there are now 4 simple input series. The output series has one autoregressive ϕ  parameter and one seasonal moving average Θ  parameter. The seasonal period is 4. The transfer function input (the fifth in the set) is defined by orders b 5 = 1 , q 5 = 0 , p 5 = 1 , r 5 = 3 , so that it allows for pre-observation period effects. The initial values of the specified model are:
ϕ = 0.495 Θ = 0.238 , ω 1 = -0.367 ω2 = -3.876 ω 3 = 4.516 ω 4 = 2.474 ω 5,1 = 8.629 δ 5,1 = 0.688 c = -82.858 .
A further 8 values of the input series are supplied, and it is assumed that the values for the fifth series have themselves been forecast from an ARIMA model with orders 2 0 2 0 1 1 4, in which ϕ 1 = 1.6743 , ϕ 2 = -0.9505 , θ 1 = 1.4605 , θ 2 = -0.4862  and Θ 1 = 0.8993 , and for which the residual mean square is 0.1720.
The following are computed and printed out: the estimated residual variance for the output noise series, the 8 forecast values and their standard errors, and the values of the components z t  and the output noise component n t .

11.1  Program Text

11.2  Program Data

11.3  Program Results



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