hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_tsa_multi_inputmod_forecast_state (g13bh)

Purpose

nag_tsa_multi_inputmod_forecast_state (g13bh) produces forecasts of a time series (the output series) which depends on one or more other (input) series via a multi-input model which will usually have been fitted using nag_tsa_multi_inputmod_estim (g13be). The future values of the input series must be supplied. The original observations are not required. nag_tsa_multi_inputmod_forecast_state (g13bh) uses as input either the original state set obtained from nag_tsa_multi_inputmod_estim (g13be), or the state set updated by a series of new observations from nag_tsa_multi_inputmod_update (g13bg). 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.

Syntax

[xxyn, mrx, fva, fsd, ifail] = g13bh(sttf, mr, mt, para, xxyn, mrx, parx, rmsxy, kzef, 'nsttf', nsttf, 'nser', nser, 'npara', npara, 'nfv', nfv)
[xxyn, mrx, fva, fsd, ifail] = nag_tsa_multi_inputmod_forecast_state(sttf, mr, mt, para, xxyn, mrx, parx, rmsxy, kzef, 'nsttf', nsttf, 'nser', nser, 'npara', npara, 'nfv', nfv)
Note: the interface to this routine has changed since earlier releases of the toolbox:
Mark 22: nfv has been made optional
.

Description

The forecasts of the output series ytyt are calculated, for t = n + 1,,n + Lt=n+1,,n+L, where nn is the latest time point of the observations used to produce the state set and LL is the maximum lead time of the forecasts.
First the new input series values xtxt are used to form the input components ztzt, for t = n + 1,,n + Lt=n+1,,n+L, using the transfer function models:
(a) zt = δ1zt1 + δ2zt2 + + δpztp + ω0xtbω1xtb1ωqxtbqzt=δ1zt-1+δ2zt-2++δpzt-p+ω0xt-b-ω1xt-b-1--ωqxt-b-q.
The output noise component ntnt is then forecast by setting at = 0at=0, for t = n + 1,,n + Lt=n+1,,n+L, and using the ARIMA model equations:
(b) et = φ1et1 + φ2et2 + + φpetp + atθ1at1θ2at2θ1atqet=ϕ1et-1+ϕ2et-2++ϕpet-p+at-θ1at-1-θ2at-2--θ1at-q
(c) wt = Φ1wts + Φ2wt2 × s + + ΦPwtP × s + etΘ1etsΘ2et2 × sΘQetQ × swt=Φ1wt-s+Φ2wt-2×s++ΦPwt-P×s+et-Θ1et-s-Θ2et-2×s--ΘQet-Q×s
(d) nt = (dsD)1(wt + c)nt=(dsD) -1(wt+c).
This last step of ‘integration’ reverses the process of differencing. Finally the output forecasts are calculated as
yt = z1,t + z2,t + + zm,t + nt.
yt=z1,t+z2,t++zm,t+nt.
The forecast error variance of yt + lyt+l (i.e., at lead time ll) is Sl2Sl2, 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
snl2 = Vn × (ψ02 + ψ12 + + ψl12),
snl2=Vn×(ψ02+ψ12++ψl-12),
where VnVn is the estimated residual variance of the output noise ARIMA model, and ψ0,ψ1,ψ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,,Lt=0,1,,L, but with artificial values for the various series and with the constant cc set to 00. Thus all values of atat, etet, wtwt and ntnt are taken as zero, for t < 0t<0; atat is taken to be 11, for t = 0t=0 and 00, for t > 0t>0. The resulting values of ntnt, for t = 0,1,,Lt=0,1,,L, are precisely ψ0,ψ1,,ψLψ0,ψ1,,ψL as required.
Further contributions to Sl2Sl2 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
szl2 = Vx × (ν02 + ν12 + + νl12),
szl2=Vx×(ν02+ν12++νl-12),
where VxVx is the estimated residual variance of the input series ARIMA model. The coefficients ν0,ν1,ν0,ν1, are calculated by applying the transfer function model equation (a) above, for t = 0,1,,Lt=0,1,,L, but again with artificial values of the series. Thus all values of ztzt and xtxt, for t < 0t<0, are taken to be zero, and x0,x1,x0,x1, are taken to be the psi-weight sequence ψ0,ψ1,ψ0,ψ1, for the input series ARIMA model. The resulting values of ztzt, for t = 0,1,,Lt=0,1,,L, are precisely ν0,ν1,,νLν0,ν1,,νL as required.
In adding such contributions szl2szl2 to snl2snl2 to make up the total forecast error variance Sl2Sl2, 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.

References

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

Parameters

Compulsory Input Parameters

