I want to use PCA for rich/cheap analysis of interest rates. For this I did the PCA on the time series of daily difference in interest rates, which is stationary. I cant do pca on levels, as they are not stationary and I have not been able to find any suitable transformation to convert it to stationary either.

I can then reproduce the daily changes using selected eigen vectors. But since I want to make a conclusion about the levels of the original rates(rich/cheap), how should I reproduce the levels from these PCA-based changes? And if doing this even makes sense statistically. I can post my data if that helps.

  • $\begingroup$ You might want to add some more details about what kind of analysis you want to do about the levels. For instance, do you want to forecast the future levels of the time series. $\endgroup$
    – John
    Jun 11, 2015 at 20:01
  • $\begingroup$ @John Thank you for your comment, I have added more information. $\endgroup$
    – InnocentR
    Jun 11, 2015 at 21:08

2 Answers 2


The literature on cointegration in large datasets or panels is really the only place where I've seen this sort of issue discussed. Breitung and Pesaran, among other places, talks about it.

I would recommend applying the PCA to the rate changes (perhaps with some kind of zero lower bound adjustment). Then, take the cumulative sum of each of the factors. This is effectively like the cumulative factor you would be using in a cointegration test or factor error correction model. Next, regress the rates (in levels) against the cumulative factors. At this point, you can test the residuals of this regression for stationarity (I would expect the residuals to be mean-reverting, there are a lot of nuances to panel unit root testing that I'm ignoring).

You have a number of options when creating an investment strategy based on this information. The most obvious is to just buy (sell) the bonds where the residuals are most positive (negative). Highly positive residuals indicates that the yields are more than what the model would suggest and should fall. Obviously, there are a lot of variations you can make on this.

Another alternative is to estimate a factor error correction model. A factor error correction model bears a lot of similarity to the approach described in the second paragraph, but just extends it a little. Once you estimate the model, you can forecast rates, and use that to determine your bond positioning.


I just want to mention that it's highly prevalent to apply PCA to rate levels in rich/cheap analyses. Personally I prefer that...

There's an old MS publication that discusses this very topic and the recommendation is to use level PCA for rich/cheap, and to use change PCA for risk management. There's a really good Salomon paper (Principles of Principal Component) that discusses this in depth as well.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.