[R-SIG-Finance] Testing for cointegration: Johansen vs Dickey-Fuller
Paul Teetor
paulteetor at yahoo.com
Mon Jan 12 05:56:48 CET 2009
All:
Many, many thanks to Mark, Brian, Jae, Ken, Matthieu, and Silika for the
thoughtful comments which they posted to the list. I am very grateful for
your insights. I will be studying your replies and following-up on what I
learn.
Here is a summary of some major points:
- Testing for cointegration and unit roots is an art, just like building any
significant statistical model. The cointegration and unit root tests are
not as mechanical as I thought.
- My problem is a (relatively) simple bivariate case, therefore the
Engle-Granger or Philips-Ouliaris procedures could be more appropriate. The
Johansen procedure is probably overkill.
- The bivariate tests will likely be more consistent with the Dickey-Fuller
test results.
- I need to decide if the OLS fit is really a meaningful long-run
cointegration vector. If so, my modelling and testing process changes.
- I need to carefully construct my model and consider issues such as long-
and short-run modelling, choice of predictor versus response, number of
lags, trend versus no-trend, etc.
- I also need to carefully check the model, especially for significance.
- I definitely need to get Bernhard Pfaff's book (2nd ed.).
- Bernhard Pfaff's vignette for the VAR package contains useful information,
too.
Again, thanks to everyone who contributed to this discussion.
Paul
-----Original Message-----
From: r-sig-finance-bounces at stat.math.ethz.ch
[mailto:r-sig-finance-bounces at stat.math.ethz.ch] On Behalf Of Paul Teetor
Sent: Friday, January 09, 2009 3:38 PM
To: r-sig-finance at stat.math.ethz.ch
Subject: [R-SIG-Finance] Testing for cointegration: Johansen vs
Dickey-Fuller
R SIG Finance readers:
I am checking a futures spread for mean reversion. I am using the Johansen
test (ca.jo) for cointegration and the Augmented Dickey-Fuller test (ur.df)
for mean reversion.
Here is the odd part: The Johansen test says the two futures prices are not
cointegrated, but the ADF test says the spread is, in fact, mean-reverting.
I am very puzzled. The spread is a linear combination of the prices, and
the ADF test says it is mean-reverting. But the failed Johansen test says
the prices are not cointegrated, so no linear combination of prices is
mean-reverting. Huh??
I would be very grateful is someone could suggest where I went wrong, or
steer me towards some relevent reference materials.
Background: I am studying the spread between TY futures (10-year US
Treasurys) and SR futures (10-year US swap rate), calculated as:
sprd = ty - (1.2534 * sr)
where ty and sr are the time series of futures prices. (The 1.2534 factor
is from an ordinary least squares fit.) I execute the Johansen procedure
this way:
ca.jo(data.frame(ty, sr), type="eigen", ecdet="const")
The summary of the test result is:
######################
# Johansen-Procedure #
######################
Test type: maximal eigenvalue statistic (lambda max) , without
linear trend and constant in cointegration
Eigenvalues (lambda):
[1] 2.929702e-03 6.616599e-04 -1.001412e-17
Values of teststatistic and critical values of test:
test 10pct 5pct 1pct
r <= 1 | 2.00 7.52 9.24 12.97
r = 0 | 8.89 13.75 15.67 20.20
<snip>
I interpret the "r <= 1" line this way: The test statistic for r <= 1 is
below the critical values, hence we cannot reject the null hypothesis that
the rank is less than 2. We conclude that the two time series are not
cointegrated.
I run the ADF test this way:
ur.df(sprd, type="drift")
(I set type="drift" because that seems to correspond to ecdet="const" for
the Johansen test.) The summary of the ADF test is:
###############################################
# Augmented Dickey-Fuller Test Unit Root Test #
###############################################
Test regression drift
<snip>
Value of test-statistic is: -2.9624 4.4142
Critical values for test statistics:
1pct 5pct 10pct
tau2 -3.43 -2.86 -2.57
phi1 6.43 4.59 3.78
I interpret the test statistics as meaning we can reject the null hypothesis
of a unit root (at a confidence level of 90% or better), hence the spread is
mean-reverting. I get similar results from the adf.test() procedure.
F.Y.I., I am running version 2.6.2 of R.
Paul Teetor
Elgin, IL USA
_______________________________________________
R-SIG-Finance at stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only.
-- If you want to post, subscribe first.
More information about the R-SIG-Finance
mailing list