Recorrido Guiado para el análisis de cointegración de Johansen

NOTA: Esta página es una traducción de la Página original preparada por el Profesor Bierens. La traducción ha sido preparada con fines pedagógicos por Julio César Alonso

¿Qué es cointegración?

Cointegración corresponde al hecho que exista cierta combinación lineal de cada uno de los componentes (Xi,t, i = 1,...,k) del proceso vectorial  Xt que es estacionaria, donde los cada uno de los componentes de  Xt presentan una raíz unitaria, posiblemente con deriva (drift). Así,

Xt = Xt-1 + m + Vt,

donde Vt es un vector de dimensiones k estacionario con media cero y m  es un vector de dimensiones k de derivas (drift parameters). Entonces existirá una matriz de dimensiones k ´ r de bs con rango r < k tal que b'Xt es estacionario (o estacionario al rededor de una tendencia).

Para probar que esto es posible, supongamos que Vt puede ser escrito como un proceso infinito vectorial de media móvil :

Vt = C(L)et,

donde et es i.i.d (idénticamente e independientemente distribuido) y C(L) es un polinomio matricial en el operador de rezagos:

C(L) = C0 + C1L + C2L2 + C3L3 + ...........,

Donde Cj's corresponden a matrices k ´ k de coeficientes y L es el operador de rezagos (v.g., Let = et-1). Ahora, podemos expresar C(L) como

C(L) = C(1) + [C(L) - C(1)] = C(1) + (1 - L)D(L),

donde

D(L) = [C(L) - C(1)]/(1 - L).

Esto siempre es posible, porque C(L) - C(1) es una matriz de ceros para L = 1, así cada elemento de esta este polinomio matricial de rezagos tiene una raíz igual a la unidad y por tanto esos elementos tendrán como factor común 1 - L. A continuación, definamos

Wt = D(L)et.

Bajo algunas condiciones de regularidad de las matrices Cj, el proceso Wt's será estacionario.

Ahora podemos escribir

Xt = Xt-1 + m + C(1)et + Wt - Wt-1,

expresión que por substitución hacia atrás puede ser escrita como

Xt = X0 - W0 + mt + C(1)[et + ... + e1] + Wt.

Aparte del vector  X0 - W0 (que realiza las funciones de un vector de interceptos) y de la tendencia lineal mt, la no estacionaridad de Xt se debe al termino m C(1)[et + ... + e1]. Pero si la matriz C(1) es singular, con rango k-r < k, entonces existen r combinaciones lineales de las filas de C(1) que son vectores fila de ceros. Es decir, los coeficientes de estas combinaciones lineales de la matriz b dimenciones k ´ r  satisfacen: b'C(1) = O. Así

b'Xt = b'(X0 - W0) + b'mt + b'Wt.

Para t ® ¥ el vector aleatorio b'Wt será independiente de b'(X0 - W0), de tal forma que para t grande este último término puede ser tratado como un vector constante de interceptos. Entonces b'Xt es estacionario al rededor de una tendencia, pues b'Wt es estacionario con media cero. Las columnas de la matriz b se denominan los vectores de cointegración y el rango r de b se denomina el rango de cointegración.

El teorema de representación de Granger

Clive Granger demostró que bajo algunas condiciones de regularidad podemos escribir el proceso cointegrado  Xt como un Modelo Vectorial de Corrección de Errores (VECM por su nombre en inglés Vector Error):

DXt = p0 + p1t + P1DXt-1 + .... + Pp-1DXt-p+1 + ab'Xt-p + Ut,

donde D es el operador de diferencias (v.g., DXt = Xt - Xt-1), los Ut's son i.i.d. (0,S) y

p1 = ag1

para algún vector g1 de dimensiones  r . Esta última condición se conoce como  restricción de cointegración para los parámetros de la tendencia, la cual es necesaria pues de lo contrario Xt sería un vector de procesos con raíces unitarias con deriva lineal (linear drift) (lo cual es raro en la práctica). Así

