Language Reference


VARMALIK Call

CALL VARMALIK (lnl, series, phi, theta, sigma <*>, p <*>, q <*>, opt );

The VARMALIK subroutine computes the log-likelihood function for a VARMA($p,q$) model.

The input arguments to the VARMALIK subroutine are as follows:

series

specifies an $n\times k$ matrix that contains the vector time series (assuming mean zero), where n is the number of observations and $k\geq 2$ is the number of variables.

phi

specifies a $km_ p \times k$ matrix that contains the autoregressive coefficient matrices, where $m_ p$ is the number of the elements in the subset of the AR order. You must specify either phi or theta.

theta

specifies a $km_ q \times k$ matrix that contains the moving average coefficient matrices, where $m_ q$ is the number of the elements in the subset of the MA order. You must specify either phi or theta.

sigma

specifies a $k \times k$ covariance matrix of the innovation series. If you do not specify sigma, an identity matrix is used.

p

specifies the subset of the AR order. See the VARMACOV subroutine.

q

specifies the subset of the MA order. See the VARMACOV subroutine.

opt

specifies the method of computing the log-likelihood function:

opt=0

requests the multivariate innovations algorithm. This algorithm requires that the time series is stationary and does not contain missing observations.

opt=1

requests the conditional log-likelihood function. This algorithm requires that the number of the observations in the time series must be greater than p$+$q and that the series does not contain missing observations.

opt=2

requests the Kalman filtering algorithm. This is the default and is used if the required conditions in opt=0 and opt=1 are not satisfied.

The VARMALIK subroutine returns the following value:

lnl

is a $3\times 1$ matrix that contains the log-likelihood function, the sum of log determinant of the innovation variance, and the weighted sum of squares of residuals. The log-likelihood function is computed as $-0.5\times $ (the sum of last two terms).

The options opt=0 and opt=2 are equivalent for stationary time series without missing values. Setting opt=0 is useful for a small number of the observations and a high order of p and q; opt=1 is useful for a high order of P and q; opt=2 is useful for a low order of p and q, or for missing values in the observations.

Consider the following bivariate ($k=2$) VARMA(1,1) model:

\[ \mb{y}_ t = \Phi \mb{y}_{t-1} + \bm {\epsilon }_ t - \Theta \bm {\epsilon }_{t-1} \]
\[ \Phi =\left[\begin{matrix} 1.2 & -0.5 \cr 0.6 & 0.3 \cr \end{matrix}\right] ~ ~ \Theta =\left[\begin{matrix} -0.6 & 0.3 \cr 0.3 & 0.6 \cr \end{matrix}\right] ~ ~ \Sigma =\left[\begin{matrix} 1.0 & 0.5 \cr 0.5 & 1.25 \cr \end{matrix}\right] \]

To compute the log-likelihood function of this model, you can use the following statements:

phi  = { 1.2 -0.5, 0.6 0.3 };
theta= {-0.6  0.3, 0.3 0.6 };
sigma= { 1.0  0.5, 0.5 1.25};
call varmasim(yt, phi, theta) sigma=sigma seed=123;
call varmalik(lnl, yt, phi, theta, sigma);
labl = {"LogLik", "SumLogDet", "SSE"};
print lnl[rowname=labl];

Figure 25.429: Log-Likelihood Components

lnl
LogLik -85.50804
SumLogDet 4.8529601
SSE 166.16313