jcitest
Johansen cointegration
test
Syntax
[h,pValue,stat,cValue,mles]
= jcitest(Y)
[h,pValue,stat,cValue,mles]
= jcitest(Y,Name,Value)
Description
Johansen tests assess the null hypothesis H(r) of
cointegration rank less than or equal to r among
the numDimsdimensional time series in Y against
alternatives H(numDims) (trace test)
or H(r+1) (maxeig test).
The tests also produce maximum likelihood estimates of the parameters
in a vector errorcorrection (VEC) model of the cointegrated series.
[h,pValue,stat,cValue,mles]
= jcitest(Y) performs the Johansen
cointegration test on a data matrix Y.
[h,pValue,stat,cValue,mles]
= jcitest(Y,Name,Value) performs
the Johansen cointegration test on a data matrix Y with
additional options specified by one or more Name,Value pair
arguments.
Y 
numObsbynumDims matrix
representing numObs observations of a numDimsdimensional
time series y_{t},
with the last observation the most recent. Y cannot
have more than 12 columns. Observations containing NaN values
are removed. Initial values for lagged variables in VEC model estimation
are taken from the beginning of the data.

NameValue Pair Arguments
Specify optional commaseparated pairs of Name,Value arguments.
Name is the argument
name and Value is the corresponding
value. Name must appear
inside single quotes (' ').
You can specify several name and value pair
arguments in any order as Name1,Value1,...,NameN,ValueN.
'model' 
String or cell vector of strings specifying the form of the
deterministic components of the VEC(q) model of y_{t}:
If r < numDims is
the cointegration rank, then C = AB′ where A is
a numDimsbyr matrix of errorcorrection
speeds and B is a numDimsbyr matrix
of basis vectors for the space of cointegrating relations. X contains
any exogenous terms representing deterministic trends in the data.
For maximum likelihood estimation, it is assumed that ε_{t} ~ NID(0,Q),
where Q is the innovations covariance matrix.
Values of model are those considered by Johansen [2]: Value  Form of Cy_{(t−1)} + DX 
H2  AB´y_{t−1}.
There are no intercepts or trends in the cointegrating relations and
there are no trends in the data. This model is only appropriate if
all series have zero mean. 
H1*  A(B´y_{t−1}+c_{0}).
There are intercepts in the cointegrating relations and there are
no trends in the data. This model is appropriate for nontrending data
with nonzero mean. 
H1  A(B´y_{t−1}+c_{0})+c_{1}.
There are intercepts in the cointegrating relations and there are
linear trends in the data. This is a model of deterministic
cointegration, where the relations eliminate both stochastic
and deterministic trends in the data. This is the default value. 
H*  A(B´y_{t−1}+c_{0}+d_{0}t)+c_{1}.
There are intercepts and linear trends in the cointegrating relations
and there are linear trends in the data. This is a model of stochastic
cointegration, where the relations eliminate stochastic
but not deterministic trends in the data. 
H  A(B´y_{t−1}+c_{0}+d_{0}t)+c_{1}+d_{1}t.
There are intercepts and linear trends in the cointegrating relations
and there are quadratic trends in the data. Unless quadratic trends
are actually present in the data, this model might produce good insample
fits but poor outofsample forecasts. 
Deterministic terms outside
of the cointegrating relations, c_{1} and d_{1},
are identified by projecting constant and linear regression coefficients,
respectively, onto the orthogonal complement of A.

'lags' 
Scalar or vector of nonnegative integers indicating the number q of
lagged differences in the VEC(q) model of y(t).
Lagging and differencing a time series reduce the sample size.
Absent any presample values, if y(t)
is defined for t = 1:N, then
the lagged series y(t−k) is
defined for t = k+1:N.
Differencing reduces the time base to k+2:N.
With q lagged differences, the common time base
is q+2:N and the effective sample
size is T = N−(q+1).
Default: 0 
'test' 
String or cell vector of strings indicating the type of test
to be performed. Values are trace or maxeig.
The default value is trace. Both tests asses
the null hypothesis H(r) of
cointegration rank less than or equal to r. Statistics
are computed using the effective sample size T and
ordered estimates of the eigenvalues of C = AB′, λ_{1} >
... > λ_{numDims}. When the value is trace, the
alternative hypothesis is H(numDims).
Statistics are:
When the value is maxeig, the
alternative hypothesis is H(r+1).
Statistics are:

'alpha' 
Scalar or vector of nominal significance levels for the tests.
Values must be between 0.001 and 0.999.
Default: 0.05 
'display' 
String or cell vector of strings indicating whether or not to
display a summary of test results and parameter estimates in the Command
Window. Values are:
Value  Display 
off  No display to the command window. This is the default if jcitest is
called with only one output argument (h). 
summary  Display a summary of test results. Null ranks r = 0:numDims−1 are
displayed in the first column of each summary. Multiple tests are
displayed in separate summaries. This is the default if jcitest is
called with more than one output argument (that is, if pValue is
computed), and is unavailable if jcitest is called
with only one output argument (h). 
params  Display maximum likelihood estimates of the parameter values
associated with the reducedrank VEC(q) model of y(t).
This display is only available if jcitest is
called with five output arguments (that is, if mles is
computed). Displayed parameter values are returned in mles.rn(m).paramVals for
null rank r = n and
test m. 
full  Display both summary and params. 
Scalar or single string values are expanded to the length of
any vector value (the number of tests). Vector values must have equal
length.

