NAG CL Interface
g13dkc (multi_varma_update)
1
Purpose
g13dkc accepts a sequence of new observations in a multivariate time series and updates both the forecasts and the standard deviations of the forecast errors. A call to
g13djc must be made prior to calling this function in order to calculate the elements of a reference vector together with a set of forecasts and their standard errors. On a successful exit from
g13dkc the reference vector is updated so that should future series values become available these forecasts may be updated by recalling
g13dkc.
2
Specification
void 
g13dkc (Integer k,
Integer lmax,
Integer m,
Integer *mlast,
const double z[],
Integer kmax,
double ref[],
Integer lref,
double v[],
double predz[],
double sefz[],
NagError *fail) 

The function may be called by the names: g13dkc, nag_tsa_multi_varma_update or nag_tsa_varma_update.
3
Description
Let
${Z}_{\mathit{t}}={\left({z}_{1\mathit{t}},{z}_{2\mathit{t}},\dots ,{z}_{k\mathit{t}}\right)}^{\mathrm{T}}$, for
$\mathit{t}=1,2,\dots ,n$, denote a
$k$dimensional time series for which forecasts of
${\hat{Z}}_{n+1},{\hat{Z}}_{n+2},\dots ,{\hat{Z}}_{n+{l}_{\mathrm{max}}}$ have been computed using
g13djc. Given
$m$ further observations
${Z}_{n+1},{Z}_{n+2},\dots ,{Z}_{n+m}$, where
$m<{l}_{\mathrm{max}}$,
g13dkc updates the forecasts of
${Z}_{n+m+1},{Z}_{n+m+2},\dots ,{Z}_{n+{l}_{\mathrm{max}}}$ and their corresponding standard errors.
g13dkc uses a multivariate version of the procedure described in
Box and Jenkins (1976). The forecasts are updated using the
$\psi $ weights, computed in
g13djc. If
${Z}_{t}^{*}$ denotes the transformed value of
${Z}_{t}$ and
${\hat{Z}}_{t}^{*}\left(l\right)$ denotes the forecast of
${Z}_{t+l}^{*}$ from time
$t$ with a lead of
$l$ (that is the forecast of
${Z}_{t+l}^{*}$ given observations
${Z}_{t}^{*},{Z}_{t1}^{*},\dots \text{}$), then
and
where
$\tau $ is a constant vector of length
$k$ involving the differencing parameters and the mean vector
$\mu $. By subtraction we obtain
Estimates of the residuals corresponding to the new observations are also computed as
${\epsilon}_{n+\mathit{l}}={Z}_{n+\mathit{l}}^{*}{\hat{Z}}_{n}^{*}\left(\mathit{l}\right)$, for
$\mathit{l}=1,2,\dots ,m$. These may be of use in checking that the new observations conform to the previously fitted model.
On a successful exit, the reference array is updated so that
g13dkc may be called again should future series values become available, see
Section 9.
When a transformation has been used the forecasts and their standard errors are suitably modified to give results in terms of the original series
${Z}_{t}$; see
Granger and Newbold (1976).
4
References
Box G E P and Jenkins G M (1976) Time Series Analysis: Forecasting and Control (Revised Edition) Holden–Day
Granger C W J and Newbold P (1976) Forecasting transformed series J. Roy. Statist. Soc. Ser. B 38 189–203
Wei W W S (1990) Time Series Analysis: Univariate and Multivariate Methods Addison–Wesley
5
Arguments
The quantities
k,
lmax,
kmax,
ref and
lref from
g13djc
are suitable for input to
g13dkc.

1:
$\mathbf{k}$ – Integer
Input

On entry: $k$, the dimension of the multivariate time series.
Constraint:
${\mathbf{k}}\ge 1$.

2:
$\mathbf{lmax}$ – Integer
Input

On entry: the number,
${l}_{\mathrm{max}}$, of forecasts requested in the call to
g13djc.
Constraint:
${\mathbf{lmax}}\ge 2$.

3:
$\mathbf{m}$ – Integer
Input

On entry:
$m$, the number of new observations available since the last call to either
g13djc or
g13dkc. The number of new observations since the last call to
g13djc is then
${\mathbf{m}}+{\mathbf{mlast}}$.
Constraint:
$0<{\mathbf{m}}<{\mathbf{lmax}}{\mathbf{mlast}}$.

4:
$\mathbf{mlast}$ – Integer *
Input/Output