DXt = p0 + P1DXt-1 + .... + Pp-1DXt-p+1 + a[g1t + b'Xt-p] + Ut.

Como DXt es estacionario, debemos tener que g1t + b'Xt-p es estacionario, por tanto b'Xt es estacionario en la tendencia.

¿Cuándo necesitamos una tendencia en el VECM?

La mayoría de las series de tiempo macroeconómicas como el PIB presentan una deriva: esta series muestan un patrón con tendencia con fluctuaciones no estacionarias al rededor de la tendencia determinística. Sin embargo, un VECM sin tendencia,

DXt = p0 + P1DXt-1 + .... + Pp-1DXt-p+1 + ab'Xt-p + Ut,

es capas de generar una deriva en Xt pues p0 actúa (de alguna manera) como un vector de parámetros de derivas. Así la deriva en el proceso Xt no es razón para incluir una tendencia en el VECM.

Deberíamos incluir una tendencia en el VECM si usted espera que:

Restricciones de Cointegración para los parámetros del intercepto de un VECM

Ahora supongamos que en el anterior VECM existe un vector g0 tal que

p0 = ag0.

Esta condición es denominada restricción de cointegración para los parámetros del intercepto. Entonces el VECM puede escribirse como

DXt = P1DXt-1 + .... + Pp-1DXt-p+1 + a[g0 + b'Xt-p] + Ut.

En este caso los componentes de b'Xt (o algunos de ellos) son estacionarios al rededor de una constante. Por ejemplo, el caso bivariado con vector de cointegración  b = (1,-1)', b'Xt es estacionario alrededor de una constante si (hablando informalmente) la brecha entre X1,t y X2,t es diferente de cero y se mantiene mas o menos constantes.

Noten que esto no significa que Xt no tiene deriva (drift), sólo implica que b'm = 0 en la ecuación b'Xt = b'(X0 - W0) + b'mt + b'Wt derivada arriba.

Prueba de cointegración de Johansen.

La aproximación de Soren Johansen es estimar el VECM por máxima verosimilitud, bajo varios supuestos entorno a los parámetros de tendentecita o del intercepto y el número de vectores de cointegración r , y después efectuar pruebas de razones de máxima verosimilitud.  Assumiendo que los errores del VECM  (Ut) son independientes y siguen una distribución Nk[0,S] y dada las restricciones de cointegración para los parámetros de la tendencia o del intercepto, la función de máxima verosimilitud Lmax(r) depende del rango de cointegración r. Johansen propuso 2 tipos de pruebas para r:

Ambas pruebas siguen asintóticamente una distribución no estándar es más, dado el rango de cointegración r Johansen también derivó una razón de máxima verosimilitud para la restricción de cointegración para los parámetros de la tendencia y del intercepto.

Para más lecturas en el tema de cointegración, ver mis notas de clase (Ver notas de clase del Profesor Bierens lecture notes on cointegration) y las referencias a los documentos de Johansen al final de esta recorrido guiado.

Análisis de cointegración en la práctica

Los datos

Los datos corresponde a la base de datos de EasyReg, en especial datos trimestrales para el consumo y PIB nominales de los Estados Unidos. Las dos series se emplearán en logaritmos (use la opción  Menu > Input > Transform variables).

Antes de efectuar el análisis de cointegración, debemos comrpobar si las series de tiempo involucradas corresponden a procesos con raíces unitarias, empleando la opción Menu > Data analysis > Unit root tests (root 1).

También, siempre grafique los datos para determinar si existe una deriva (drift), y si incluye una tendencia en el VECM. Los datos son graficados a continuación:

TSPLOT window

Claramente, existe evidencia fuerte de la presencia de una deriva (drift). Las dos series aparentemente se mueven paralelamente, lo cual sugiere que se debe emplear un VECM sin tendencia y sin restricciones de cointegración en los parámetros del intercepto.

Análisis de cointegración en la práctica: 1ra corrida

Abra la opción Menu > Multiple equation models > Johansen's cointegration analysis, seleccione las dos series y seleccione la opción  "Intercepts only, with cointegrating restrictions imposed":

COINTJ window

Si hacemos clic en References entonces la referencias de los documentos de Johansen apareserán (ver el final de este documento) en una ventana de texto.

Dado que los datos son trimestrales, podemos tambien incluir variables dummy estacionales. Sin embargo, las series de tiempo involucradas están des-estacionalisadas, de tal forma que esta opción no es necesaria para nuestro caso.

Haga clic en Option OK. La siguiente ventana nos deja seleciona el orden  p del VECM. EasyReg puede hacer esto automáticamente empleando los criterios de información de Hannan-Quinn y/o Schwarz. Dado que la aproximación de Johansen es algo sensitiva a la escogencia de p, yo recomiendo emplear esta opción. Si este es el caso, el valor de seleccionado de p será únicamente el limite superior del orden del VECM.

COINTJ window

El criterio de Hannan-Quinn sugiere emplear p = 4 y el criterio de Schwarz sugiere p = 2. Yo recomiendo emplear el más grande de los dos:: p = 4:

COINTJ window

Haga clic en p OK:

COINTJ window

Haga clic en Coninue:

COINTJ window

Aquí encontrará los resultados para las pruebas de lambda-max y traza. EasyReg analizará automáticamente los resultados y hará una recomendación sobre el orden de integración r. Sin embargo, no debemos ciegamente seguir esta sugerencia, por el contrario deberiamos obtener nuestras propias conclusiones. En este caso, sin embargo, la sugerencia de un r = 1 parece ser adecuada, por lo menos a un nivel de significancia del 5%.

Si estamos en desacuerdo con EasyReg, podemos ajustar el valor de r.

Haga click en Continue:

COINTJ window

Dado que habíamos impuesto una restricción de cointegración sobre los parámetros del intercepto, EasyReg hará una prueba de esta hipótesis. ¡Sin embargo esta hipótesis es rechazada!

El problema es que una inspección visual de las series de tiempo involucradas no es una manera ideal para determinar si debemos incluir o no una tendencia. Aparentemente, las dos curvas en el gráfico de arriba no se comportan exactamente de manera paparalela, pero esto es dificil de ver. Por tanto, debemos rehacer el análisis. Haga clic en click Cancel y reinicie el proceso otra vez.

Análisis de cointegración en la práctica: 2da corrida

Ahora incluyamos una tendencia en el VECM e impongamos restricciones de cointegración en los parámetros de la tendencia.

COINTJ window

Repitamos el proceso para seleccionar p, que en este caso corresponde al mismo resultado anterior: p = 4.

COINTJ window

La prueba lambda-max y traza indican que r = 1.

COINTJ window

Ahora la restricción impuesta sobre la tendencia es aceptada, así que podemos continuar.

COINTJ window

SI dejamos la casilla "write output to file OUTPUT.TXT" seleccionada, entonces todas las estimación y pruebas seran anexadas al archivo de salida (output file) cuando hagamos clic en Done/Other options.

Ahora tenemos dos opciones. Despues de completar estas opciones, retornaremos a esta misma ventana.

La primera opción será discutida a continuación. Por tanto haga clic en Test parameter restrictions.

Prueba de restricciones para los parámetros del vector de cointegración

COINTJ window

Suponga que deseamos comprobar si el vector de cointegración es  b = (-1,1)' en vez de (-0.973619,1)'. Para hacer esto, remplace el valor de  -0.973619 por -1, y haga clic en  Vector H OK (H en EasyReg corresponde al vector b de arriba).

En general debemos remplazar todas las entradas estimadas (los números entre -1 y 1) por números fijos, excepto para los números 1, pues estos se deben a la normalización del vector de cointegración. Si la matriz H (alias b) tien 2 o más columnas, usted puede borrar una o más columnas pero obviamente deberá dejar al menos una.

COINTJ window

La hipótesis es aceptada a un nivel de confianza del 5% pero es rechazada a un nivel de 10%. Una manera de reconfirmar esta hipótesis es conformar la combinación lineal implicita (empleando > Input > Transform variables) y comprobar si corresponde a un proceso con raíz unitaria. En este caso, yo he creado una nueva variable, LN[nominal GDP]-LN[nominal consumption], y efectuado varias pruevas de raíces unitarias y de estacionaridad al rededor de una tendencia. Parece que esta variable es un proceso unitario, de tal manera que (-1,1)' no es un vector de cointegración.

Haga clic en Done y posteriormente en Innovation response analysis.

Analisis de impulso-respuesta (Innovation response analysis)

La otra opción es efectuar un análisis (no estructural) de impulso-respuesta similar al caso del  VAR estacionario.

COINTJ window

Yo he escogido un horizonte de respuestas de 40 periodos, que corresponde a 10 años.

HAga clic en Start. A continuación las respuestas son calculadas:

COINTJ window

Los valores numéricos de las respuestas son reportados en esta ventana. Usualmente estamos interesados únicamente en los gráficos de las respuestas, así que no hay necesidad de guardar las respuestas al archivo de salida (output file). Por tanto, podemos dejar la casilla "store output" sin seleccionar.

Haga click en Continue:

COINTJ window

Dado que algunos de los parámetros estimados de máxima verosimilitud tienen una distribución no-estándar, los gráficos de impulso-respuesta no son construidos con bandas de errores estándar.

Otra diferencia con el análisis estándar de impulso-respuesta es que en general las respuestas no tienden a cero. Por tanto los impulsos o shocks podrian inducir cambios permanentes en los niveles, como se obserba en el gráfico arriba.

Los Resultados

Abajo se presenta la salida de la segunda corrida:


EasyReg International [August 29, 2003]
Session date: Wednesday September 3, 2003
Session time: 10:28:09
----------------------------------------------

Johansen's cointegration analysis:

Dependent variables:
Y(1) = LN[nominal consumption]
Y(2) = LN[nominal GDP]

Characteristics:
LN[nominal consumption]
  First observation = 33(=1947.1)
  Last observation  = 223(=1994.3)
  Number of usable observations: 191
  Minimum value: 5.0536948E+000
  Maximum value: 8.4462341E+000
  Sample mean:   6.6648432E+000
LN[nominal GDP]
  First observation = 33(=1947.1)
  Last observation  = 223(=1994.3)
  Number of usable observations: 191
  Minimum value: 5.4236276E+000
  Maximum value: 8.8234566E+000
  Sample mean:   7.0953749E+000


Information criteria:
  p     Hannan-Quinn          Schwarz
  1     -1.85644E+01     -1.83377E+01
  2     -1.89468E+01     -1.85674E+01
  3     -1.89676E+01     -1.84343E+01
  4     -1.89808E+01     -1.82923E+01
  5     -1.89483E+01     -1.81033E+01
  6     -1.89272E+01     -1.79243E+01
  7     -1.88742E+01     -1.77122E+01
  8     -1.88427E+01     -1.75202E+01
  9     -1.88489E+01     -1.73646E+01
 10     -1.89132E+01     -1.72656E+01
 11     -1.88816E+01     -1.70694E+01
 12     -1.89056E+01     -1.69273E+01
p =                4                2
Remark: These estimates of p are only asymptotically correct.

Chosen VAR(p) order: p = 4


Error correction model
(Cointegrating restrictions on the trend parameters imposed)

z(t)-z(t-1) = A(1)(z(t-1)-z(t-2)) + .... + A(3)(z(t-3)-z(t-4) + B.H'(z(t-4)',t-4)' + c + u(t),
where:

1: z(t) is a 2-vector with components:
   z(1,t) = LN[nominal consumption](t)
   z(2,t) = LN[nominal GDP](t)

2: H'(z(t-4)',t-4)' = e(t-4), say, is the r-vector of error correction
terms, with H the 3xr matrix of cointegrating vectors,

3: c is a 2-vector of constants,

4: u(t) is the 2-vector of error terms.

5: t = 37(=1948.1),...,223(=1994.3).


Matrix Skk:
0.9132701    0.8989686    46.9964855   
0.8989686    0.8854574    46.3370578   
46.9964855   46.3370578   2451.0662661 

Matrix Sko[Soo^-1]Sok:
0.0222743  0.0232121  1.2612369  
0.0232121  0.0241895  1.3141306  
1.2612369  1.3141306  71.7803021 

Generalized Eigenvalues of Sko[Soo^-1]Sok w.r.t. Skk:
0.1645072 0.0172668 0         

Corresponding Eigenvectors:
-0.9156543 -0.4378486 1          
1          1          -0.9308772 
-0.0011596 -0.0107648 -0.0005286 


LR test (Lambda-max test) of the null hypothesis that there are r 
cointegrated vectors against the alternative that there are r + 1 
cointegrated vectors
Table 5: Restriction on trend imposed. 
         C.f. Johansen (1994), table V 
                      critical values     conclusions:
   r test statistic    20%  10%   5%      20%    10%     5%
   0           33.6   14.7 16.9 19.2   reject reject reject
   1            3.3    8.6 10.6 23.5   accept accept accept

LR test (trace test) of the null hypothesis that there are at most r 
cointegrated vectors against the alternative that there are 2 
cointegrated vectors
Table 5: Restriction on trend imposed. 
         C.f. Johansen (1994), table V 
                      critical values     conclusions:
   r test statistic    20%  10%   5%      20%    10%     5%
   1            3.3    8.6 10.6 12.5   accept accept accept
   0           36.9   20.3 23.0 25.4   reject reject reject

Conclusion: r =1


Standardized cointegrating vector: 
-0.9156543  LN[nominal consumption]
         1  LN[nominal GDP]
-0.0011596  t


Error correction model
(Cointegrating restrictions on the trend parameters imposed)

z(t)-z(t-1) = A(1)(z(t-1)-z(t-2)) + .... + A(3)(z(t-3)-z(t-4) + B.H'(z(t-4)',t-4)' + c + u(t),
where:

1: z(t) is a 2-vector with components:
   z(1,t) = LN[nominal consumption](t)
   z(2,t) = LN[nominal GDP](t)

2: H'(z(t-4)',t-4)' = e(t-4), say, is the 1-vector of error correction
terms, with H the 3x1 matrix of cointegrating vectors: H =
-0.9156543 
1          
-0.0011596 