1:     sttf(nsttf) – double array
2:     mr(77) – int64int32nag_int array
The orders vector (p,d,q,P,D,Q,s)(p,d,q,P,D,Q,s) of the ARIMA model for the output noise component.
pp, qq, PP and QQ give respectively the number of autoregressive (φ)(ϕ), moving average (θ)(θ), seasonal autoregressive (Φ)(Φ) and seasonal moving average (Θ)(Θ) parameters.
dd, DD and ss refer respectively to the order of non-seasonal differencing, the order of seasonal differencing, and the seasonal period.
Constraints:
  • pp, dd, qq, PP, DD, QQ, s0s0;
  • p + q + P + Q > 0p+q+P+Q>0;
  • s1s1;
  • if s = 0s=0, P + D + Q = 0P+D+Q=0;
  • if s > 1s>1, P + D + Q > 0P+D+Q>0.
3:     mt(44,nser) – int64int32nag_int array
The transfer function orders bb, pp and qq of each of the input series. The data for input series ii are held in column ii. Row 1 holds the value bibi, row 2 holds the value qiqi and row 3 holds the value pipi. For a simple input, bi = qi = pi = 0bi=qi=pi=0.
Row 4 holds the value riri, where ri = 1ri=1 for a simple input, ri = 2​ or ​3ri=2​ or ​3 for a transfer function input. When ri = 1ri=1, any nonzero contents of rows 1, 2 and 3 of column ii are ignored. The choice of ri = 2ri=2 or ri = 3ri=3 is an option for use in model estimation and does not affect the operation of nag_tsa_multi_inputmod_forecast_state (g13bh).
Constraint: mt(4,i) = 1mt4i=1, 22 or 33, for i = 1,2,,nser1i=1,2,,nser-1.
4:     para(npara) – double array
Estimates of the multi-input model parameters as returned by nag_tsa_multi_inputmod_estim (g13be). These are in order, firstly the ARIMA model parameters: pp values of φϕ parameters, qq values of θθ parameters, PP values of ΦΦ parameters and QQ values of ΘΘ parameters. These are followed by the transfer function model parameter values ω0,ω1,,ωq1ω0,ω1,,ωq1, δ1,δ2,,δp1δ1,δ2,,δp1 for the first of any input series and similar sets of values for any subsequent input series. The final component of para is the constant cc.
5:     xxyn(ldxxyn,nser) – double array
ldxxyn, the first dimension of the array, must satisfy the constraint ldxxynnfvldxxynnfv.
The supplied nfv values for each of the input series required to produce the nfv output series forecasts. Column ii contains the values for input series ii. Column nser need not be supplied.
6:     mrx(77,nser) – int64int32nag_int array
The orders array for each of the input series ARIMA models. Thus, column ii contains values of pp, dd, qq, PP, DD, QQ, ss for input series ii. In the case of those inputs for which no ARIMA model is available, the corresponding orders should be set to 00. (The model for any input series only affects the standard errors of the forecast values.)
7:     parx(ldparx,nser) – double array
ldparx, the first dimension of the array, must satisfy the constraint ldparxncdldparxncd, where ncdncd is the maximum number of parameters in any of the input series ARIMA models. If there are no input series, ldparx1ldparx1.
Values of the parameters (φϕ, θθ, ΦΦ and ΘΘ) for each of the input series ARIMA models. Thus column ii contains mrx(1,i)mrx1i values of φϕ parameters, mrx(3,i)mrx3i values of θθ parameters, mrx(4,i)mrx4i values of ΦΦ parameters and mrx(6,i)mrx6i values of ΘΘ parameters – in that order.
Values in the columns relating to those input series for which no ARIMA model is available are ignored. (The model for any input series only affects the standard errors of the forecast values.)
8:     rmsxy(nser) – double array
The estimated residual variances for each input series ARIMA model followed by that for the output noise ARIMA model. In the case of those inputs for which no ARIMA model is available, or when its effects are to be excluded in the calculation of forecast standard errors, the corresponding entry of rmsxy should be set to 00.
9:     kzef – int64int32nag_int scalar
Must not be set to 00, if the values of the input component series ztzt and the values of the output noise component ntnt are to overwrite the contents of xxyn on exit, and must be set to 00 if xxyn is to remain unchanged on exit, apart from the appearance of the forecast values in column nser.

Optional Input Parameters

1:     nsttf – int64int32nag_int scalar
Default: The dimension of the array sttf.
The exact number of values in the state set array sttf as returned by nag_tsa_multi_inputmod_estim (g13be) or nag_tsa_multi_inputmod_update (g13bg).
2:     nser – int64int32nag_int scalar
Default: The dimension of the arrays mt, rmsxy and the second dimension of the arrays xxyn, parx. (An error is raised if these dimensions are not equal.)
The total number of input and output series. There may be any number of input series (including none), but only one output series.
3:     npara – int64int32nag_int scalar
Default: The dimension of the array para.
The exact number of φϕ, θθ, ΦΦ, ΘΘ, ωω, δδ and cc parameters. (cc must be included, whether its value was previously estimated or was set fixed).
4:     nfv – int64int32nag_int scalar
Default: The first dimension of the array xxyn.
The number of forecast values required.

