NAG FL Interface
g13bjf (multi_​inputmod_​forecast)

Settings help

FL Name Style:


FL Specification Language:


1 Purpose

g13bjf produces forecasts of a time series (the output series) which depends on one or more other (input) series via a previously estimated multi-input model for which the state set information is not available. The future values of the input series must be supplied. In contrast with g13bhf the original past values of the input and output series are required. 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

Fortran Interface
Subroutine g13bjf ( mr, nser, mt, para, npara, kfc, nev, nfv, xxy, ldxxy, kzef, rmsxy, mrx, parx, ldparx, fva, fsd, sttf, isttf, nsttf, wa, iwa, mwa, imwa, ifail)
Integer, Intent (In) :: nser, mt(4,nser), npara, kfc, nev, nfv, ldxxy, kzef, ldparx, isttf, iwa, imwa
Integer, Intent (Inout) :: mr(7), mrx(7,nser), ifail
Integer, Intent (Out) :: nsttf, mwa(imwa)
Real (Kind=nag_wp), Intent (In) :: parx(ldparx,nser)
Real (Kind=nag_wp), Intent (Inout) :: para(npara), xxy(ldxxy,nser), rmsxy(nser)
Real (Kind=nag_wp), Intent (Out) :: fva(nfv), fsd(nfv), sttf(isttf), wa(iwa)
C Header Interface
#include <nag.h>
void  g13bjf_ (Integer mr[], const Integer *nser, const Integer mt[], double para[], const Integer *npara, const Integer *kfc, const Integer *nev, const Integer *nfv, double xxy[], const Integer *ldxxy, const Integer *kzef, double rmsxy[], Integer mrx[], const double parx[], const Integer *ldparx, double fva[], double fsd[], double sttf[], const Integer *isttf, Integer *nsttf, double wa[], const Integer *iwa, Integer mwa[], const Integer *imwa, Integer *ifail)
The routine may be called by the names g13bjf or nagf_tsa_multi_inputmod_forecast.

3 Description

g13bjf has two stages. The first stage is essentially the same as a call to the model estimation routine g13bef, with zero iterations. In particular, all the parameters remain unchanged in the supplied input series transfer function models and output noise series ARIMA model. 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 zt and nt, and residuals at are calculated exactly as in Section 3 in g13bef, and the state set for forecasting is constituted.
The second stage is essentially the same as a call to the forecasting routine g13bhf. The same information is required, and the same information is returned.
Use of g13bjf should be confined to situations in which the state set for forecasting is unknown. Forecasting from the original data is relatively expensive because it requires recalculation of the state set. g13bjf returns the state set for use in producing further forecasts using g13bhf, or for updating the state set using g13bgf.

4 References

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

5 Arguments

1: mr(7) Integer array Input
On entry: the orders vector (p,d,q,P,D,Q,s) 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.
Constraints:
  • p, d, q, P, D, Q, s0;
  • p+q+P+Q>0;
  • s1;
  • if s=0, P+D+Q=0;
  • if s>1, P+D+Q>0;
  • d+s×(P+D)n;
  • p+d-q+s×(P+D-Q)n.