3: c is a 2-vector of constants,

4: u(t) is the 2-vector of error terms.

5: t = 37(=1948.1),...,223(=1994.3).


ML estimation results for the VECM:
Parameter names:
Elements of the matrix A(k): a(i,j,k), k=1,..,3
Components of the vector B: b(i)
Components of the vector c: c(i)


Equation 1: DIF1[LN[nominal consumption]]
Parameter ML estimate
a(1,1,1)    -0.248140
a(1,2,1)     0.282982
a(1,1,2)     0.275947
a(1,2,2)     0.038602
a(1,1,3)     0.184454
a(1,2,3)    -0.211952
b(1)         0.073180
c(1)        -0.052540

s.e.:      8.79608E-03
R-Square:       0.2698
n:                 187

Equation 2: DIF1[LN[nominal GDP]]
Parameter ML estimate
a(2,1,1)     0.382883
a(2,2,1)     0.149728
a(2,1,2)     0.390740
a(2,2,2)    -0.056182
a(2,1,3)     0.185361
a(2,2,3)    -0.244998
b(2)        -0.071612
c(2)         0.066501

s.e.:      1.05578E-02
R-Square:       0.2808
n:                 187

ML estimate of the variance matrix of u(t):
0.0000741 0.0000616 
0.0000616 0.0001067 

