Thursday, January 28, 2016

statistics - How to interpret the eigenmatrix from a Johansen cointegration test?


I ran a Johansen cointegration test on 3 instruments, A B and C.


The results that I got are:


R<=x |     Test Stat  90%    95%    99%
r=0 --> 36.7 18.9 21.1 25.8

r=1 --> 8.4 12.29 14.26 18.52
r=2 --> 0.21 2.7 3.8 6.6



EigenValues EigenMatrix 
0.03 --> 0.25 | 0.512 |-0.79
0.007 --> -0.96 | -0.618 | 0.14
0.00017 --> 0.05 | 0.59 | 0.59

My question is how I interpret these results? How do I know there is a cointegration for the these instruments.



How to build a portfolio using the eigen vector? Which eigen vector should I choose to build my portfolio?



Answer



From remote memory,




  1. The first question is Yes/No question. Is there any stationary, i.e. I(0), time series for different levels of combination r? This question is answered by your first table.




    • For example, if [r=2]'s test stat is say 7 while the critical value of 99% confidence is 6.6 like your example, then I have over 99% confidence to say that all instruments A, B, and C are stationary by themselves. You don't even need to build a co-integrated portfolio/combination. They are ready for mean-reversion strategy already.





    • Obviously, in your example, your [r=2] stat is way much lower than even 90% confidence critical value. Thus, you can't form a stationary time series without sort of combination. Your [r=1] is not close to acceptable threshold, too. Thus, no easy combination like A + Beta*B is stationary.




    • Now, your [r=0] stat looks interesting, test stat 36.7 > 25.8. I have over 99% confidence to say that there is a stationary combination like A + Beta1*B + Beta2*C.






  2. The next question is how to build your portfolio if one of the above hypothesis is positive. In your case is [r=0]. Simply read your corresponding eigenvector that comes with your largest eigenvalue: (0.25 | 0.512 | -0.79), i.e. 0.25*A + 0.512*B -0.79*C is the stationary portfolio you are looking for. You can draw portfolio time series to convince yourself.





Btw, I will be very grateful if someone can refresh me about how to interpret eigenvalues? like what is its unit? I can only remember big eigenvalue is better for the stationarity test above.


EDIT: FYI, I remember the test stat and critical values can be approximated by chi-squared? With this information, you can build a helper function to better interpret these statistic. Here is a quick example in R.


# zero-root function, used for solve df (degree of freedom) of chi-square for given cvals (critical values)



fn_zero_root <- function (df, prob, cval) pchisq(cval, df) - prob



# solve for df
# In [r=1] example: use prob = 90%, cval = 12.29 as the training point




r1.df <- uniroot(fn_zero_root, c(0, 12.29), tol = 0.001, prob = 90/100, cval= 12.29)$root



# Use the above df to calculate confidence for your test stats = 8.4



100*pchisq(8.4, r1.df)
[1] 68.23303



# Validation




pchisq(12.29, r1.df)
[1] 89.99978
pchisq(14.26, r1.df)
[1] 94.82474
pchisq(18.52, r1.df)
[1] 98.88713



No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...