Basándome en el documento STATISTICAL ANALYSIS OF COINTEGRATION VECTORS (Johansen, 1987), derivé la siguiente solución que da una buena aproximación de los valores críticos:
Sea $c(f) = f \rightarrow 0.85 - 0.58/f$ donde $f$ es el número de grados de libertad de su sistema. Entonces, una buena aproximación de la distribución estadística de la traza es $c(2k^2) \chi^2(2k^2)$ donde $k$ es el número de vectores cointegradores considerados.
Un script en Python para calcular los valores críticos:
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))
Pruebas de $q = 0.9$ y para $k$ que van de 1 a 10, obtengo:
(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)
Podemos ver que estos valores se aproximan a los comunicados por Johansen en su trabajo y a los utilizados en statsmodels.tsa.coint_tables
. Para los interesados en leer el documento, los resultados pertinentes se encuentran en las páginas 9 y 22 (teoremas 3 y 4).
Espero que le sirva de ayuda.