Error correction term = LN[nominal GDP](-4)
                         -0.915654*LN[nominal consumption](-4)
                         -0.001160*(t-4)


Remark: If you choose to conduct innovation response analysis,
this model will be used.

LR test of the null hypothesis that the 
imposed restrictions on the trend parameters hold:
Test statistic = .23
Asymptotic null distribution: Chi-square(1)
p-value = 0.63109
Significance levels:        10%         5%
Critical values:           2.71       3.84
Conclusions:             accept     accept
The cointegrating vectors are calculated without imposing 
restrictions on the time trend parameters.

Standardized cointegrating vector: 
-0.9132153  LN[nominal consumption]
         1  LN[nominal GDP]

Remark: This result will be used to test restrictions on the cointegrating vector.

Error correction model
(No cointegrating restrictions on the trend parameters imposed, 
but they are assumed to hold anyway)

z(t)-z(t-1) = A(1)(z(t-1)-z(t-2)) + .... + A(3)(z(t-3)-z(t-4) + B.H'z(t-4) + C.d(t) + u(t),
where:

1: z(t) is a 2-vector with components:
   z(1,t) = LN[nominal consumption](t)
   z(2,t) = LN[nominal GDP](t)

2: H'z(t-4) = e(t-4), say, is the 1-vector of error correction
terms, with H the 2x1 matrix of cointegrating vectors: H =
-0.9132153 
1          

3: d(t) is the 2-vector of deterministic variables, with components:
   d(t,1) = 1
   d(t,2) = t


4: u(t) is the 2-vector of error terms.

5: t = 37(=1948.1),...,223(=1994.3).


ML estimation results for the VECM:
Parameter names:
Elements of the matrix A(k): a(i,j,k), k=1,..,3
Components of the vector B: b(i)
Elements of the matrix C: c(i,j)


Equation 1: DIF1[LN[nominal consumption]]
Parameter ML estimate
a(1,1,1)    -0.250013
a(1,2,1)     0.282575
a(1,1,2)     0.272812
a(1,2,2)     0.038963
a(1,1,3)     0.183650
a(1,2,3)    -0.211794
b(1)         0.067345
c(1,1)      -0.045949
c(1,2)      -0.000075

s.e.:      8.81848E-03
R-Square:       0.2702
n:                 187

Equation 2: DIF1[LN[nominal GDP]]
Parameter ML estimate
a(2,1,1)     0.380114
a(2,2,1)     0.148980
a(2,1,2)     0.386479
a(2,2,2)    -0.055845
a(2,1,3)     0.184296
a(2,2,3)    -0.244799
b(2)        -0.079453
c(2,1)       0.070051
c(2,2)       0.000104

s.e.:      1.05794E-02
R-Square:       0.2819
n:                 187

ML estimate of the variance matrix of u(t):
0.000074  0.0000615 
0.0000615 0.0001065 

Error correction term = LN[nominal GDP](-4)
                         -0.913215*LN[nominal consumption](-4)


Null hypothesis: There exists a cointegrating vector x satisfying 
x = Hy,
where y an arbitrary conformable vector.
In other words, H spans the space of cointegrating vectors.
H:
-1 
1  
LR test: Test statistic: 3.72.  Null distr.: Chi-square(1)
  Significance levels:        10%         5%
  Critical values:           2.71       3.84
  Conclusions:             reject     accept

Referencias

Johansen,S. (1988), "Statistical Analysis of Cointegrating Vectors", Journal of Economic Dynamics and Control 12, 231-254

Johansen,S. (1991), "Estimation and Hypothesis Testing of Cointegrating Vectors in Gaussian Vector Autoregressive Models", Econometrica 59, 1551-1580

Johansen,S. (1994), "The Role of the Constant and Linear Terms in Cointegration Analysis of Nonstationary Variables", Econometric Reviews 13(2)

Johansen,S. and K.Juselius (1990), "Maximum Likelihood Estimation and Inference on Cointegration, with Applications to the Demand for Money", Oxford Bulletin of Economics and Statistics 52, 169-210

Este es el FIN del Recorrido guiado para el análisis de cointegración

NOTA: Esta página es una traducción de la Página original preparada por el Profesor Bierens. La traducción ha sido preparada con fines pedagógicos por Julio César Alonso