NAG Library Function Document
nag_tsa_varma_diagnostic (g13dsc)
1 Purpose
nag_tsa_varma_diagnostic (g13dsc) is a diagnostic checking function suitable for use after fitting a vector ARMA model to a multivariate time series using
nag_tsa_varma_estimate (g13ddc).
The residual cross-correlation matrices are returned along with an estimate of their asymptotic standard errors and correlations. Also, nag_tsa_varma_diagnostic (g13dsc) calculates the modified Li–McLeod portmanteau statistic and its significance level for testing model adequacy.
2 Specification
#include <nag.h> |
#include <nagg13.h> |
void |
nag_tsa_varma_diagnostic (Integer k,
Integer n,
const double v[],
Integer kmax,
Integer ip,
Integer iq,
Integer m,
const double par[],
const Nag_Boolean parhld[],
double qq[],
Integer ishow,
const char *outfile,
double r0[],
double r[],
double rcm[],
Integer pdrcm,
double *chi,
Integer *idf,
double *siglev,
NagError *fail) |
|
3 Description
Let
, for
, denote a vector of
time series which is assumed to follow a multivariate ARMA model of the form
where
, for
, is a vector of
residual series assumed to be Normally distributed with zero mean and positive definite covariance matrix
. The components of
are assumed to be uncorrelated at non-simultaneous lags. The
and
are
by
matrices of parameters.
, for
, are called the autoregressive (AR) parameter matrices, and
, for
, the moving average (MA) parameter matrices. The parameters in the model are thus the
(
by
)
-matrices, the
(
by
)
-matrices, the mean vector
and the residual error covariance matrix
. Let
where denotes the by identity matrix.
The ARMA model
(1) is said to be stationary if the eigenvalues of
lie inside the unit circle, and invertible if the eigenvalues of
lie inside the unit circle. The ARMA model is assumed to be both stationary and invertible. Note that some of the elements of the
- and/or
-matrices may have been fixed at pre-specified values (for example by calling
nag_tsa_varma_estimate (g13ddc)).
The estimated residual cross-correlation matrix at lag
is defined to the
by
matrix
whose
th element is computed as
where
denotes an estimate of the
th residual for the
th series
and
. (Note that
is an estimate of
, where
is the expected value.)
A modified portmanteau statistic,
, is calculated from the formula (see
Li and McLeod (1981))
where
denotes Kronecker product,
is the estimated residual cross-correlation matrix at lag zero and
, where
of a
by
matrix is a vector with the
th element in position
.
denotes the number of residual cross-correlation matrices computed. (Advice on the choice of
is given in
Section 9.2.) Let
denote the total number of ‘free’ parameters in the ARMA model excluding the mean,
, and the residual error covariance matrix
. Then, under the hypothesis of model adequacy,
, has an asymptotic
-distribution on
degrees of freedom.
Let
then the covariance matrix of
is given by
where
and
.
is the dispersion matrix
in correlation form and
a nonsingular
by
matrix such that
and
. The construction of the matrix
is discussed in
Li and McLeod (1981). (Note that the mean,
, plays no part in calculating
and therefore is not required as input to nag_tsa_varma_diagnostic (g13dsc).)
4 References
Li W K and McLeod A I (1981) Distribution of the residual autocorrelations in multivariate ARMA time series models J. Roy. Statist. Soc. Ser. B 43 231–239
5 Arguments
The output quantities
k,
n,
v,
kmax,
ip,
iq,
par,
parhld and
qq from
nag_tsa_varma_estimate (g13ddc) are suitable for input to nag_tsa_varma_diagnostic (g13dsc).
- 1:
– IntegerInput
-
On entry: , the number of residual time series.
Constraint:
.
- 2:
– IntegerInput
-
On entry: , the number of observations in each residual series.
- 3:
– const doubleInput
-
On entry: must contain an estimate of the th component of , for and .
Constraints:
- no two rows of may be identical;
- in each row there must be at least two distinct elements.
- 4:
– IntegerInput
-
On entry: the
first
dimension of the arrays
V,
QQ and
R0.
Constraint:
.
- 5:
– IntegerInput
-
On entry: , the number of AR parameter matrices.
Constraint:
.
- 6:
– IntegerInput
-
On entry: , the number of MA parameter matrices.
Constraint:
.
Note: is not permitted.
- 7:
– IntegerInput
-
On entry: the value of
, the number of residual cross-correlation matrices to be computed. See
Section 9.2 for advice on the choice of
m.
Constraint:
.
- 8:
– const doubleInput
-
On entry: the parameter estimates read in row by row in the order
,
.
Thus,
- if ,
must be set equal to an estimate of the th element of , for and ;
- if ,
must be set equal to an estimate of the th element of , for and .
The first
elements of
par must satisfy the stationarity condition and the next
elements of
par must satisfy the invertibility condition.
- 9:
– const Nag_BooleanInput
-
On entry: must be set to Nag_TRUE if has been held constant at a pre-specified value and Nag_FALSE if is a free parameter, for .
- 10:
– doubleInput/Output
-
On entry: is an efficient estimate of the th element of . The lower triangle only is needed.
Constraint:
must be positive definite.
On exit: if
NE_G13D_AR,
NE_G13D_DIAG,
NE_G13D_FACT,
NE_G13D_ITER,
NE_G13D_MA,
NE_G13D_RES,
NE_G13D_ZERO_VAR or
NE_NOT_POS_DEF, then the upper triangle is set equal to the lower triangle.
- 11:
– IntegerInput
-
On entry: must be nonzero if the residual cross-correlation matrices
and their standard errors
, the modified portmanteau statistic with its significance and a summary table are to be printed. The summary table indicates which elements of the residual correlation matrices are significant at the
level in either a positive or negative direction; i.e., if
then a ‘
’ is printed, if
then a ‘
’ is printed, otherwise a fullstop (.) is printed. The summary table is only printed if
on entry.
The residual cross-correlation matrices, their standard errors and the modified portmanteau statistic with its significance are available also as output variables in
r,
rcm,
chi,
idf and
siglev.
- 12:
– const char *Input
-
On entry: the name of a file to which diagnostic output will be directed. If
outfile is
NULL the diagnostic output will be directed to standard output.
- 13:
– doubleOutput
-
On exit: if
, then
contains an estimate of the
th element of the residual cross-correlation matrix at lag zero,
. When
,
contains the standard deviation of the
th residual series. If
NE_G13D_RES or
NE_G13D_ZERO_VAR on exit then the first
k rows and columns of
r0 are set to zero.
- 14:
– doubleOutput
Note: the dimension,
dim, of the array
r
must be at least
.
Where appears in this document, it refers to the array element .
On exit:
is an estimate of the
th element of the residual cross-correlation matrix at lag
, for
,
and
. If
NE_G13D_RES or
NE_G13D_ZERO_VAR on exit then all elements of
r are set to zero.
- 15:
– doubleOutput
-
On exit: the estimated standard errors and correlations of the elements in the array
r. The correlation between
and
is returned as
where
and
except that if
, then
contains the standard error of
. If on exit,
NE_G13D_DIAG or
NE_G13D_FACT, then all off-diagonal elements of
RCM are set to zero and all diagonal elements are set to
.
- 16:
– IntegerInput
-
On entry: the
first
dimension of the array
RCM.
Constraint:
.
- 17:
– double *Output
-
On exit: the value of the modified portmanteau statistic,
. If
NE_G13D_RES or
NE_G13D_ZERO_VAR on exit then
chi is returned as zero.
- 18:
– Integer *Output
-
On exit: the number of degrees of freedom of
chi.
- 19:
– double *Output
-
On exit: the significance level of
chi based on
idf degrees of freedom. If
NE_G13D_RES or
NE_G13D_ZERO_VAR on exit,
siglev is returned as one.
- 20:
– NagError *Input/Output
-
The NAG error argument (see
Section 2.7 in How to Use the NAG Library and its Documentation).
6 Error Indicators and Warnings
- NE_ALLOC_FAIL
-
Dynamic memory allocation failed.
See
Section 2.3.1.2 in How to Use the NAG Library and its Documentation for further information.
- NE_BAD_PARAM
-
On entry, argument had an illegal value.
- NE_G13D_AR
-
On entry, the AR parameter estimates are outside the stationarity region.
- NE_G13D_ARMA
-
On entry, and .
- NE_G13D_DIAG
-
The matrix
rcm could not be computed because one of its diagonal elements was found to be non-positive.
- NE_G13D_FACT
-
On entry, the AR operator has a factor in common with the MA operator.
- NE_G13D_ITER
-
Excessive iterations needed to find zeros of determinental polynomials.
- NE_G13D_MA
-
On entry, the MA parameter matrices are outside the invertibility region.
- NE_G13D_RES
-
On entry, at least two of the residual series are identical.
- NE_G13D_ZERO_VAR
-
On entry, at least one of the residual series in the array
v has near-zero variance.
- NE_INT
-
On entry, .
Constraint: .
On entry, .
Constraint: .
On entry, .
Constraint: .
- NE_INT_2
-
On entry, and .
Constraint: .
On entry, and .
Constraint: .
- NE_INT_3
-
On entry, , and .
Constraint: .
On entry, , and .
Constraint: .
- 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.
An unexpected error has been triggered by this function. Please contact
NAG.
See
Section 2.7.6 in How to Use the NAG Library and its Documentation for further information.
- NE_NO_LICENCE
-
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.
- NE_NOT_CLOSE_FILE
-
Cannot close file .
- NE_NOT_POS_DEF
-
On entry, the covariance matrix
qq is not positive definite.
- NE_NOT_WRITE_FILE
-
Cannot open file for writing.
7 Accuracy
The computations are believed to be stable.
8 Parallelism and Performance
nag_tsa_varma_diagnostic (g13dsc) is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
nag_tsa_varma_diagnostic (g13dsc) 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 implementation-specific information.
The time taken by nag_tsa_varma_diagnostic (g13dsc) depends upon the number of residual cross-correlation matrices to be computed, , and the number of time series, .
The number of residual cross-correlation matrices to be computed,
, should be chosen to ensure that when the ARMA model
(1) is written as either an infinite order autoregressive process, i.e.,
or as an infinite order moving average process, i.e.,
then the two sequences of
by
matrices
and
are such that
and
are approximately zero for
. An overestimate of
is therefore preferable to an under-estimate of
. In many instances the choice
will suffice. In practice, to be on the safe side, you should try setting
.
If you have fitted the ‘white noise’ model
then nag_tsa_varma_diagnostic (g13dsc) should be entered with
,
, and the first
elements of
par and
parhld set to zero and Nag_TRUE respectively.
When
NE_G13D_DIAG or
NE_G13D_FACT all the standard errors in
rcm are set to
. This is the asymptotic standard error of
when all the autoregressive and moving average parameters are assumed to be known rather than estimated.
is useful in testing for instantaneous causality. If you wish to carry out a likelihood ratio test then the covariance matrix at lag zero
can be used. It can be recovered from
by setting
10 Example
This example fits a bivariate AR(1) model to two series each of length . has been estimated but has been constrained to be zero. Ten residual cross-correlation matrices are to be computed.
10.1 Program Text
Program Text (g13dsce.c)
10.2 Program Data
Program Data (g13dsce.d)
10.3 Program Results
Program Results (g13dsce.r)