2: nser 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.
3: mt(4,nser) Integer array Input
On entry: the transfer function model orders b, p and q of each of the input series. The data for input series i is held in column i. Row 1 holds the value bi, row 2 holds the value qi and row 3 holds the value pi.
For a simple input, bi=qi=pi=0.
Row 4 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 and the state set.
When ri=1, any nonzero contents of rows 1, 2 and 3 of column i are ignored.
Constraint: mt(4,i)=1, 2 or 3, for i=1,2,,nser-1.
4: para(npara) Real (Kind=nag_wp) array 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,,ωq1, δ1,,δ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.
On exit: the parameter values may be updated using an additional iteration in the estimation process.
5: npara Integer Input
On entry: the exact number of ϕ, θ, Φ, Θ, ω, δ, c parameters, so that npara=p+q+P+Q+nser+(p+q), the summation being over all the input series. (c must be included whether its value was previously estimated or was set fixed.)
6: kfc Integer Input
On entry: must be set to 1 if the constant was estimated when the model was fitted, and 0 if it was held at a fixed value. This only affects the degrees of freedom used in calculating the estimated residual variance.
Constraint: kfc=0 or 1.
7: nev Integer Input
On entry: the number of original (undifferenced) values in each of the input and output time series.
8: nfv Integer Input
On entry: the number of forecast values of the output series required.
Constraint: nfv>0.
9: xxy(ldxxy,nser) Real (Kind=nag_wp) array Input/Output
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 1 to nser-1) contain the future values of the input series which are necessary for construction of the forecasts of the output series y.
On exit: if kzef=0 then xxy is unchanged except that the relevant nfv values in the column relating to the output series (column nser) contain the forecast values (fva), but if kzef0 then the columns of xxy contain the corresponding values of the input component series zt and the values of the output noise component nt, in that order.
10: ldxxy Integer Input
On entry: the first dimension of the array xxy as declared in the (sub)program from which g13bjf is called.
Constraint: ldxxy(nev+nfv).
11: kzef Integer Input
On entry: must be set to 0 if the relevant nfv values of the forecasts (fva) are to be held in the output series column (nser) of xxy (which is otherwise unchanged) on exit, and 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 xxy on exit.
12: rmsxy(nser) Real (Kind=nag_wp) array Input/Output
On entry: the first (nser-1) elements of rmsxy 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: rmsxy(nser) contains the estimated residual variance of the output noise ARIMA model which is calculated from the supplied series. Otherwise rmsxy is unchanged.
13: mrx(7,nser) Integer array Input/Output
On entry: the orders array for each of the input series ARIMA models. Thus, column i 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.
On exit: unchanged, except for column nser which is used as workspace.
14: parx(ldparx,nser) Real (Kind=nag_wp) array Input
On entry: values of the parameters (ϕ, θ, Φ, and Θ) for each of the input series ARIMA models.
Thus column i contains mrx(1,i) values of ϕ, mrx(3,i) values of θ, mrx(4,i) values of Φ and mrx(6,i) values of Θ, in that order.
Values in the columns relating to those input series for which no ARIMA model is available are ignored.
15: ldparx Integer Input
On entry: the first dimension of the array parx as declared in the (sub)program from which g13bjf is called.
Constraint: ldparxnce, where nce is the maximum number of parameters in any of the input series ARIMA models. If there are no input series, then ldparx1.
16: fva(nfv) Real (Kind=nag_wp) array Output
On exit: the required forecast values for the output series. (Note that these are also output in column nser of xxy if kzef=0.)
17: fsd(nfv) Real (Kind=nag_wp) array Output
On exit: the standard errors for each of the forecast values.
18: sttf(isttf) Real (Kind=nag_wp) array Output
On exit: the nsttf values of the state set based on the first nev sets of (past) values of the input and output series.
19: isttf Integer Input
On entry: the dimension of the array sttf as declared in the (sub)program from which g13bjf is called.
Constraint: isttf(P×s)+d+(D×s)+q+max(p,Q×s)+ncf, where ncf=(bi+qi+pi) and the summation is over all input series for which ri>1.
20: nsttf Integer Output
On exit: the number of values in the state set array sttf.
21: wa(iwa) Real (Kind=nag_wp) array Output
22: iwa Integer Input
23: mwa(imwa) Integer array Output
24: imwa Integer Input
These arguments are no longer accessed by g13bjf. Workspace is provided internally by dynamic allocation instead.
25: ifail Integer Input/Output
On entry: ifail must be set to 0, −1 or 1 to set behaviour on detection of an error; these values have no effect when no error is detected.
A value of 0 causes the printing of an error message and program execution will be halted; otherwise program execution continues. A value of −1 means that an error message is printed while a value of 1 means that it is not.
If halting is not appropriate, the value −1 or 1 is recommended. If message printing is undesirable, then the value 1 is recommended. Otherwise, the value 0 is recommended. When the value -1 or 1 is used it is essential to test the value of ifail on exit.
On exit: ifail=0 unless the routine detects an error or a warning has been flagged (see Section 6).

6 Error Indicators and Warnings

If on entry 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:
ifail=1
On entry, kfc=value.
Constraint: kfc=0 or 1.
On entry, ldxxy=value, nev=value and nfv=value.
Constraint: ldxxynev+nfv.
On entry, nfv=value.
Constraint: nfv>0.
ifail=2
Insufficient degrees of freedom to solve the problem.
npara is inconsistent with mr and mt.
On entry, i=value and mt(4,i)=value.
Constraint: mt(4,i)=1, 2 or 3.
On entry, ldparx=value and the minimum size required=value.
Constraint: ldparxmax(1,max. number of parameters in any input series).
On entry, npara=value and the expected value=value.
Constraint: npara, mr and mt must be consistent.
The orders vector mr is invalid.
ifail=3
One or more sets of delta parameters do not satisfy the stationarity or invertibility conditions.
ifail=8
Unable to calculate the latest parameter estimates.
ifail=9
Failure in inversion of second derivative matrix.
ifail=10
One or more sets of ARIMA parameters do not satisfy the stationarity or invertibility conditions.
ifail=11
On entry, isttf=value.
Constraint: isttf(P×s)+d+(D×s)+q+max(p,Q×s)+ncf.
ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
ifail=-399
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
ifail=-999
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

7 Accuracy

The computations are believed to be stable.

8 Parallelism and Performance

Background information to multithreading can be found in the Multithreading documentation.
g13bjf is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
g13bjf makes calls to BLAS and/or LAPACK routines, which may be threaded within the vendor library used by this implementation. Consult the documentation for the vendor library for further information.
Please consult the X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the Users' Note for your implementation for any additional implementation-specific information.

9 Further Comments

The time taken by g13bjf 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.

10 Example

The data in this example relates to 40 observations of an output time series and 5 input time series. The output series has one autoregressive (ϕ) parameter and one seasonal moving average (Θ) parameter, with initial values ϕ=0.495, Θ=0.238 and c=-82.858. The seasonal period is 4. This example differs from the example in g13bef in that four of the input series are simple series and the fifth is defined by a transfer function with orders b5=1, q5=0, p5=1, r5=3, which allows for pre-observation period effects. The initial values for the transfer model are:
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 state set after initial processing of the original 40 sets of values, the estimated residual variance for the output noise series, the 8 forecast values and their standard errors, and the values of the components zt and the output noise component nt.

10.1 Program Text

Program Text (g13bjfe.f90)

10.2 Program Data

Program Data (g13bjfe.d)

10.3 Program Results

Program Results (g13bjfe.r)