I was looking for the multivariate ARCH-LM test in R and had a hard time finding it (but finally I succeeded). Hence, I decided to post a question with an answer here, on Cross Validated.
Indeed, the package "vars" has the multivariate ARCH-LM test implemented in function arch.test
. However, it requires the input to be an estimated VAR object of class varest
, which is not always comfortable. Fortunately, there exists an alternative. There are four tests for multivariate ARCH effects in package "MTS". They all are implemented in one function MarchTest
:
- $Q ^*(m)$: multivariate Ljung-Box test, sort-of-univariate version (scales the residuals by the square root of the inverse of the estimated covariance matrix and tests for autocorrelation in each of the squared scaled series; does not consider cross-terms between the series)
- $\bar R $: rank-based test (assesses autocorrelation of ranks of scaled squared residuals)
- $Q_k^*(m)$: multivariate Ljung-Box test, regular multivariate version (asymptotically equivalent to multivariate ARCH-LM test)
- $Q_k^r(m)$: robust multivariate Ljung-Box test, sort-of-univariate version (cuts off outliers, otherwise the same as $Q_k^*(m)$)
The tests are discussed in Tsay "Multivariate Time Series Analysis: With R and Financial Applications" p. 401-403 (p. 403-407 include a simulation study and an example application). Conclusions from the limited simulation study are as follows:
- $Q_k^*(m)$ has marked size distortions in presence of heavy tails.
- $Q_k^r(m)$ is preferred to $Q_k^*(m)$.
- $\bar R $ performs nicely and is robust to heavy-tailed distributions.
The tests are coded in R, so they may be a bit slow if used on large data or iterated many times.