My data has stock returns over n periods for x stocks and m factor exposures for each stock ( ex: value, momentum) for n periods(output of regressions ) . Can I club this data together and then compute the correlation matrix (x by x matrix) and then run pca Do I need to standardize each data set separately ( returns and factor exposure)?


2 Answers 2


It is matter of choice of model

  • do you believe that the volatility of each of your stock / factors is stationary?
  • what is, according to you, the needed number of observation to compute the coef of your covariance matrix with accuracy?

For instance, results on rough volatility suggest that if you want to use you volatility estimate over the next $N$ days, you should use the last $N$ days to estimate it. It is probably a lower number of days than the ones you want to estimate your covariance...

Moreover, for the covariance: do you really want to use days spanning from 6 months before the financial crisis (say early 2008) to one year later (says 2010)? This (relatively short) period is made of very different covariance regime...

Choose your model, can be one different scale for each stock / factor, hence you reduce the returns to their "innovation", and after that you compute the covariance of what you have. If you want more formalized details, I suggest you have a look at Practical Volatility and Correlation Modeling for Financial Market Risk Management, by Torben G. Andersen, Tim Bollerslev, Peter F. Christoffersen, and Francis X. Diebold.


When running PCA on the correlation matrix, you do not need to standardize the data. Correlation is the same as covariance of the standardized data. You may also want to experiment with other types of factor analysis since model $$ R = F\beta + \varepsilon, $$ where idiosyncratic risks $\varepsilon$ are unexplained by any factors, makes more sense. For example, you can try maximum likelihood factor analysis or principal axis factoring. Stata and SPSS are quite convenient for this purpose. R has it as well, of course.


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.