EngleGranger cointegration test
[h,pValue,stat,cValue,reg1,reg2]
=
egcitest
(Y)
[h,pValue,stat,cValue,reg1,reg2]
= egcitest(Y,Name,Value)
EngleGranger tests assess the null hypothesis of no cointegration
among the time series in Y
. The test regresses Y(:,1)
on Y(:,2:end)
,
then tests the residuals for a unit root.
[
performs
the EngleGranger test on a data matrix h
,pValue
,stat
,cValue
,reg1
,reg2
]
= egcitest
(Y
)Y
.
[
performs
the EngleGranger test on a data matrix h
,pValue
,stat
,cValue
,reg1
,reg2
]
= egcitest(Y
,Name,Value
)Y
with
additional options specified by one or more Name,Value
pair
arguments.

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 
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
.

Character vector, such as y_{1} = Xa + Y_{2}b + ε Values are:
Default: 

Vector or cell vector of vectors containing coefficients [a;b]
to be held fixed in the cointegrating regression. The length of a is
0, 1, 2 or 3, depending on Default: Completely unspecified cointegrating vector (all NaN values). 

Character vector, such as Values are:
Test statistics are computed by calling Default: 

Scalar or vector of nonnegative integers indicating the number
of lags used in the residual regression. The meaning of the parameter
depends on the value of Default: 

Character vector, such as Values are:
The meaning of the parameter depends on the value of Default: 

Scalar or vector of nominal significance levels for the tests. Values must be between 0.001 and 0.999. Default: 0.05 
Singleelement parameter values are expanded to the length of any vector value (the number of tests). Vector values must have equal length. If any value is a row vector, all outputs are row vectors.

Vector of Boolean decisions for the tests, with length equal
to the number of tests. Values of  

Vector of pvalues of the test statistics, with length equal to the number of tests. pvalues are lefttail probabilities.  

Vector of test statistics, with length equal to the number of
tests. The statistic depends on the  

Vector of critical values for the tests, with length equal to
the number of tests. Values are for lefttail probabilities. Since
residuals are estimated rather than observed, critical values are
different from those used in  

Structure of regression statistics from the cointegrating regression.  

Structure of regression statistics from the residual regression. The number of records in
*Lagging and differencing a time series reduces 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 p lagged differences, the common time base is p+2:N and the effective sample size is N−(p+1). 
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 (and reproduce row 1 of Table II in [3]):
[h,pValue,stat,cValue,reg] = egcitest(Y,'test',... {'t1','t2'}); h,pValue
h = 0 1 pValue = 0.0526 0.0202
Plot the estimated cointegrating relation y_{1}−Y_{2}b−Xa:
a = reg(2).coeff(1);
b = reg(2).coeff(2:3);
plot(dates,Y*[1;b]a)
grid on
[1] Engle, R. F. and C. W. J. Granger. "CoIntegration and ErrorCorrection: Representation, Estimation, and Testing." Econometrica. v. 55, 1987, pp. 251–276.
[2] Hamilton, J. D. Time Series Analysis. Princeton, NJ: Princeton University Press, 1994.
[3] MacKinnon, J. G. "Numerical Distribution Functions for Unit Root and Cointegration Tests." Journal of Applied Econometrics. v. 11, 1996, pp. 601–618.