Output Arguments
h 
Boolean decisions for the tests. Values of h equal
to 1 (true) indicate rejection
of the null of cointegration rank r in favor of
the alternative. Values of h equal to 0 (false)
indicate a failure to reject the null.

pValue 
Righttail probabilities of the test statistics.

stat 
Test statistics, determined by the test parameter.

cValue 
Critical values for righttail probabilities, determined by
the alpha parameter. jcitest loads
tables of critical values from the file Data_JCITest.mat,
then linearly interpolates testcritical values from the tables. Tabulated
values were computed using methods described in [3].

mles 
Structures of maximum likelihood estimates associated with the
VEC(q) model of y(t).
Each structure has these fields:
Field  Description 
paramNames  Cell vector of parameter names, of the form: {A, B, B1,...,Bq, c0, d0, c1, d1} Elements
depend on the values of lags and model. 
paramVals  Structure of parameter estimates with field names corresponding
to the parameter names in paramNames. 
res  TbynumDims matrix
of residuals, where T is the effective sample size,
obtained by fitting the VEC(q) model of y(t)
to the input data. 
EstCov  Estimated covariance Q of the innovations
process ε_{t}.

eigVal  Eigenvalue associated with H(r). 
eigVec  Eigenvector associated with the eigenvalue in eigVal.
Eigenvectors v are normalized so that v′S_{11}v = 1, where S_{11} is
defined as in [2]. 
rLL  Restricted loglikelihood of Y under the
null. 
uLL  Unrestricted loglikelihood of Y under the
alternative. 

Examples
expand all
Load data on term structure of interest rates in Canada:
load Data_Canada
Y = Data(:,3:end);
names = series(3:end);
plot(dates,Y)
legend(names,'location','NW')
grid on
Test for cointegration:
[h,pValue,stat,cValue,mles] = jcitest(Y,'model','H1');
h,pValue
************************
Results Summary (Test 1)
Data: Y
Effective sample size: 40
Model: H1
Lags: 0
Statistic: trace
Significance level: 0.05
r h stat cValue pValue eigVal

0 1 37.6886 29.7976 0.0050 0.4101
1 1 16.5770 15.4948 0.0343 0.2842
2 0 3.2003 3.8415 0.0737 0.0769
h =
r0 r1 r2
t1 true true false
pValue =
r0 r1 r2
t1 0.0050497 0.034294 0.073661
Plot estimated cointegrating relations
:
YLag = Y(2:end,:);
T = size(YLag,1);
B = mles.r2.paramVals.B;
c0 = mles.r2.paramVals.c0;
plot(dates(2:end),YLag*B+repmat(c0',T,1))
grid on
More About
expand all
Time series in Y might be stationary in
levels or first differences (i.e., I(0) or I(1)).
Rather than pretesting series for unit roots (using, e.g., adftest, pptest, kpsstest, or lmctest),
the Johansen procedure formulates the question within the model. An I(0)
series is associated with a standard unit vector in the space of cointegrating
relations, and its presence can be tested using jcontest.
If jcitest fails to reject the null of
cointegration rank r = 0,
the inference is that the errorcorrection coefficient C is
zero, and the VEC(q) model reduces to a standard
VAR(q) model in first differences. If jcitest rejects
all cointegration ranks r less than numDims,
the inference is that C has full rank, and y(t) is
stationary in levels.
The parameters A and B in
the reducedrank VEC(q) model are not uniquely
identified, though their product C = AB′ is. jcitest constructs B = V(:,1:r)
using the orthonormal eigenvectors V returned by eig, then renormalizes so that V'*S11*V
= I, as in [2].
To test linear constraints on the errorcorrection speeds A and
the space of cointegrating relations spanned by B,
use jcontest.
To convert VEC(q) model parameters in the mles output
to VAR(q+1)
model parameters, use vectovar.
References
[1] Hamilton, J. D. Time Series Analysis.
Princeton, NJ: Princeton University Press, 1994.
[2] Johansen, S. LikelihoodBased
Inference in Cointegrated Vector Autoregressive Models.
Oxford: Oxford University Press, 1995.
[3] MacKinnon, J. G., A. A. Haug, and L. Michelis.
"Numerical Distribution Functions of Likelihood Ratio Tests
for Cointegration." Journal of Applied Econometrics.
v. 14, 1999, pp. 563–577.
[4] Turner, P. M. "Testing for Cointegration
Using the Johansen Approach: Are We Using the Correct Critical Values?" Journal
of Applied Econometrics. v. 24, 2009, pp. 825–831.
See Also
egcitest  jcontest  vectovar