How should I test for multivariate ARCH effects in R? I want to test for conditional heteroskedasticity in the form of ARCH effects in a multivariate time series. In the univariate setting, an ARCH-LM test can be used. A natural extension for the multivariate setting would be a multivariate ARCH-LM test.
Question: Is there a multivariate ARCH-LM test in R?
(Except for arch.test in package "vars" that requires an estimated VAR object of class varest as an input.)
 A: 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.
