Approximating Johansen Trace Test Critical Values for Many Variables
Summary
The document addresses how to obtain approximate critical values for the Johansen cointegration trace test when the system has more variables than commonly tabulated references cover. It proposes an approximation based on a correction factor that depends on degrees of freedom, applied to a chi-squared distribution whose degrees of freedom depend on the number of cointegrating vectors being tested.
The approach is attributed to results derived from Johansen’s paper. The answer gives a short computational recipe and reports example upper-quantile values for several cointegrating-vector counts, noting that they are close to values in the paper and in a software package’s tables. This is an approximation rather than a full simulation procedure, and the document does not present error bounds or establish accuracy for every system size, significance level, or model specification. Users should treat it as a practical estimate and check that its assumptions fit their application.
Key ideas
- The answer approximates Johansen trace statistic critical values with a scaled chi-squared distribution.
- The correction factor depends on the system’s degrees of freedom.
- The chi-squared degrees of freedom are set as a function of the number of cointegrating vectors tested.
- Reported examples are described as close to published and software table values.
- The approximation’s accuracy limits across specifications are not quantified.
Tags
Full text
# Critical values of trace statistic of Johansen cointegration test for arbitrary number of I(1) variables
# Critical values of trace statistic of Johansen cointegration test for arbitrary number of I(1) variables
I am trying to find the critical values of the trace statistic Johansen cointegration test for a large number of I(1) variables. However, I cannot find these values tabulated anywhere beyond n = 12 cointegration vectors. Is there any way to compute these values by simulation for n>12 (n ~ 50)? I am using the Python statsmodels.tsa.vector_ar.vecm.coint_johansen package.
Thank you
## Answer by md0101 (score 2, accepted)
https://quant.stackexchange.com/a/76262
Based on the paper STATISTICAL ANALYSIS OF COINTEGRATION VECTORS (Johansen, 1987), I derived the following solution which gives a good approximation of the critical values:
Let $c(f) = f \rightarrow 0.85 - 0.58/f$ where $f$ is the number of degrees of freedom of your system. Then a good approximation of the trace statistic distribution is $c(2k^2) \chi^2(2k^2)$ where $k$ is the number of cointegrating vectors considered.
A Python script to compute the critical values:
```
from scipy.stats import chi2
def c(ddf):
return 0.85-0.58/ddf
def critical_value(q, ddf):
return(c(ddf)*chi2.ppf(q = q, df = ddf))
```
Testing for $q = 0.9$ and for $k$ ranging from 1 to 10, I obtain:
```
(k, critical value for f = 2*k**2)
(1, 2.579),
(2, 10.389),
(3, 21.254),
(4, 35.425),
(5, 52.959),
(6, 73.875),
(7, 98.18),
(8, 125.878),
(9, 156.972),
(10, 191.462)
```
We can see that these values are close to the ones reported by Johansen in his paper and the ones used in `statsmodels.tsa.coint_tables`. For those interested in reading the paper, the relevant results are in page 9 and 22 (theorem 3 and 4).
Hope this helps!Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.