Input Parameters Omitted from the MATLAB Interface

ldxxyn ldparx wa iwa

Output Parameters

1:     xxyn(ldxxyn,nser) – double array
ldxxynnfvldxxynnfv.
If kzef = 0kzef=0, then column nser of xxyn contains the output series forecast values (as does fva), but xxyn is otherwise unchanged.
If kzef0kzef0, then the columns of xxyn hold the corresponding values of the forecast components ztzt for each of the input series and the values of the output noise component ntnt in that order.
2:     mrx(77,nser) – int64int32nag_int array
Unchanged, apart from column nser which is used for workspace.
3:     fva(nfv) – double array
The required forecast values for the output series.
4:     fsd(nfv) – double array
The standard errors for each of the forecast values.
5:     ifail – int64int32nag_int scalar
ifail = 0ifail=0 unless the function detects an error (see [Error Indicators and Warnings]).

Error Indicators and Warnings

Errors or warnings detected by the function:
  ifail = 1ifail=1
On entry,nsttf is not consistent with the orders in arrays mr and mt.
  ifail = 2ifail=2
On entry,npara is not consistent with the orders in arrays mr and mt.
  ifail = 3ifail=3
On entry,ldxxyn is too small.
  ifail = 4ifail=4
On entry,iwa is too small.
  ifail = 5ifail=5
On entry,ldparx is too small.
  ifail = 6ifail=6
On entry, one of the riri, stored in mt(4,i)mt4i, for i = 1,2,,nser1i=1,2,,nser-1, does not equal 11, 22 or 33.

Accuracy

The computations are believed to be stable.

Further Comments

The time taken by nag_tsa_multi_inputmod_forecast_state (g13bh) is approximately proportional to nfv × nparanfv×npara.

Example

function nag_tsa_multi_inputmod_forecast_state_example
sttf = [6.716; 158.3022; -80.3352; -74.8937; -80.7694; -70.3022; 0.8476; -2.0234; -5.808; 10.2943];
mr = [int64(1);0;0;0;1;1;4];
mt = [int64(1),0; ...
             0,0; ...
             1,0; ...
             3,0];
para = [0.5158; 0.9994; 8.6343; 0.6726; -0.3172];
xxyn = [6.923, 0; 6.939, 0; 6.705, 0; 6.914, 0];
mrx = [int64(2),0; ...
             0,0; ...
             2,0; ...
             0,0; ...
             1,0; ...
             1,0; ...
             4,0];
parx = [1.6743, 0; -0.9505, 0; 1.4605, 0; -0.4862, 0; 0.8993, 0];
rmsxy = [0.172; 22.9256];
kzef = int64(1);
[xxynOut, mrxOut, fva, fsd, ifail] = ...
    nag_tsa_multi_inputmod_forecast_state(sttf, mr, mt, para, xxyn, mrx, parx, rmsxy, kzef)
 

xxynOut =

  164.4620  -76.1897
  170.3924  -70.4499
  174.5193  -73.8694
  175.2747  -80.1789


mrxOut =

                    2                    1
                    0                    0
                    2                    0
                    0                    0
                    1                    1
                    1                    1
                    4                    4


fva =

   88.2723
   99.9425
  100.6499
   95.0958


fsd =

    4.7881
    6.4690
    7.3175
    7.5534


ifail =

                    0


function g13bh_example
sttf = [6.716; 158.3022; -80.3352; -74.8937; -80.7694; -70.3022; 0.8476; -2.0234; -5.808; 10.2943];
mr = [int64(1);0;0;0;1;1;4];
mt = [int64(1),0; ...
             0,0; ...
             1,0; ...
             3,0];
para = [0.5158; 0.9994; 8.6343; 0.6726; -0.3172];
xxyn = [6.923, 0; 6.939, 0; 6.705, 0; 6.914, 0];
mrx = [int64(2),0; ...
             0,0; ...
             2,0; ...
             0,0; ...
             1,0; ...
             1,0; ...
             4,0];
parx = [1.6743, 0; -0.9505, 0; 1.4605, 0; -0.4862, 0; 0.8993, 0];
rmsxy = [0.172; 22.9256];
kzef = int64(1);
[xxynOut, mrxOut, fva, fsd, ifail] = ...
    g13bh(sttf, mr, mt, para, xxyn, mrx, parx, rmsxy, kzef)
 

xxynOut =

  164.4620  -76.1897
  170.3924  -70.4499
  174.5193  -73.8694
  175.2747  -80.1789


mrxOut =

                    2                    1
                    0                    0
                    2                    0
                    0                    0
                    1                    1
                    1                    1
                    4                    4


fva =

   88.2723
   99.9425
  100.6499
   95.0958


fsd =

    4.7881
    6.4690
    7.3175
    7.5534


ifail =

                    0



PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2013