On entry: on the first call to
g13dkc, since calling
g13djc,
mlast must be set to
$0$ to indicate that no new observations have yet been used to update the forecasts; on subsequent calls
mlast must contain the value of
mlast as output on the previous call to
g13dkc.
On exit: is incremented by
$m$ to indicate that
${\mathbf{mlast}}+{\mathbf{m}}$ observations have now been used to update the forecasts since the last call to
g13djc.
mlast must not be changed between calls to
g13dkc, unless a call to
g13djc has been made between the calls in which case
mlast should be reset to
$0$.
Constraint:
$0\le {\mathbf{mlast}}<{\mathbf{lmax}}{\mathbf{m}}$.

5:
$\mathbf{z}\left[{\mathbf{kmax}}\times {\mathbf{m}}\right]$ – const double
Input

On entry:
${\mathbf{z}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]$ must contain the value of
${z}_{\mathit{i},n+{\mathbf{mlast}}+\mathit{j}}$, for
$\mathit{i}=1,2,\dots ,k$ and
$\mathit{j}=1,2,\dots ,m$, and where
$n$ is the number of observations in the time series in the last call made to
g13djc.
Constraint:
if the transformation defined in
tr in
g13djc for the
$\mathit{i}$th series is the log transformation, then
${\mathbf{z}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]>0.0$, and if it is the squareroot transformation, then
${\mathbf{z}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]\ge 0.0$, for
$\mathit{j}=1,2,\dots ,m$ and
$\mathit{i}=1,2,\dots ,k$.

6:
$\mathbf{kmax}$ – Integer
Input

On entry: the
first
dimension of the arrays
Z,
PREDZ,
SEFZ and
V.
Constraint:
${\mathbf{kmax}}\ge {\mathbf{k}}$.

7:
$\mathbf{ref}\left[{\mathbf{lref}}\right]$ – double
Input/Output

On entry: must contain the first
$\left({\mathbf{lmax}}1\right)\times {\mathbf{k}}\times {\mathbf{k}}+2\times {\mathbf{k}}\times {\mathbf{lmax}}+{\mathbf{k}}$ elements of the reference vector as returned on a successful exit from
g13djc (or a previous call to
g13dkc).
On exit: the elements of
ref are updated. The first
$\left({\mathbf{lmax}}1\right)\times {\mathbf{k}}\times {\mathbf{k}}$ elements store the
$\psi $ weights
${\psi}_{1},{\psi}_{2},\dots ,{\psi}_{{l}_{\mathrm{max}}1}$. The next
${\mathbf{k}}\times {\mathbf{lmax}}$ elements contain the forecasts of the transformed series and the next
${\mathbf{k}}\times {\mathbf{lmax}}$ elements contain the variances of the forecasts of the transformed variables; see
g13djc. The last
k elements are not updated.

8:
$\mathbf{lref}$ – Integer
Input

On entry: the dimension of the array
ref.
Constraint:
${\mathbf{lref}}\ge \left({\mathbf{lmax}}1\right)\times {\mathbf{k}}\times {\mathbf{k}}+2\times {\mathbf{k}}\times {\mathbf{lmax}}+{\mathbf{k}}$.

9:
$\mathbf{v}\left[{\mathbf{kmax}}\times {\mathbf{m}}\right]$ – double
Output

On exit: ${\mathbf{v}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]$ contains an estimate of the $\mathit{i}$th component of ${\epsilon}_{n+{\mathbf{mlast}}+\mathit{j}}$, for $\mathit{i}=1,2,\dots ,k$ and $\mathit{j}=1,2,\dots ,m$.

10:
$\mathbf{predz}\left[{\mathbf{kmax}}\times {\mathbf{lmax}}\right]$ – double
Input/Output

On entry: nonupdated values are kept intact.
On exit:
${\mathbf{predz}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]$ contains the updated forecast of
${z}_{\mathit{i},n+\mathit{j}}$, for
$\mathit{i}=1,2,\dots ,k$ and
$\mathit{j}={\mathbf{mlast}}+{\mathbf{m}}+1,\dots ,{l}_{\mathrm{max}}$.
The columns of
predz corresponding to the new observations since the last call to either
g13djc or
g13dkc are set equal to the corresponding columns of
z.

11:
$\mathbf{sefz}\left[{\mathbf{kmax}}\times {\mathbf{lmax}}\right]$ – double
Input/Output

On entry: nonupdated values are kept intact.
On exit:
${\mathbf{sefz}}\left[{\mathbf{kmax}}\times \left(\mathit{j}1\right)+\mathit{i}1\right]$ contains an estimate of the standard error of the corresponding element of
predz, for
$\mathit{i}=1,2,\dots ,k$ and
$\mathit{j}={\mathbf{mlast}}+{\mathbf{m}}+1,\dots ,{l}_{\mathrm{max}}$.
The columns of
sefz corresponding to the new observations since the last call to either
g13djc or
g13dkc are set equal to zero.

12:
$\mathbf{fail}$ – NagError *
Input/Output

The NAG error argument (see
Section 7 in the Introduction to the NAG Library CL Interface).
6
Error Indicators and Warnings
 NE_ALLOC_FAIL

Dynamic memory allocation failed.
See
Section 3.1.2 in the Introduction to the NAG Library CL Interface for further information.
 NE_BAD_PARAM

On entry, argument $\u2329\mathit{\text{value}}\u232a$ had an illegal value.
 NE_INT

On entry, ${\mathbf{k}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{k}}\ge 1$.
On entry, ${\mathbf{lmax}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{lmax}}\ge 2$.
On entry, ${\mathbf{lref}}=\u2329\mathit{\text{value}}\u232a$ and the minimum size $\text{required}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{lref}}\ge \left({\mathbf{lmax}}1\right)\times {\mathbf{k}}\times {\mathbf{k}}+2\times {\mathbf{k}}\times {\mathbf{lmax}}+{\mathbf{k}}$.
On entry, ${\mathbf{m}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{m}}>0$.
On entry, ${\mathbf{mlast}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{mlast}}\ge 0$.
 NE_INT_2

On entry, ${\mathbf{kmax}}=\u2329\mathit{\text{value}}\u232a$ and ${\mathbf{k}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{kmax}}\ge {\mathbf{k}}$.
 NE_INT_3

On entry, ${\mathbf{m}}=\u2329\mathit{\text{value}}\u232a$, ${\mathbf{lmax}}=\u2329\mathit{\text{value}}\u232a$ and ${\mathbf{mlast}}=\u2329\mathit{\text{value}}\u232a$.
Constraint: ${\mathbf{m}}<{\mathbf{lmax}}{\mathbf{mlast}}$.
 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 contact
NAG for assistance.
See
Section 7.5 in the Introduction to the NAG Library CL Interface for further information.
 NE_NO_LICENCE

Your licence key may have expired or may not have been installed correctly.
See
Section 8 in the Introduction to the NAG Library CL Interface for further information.
 NE_REF_VEC

On entry, some of the elements of the array
ref have been corrupted.
 NE_RESULT_OVERFLOW

The updated forecasts will overflow if computed.
 NE_TRANSFORMATION

On entry, one (or more) of the transformations requested is invalid. Check that you are not trying to log or squareroot a series, some of whose values are negative.
7
Accuracy
The matrix computations are believed to be stable.
8
Parallelism and Performance
g13dkc 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 function. Please also consult the
Users' Note for your implementation for any additional implementationspecific information.
If a further
${m}^{*}$ observations,
${Z}_{n+{\mathbf{mlast}}+1},{Z}_{n+{\mathbf{mlast}}+2},\dots ,{Z}_{n+{\mathbf{mlast}}+{m}^{*}}$, become available, then forecasts of
${Z}_{n+{\mathbf{mlast}}+{m}^{*}+1},{Z}_{n+{\mathbf{mlast}}+{m}^{*}+2},\dots ,{Z}_{n+{l}_{\mathrm{max}}}$ may be updated by recalling
g13dkc with
${\mathbf{m}}={m}^{*}$. Note that
m and the contents of the array
z are the only quantities which need updating;
mlast is updated on exit from the previous call. On a successful exit,
v contains estimates of
${\epsilon}_{n+{\mathbf{mlast}}+1},{\epsilon}_{n+{\mathbf{mlast}}+2},\dots ,{\epsilon}_{n+{\mathbf{mlast}}+{m}^{*}}$; columns
${\mathbf{mlast}}+1,{\mathbf{mlast}}+2,\dots ,{\mathbf{mlast}}+{m}^{*}$ of
predz contain the new observed values
${Z}_{n+{\mathbf{mlast}}+1},{Z}_{n+{\mathbf{mlast}}+2},\dots ,{Z}_{n+{\mathbf{mlast}}+{m}^{*}}$ and columns
${\mathbf{mlast}}+1,{\mathbf{mlast}}+2,\dots ,{\mathbf{mlast}}+{m}^{*}$ of
sefz are set to zero.
10
Example
This example shows how to update the forecasts of two series each of length
$48$. No transformation has been used and no differencing applied to either of the series.
g13ddc
is first called to fit an AR(1) model to the series.
$\mu $ is to be estimated and
${\varphi}_{1}\left(2,1\right)$ constrained to be zero. A call to
g13djc is then made in order to compute forecasts of the next five series values. After one new observation becomes available the four forecasts are updated. A further observation becomes available and the three forecasts are updated.
10.1
Program Text
10.2
Program Data
10.3
Program Results