I have about 60 macroeconomic and financial indicators; all of them stationary (logs and differencing), with monthly data for the last 25 years. I am trying to predict changes in a financial variable (Y) for the month and the quarter ahead.

I have processed the data through PCA (Principal Components Analysis) and CFA (Common Factor Analysis). I am now using the corresponding components and factors to create 2 OLS models that would allow me to forecast the change in the independent variable as per below.

enter image description here

I have used lasso in Stata to estimate models that use the best variables (Principal components and Common Factors) that have good in-sample and out-sample performance. However, lasso is not able to handle lag variables.

I wanted to ask the following:

  1. Is there any problem from a statistical point of view if I include lag variables of Principal Components or Common Factors? My understanding is that one of the benefits of PCA and CFA is that the new variables are not correlated for PCA, and almost not correlated for CFA. Hence, introducing the new variables could it add multicollinearity problems if one of the components has serial correlation? Is there any other reason to not do this, as I couldn't find any academic paper using lags on principal component regressions. The new model would look like below.

enter image description here

  1. It seems that it is not possible to use lag variables in Stata when implementing Lasso. Do I need to select the model with lags by trial and error or is there any other tool.

  2. What are the tests that I need to run in the data/model to check that the results are not biased:

    3.a. Stationary test, has been completed before running PCA/CFA

    3.b. Multicollinearity not required because of PCA/CFA? What about if I add the lag variables?

    3.c. Do I need to check for autocorrelation within the independent and each of the dependent variables?

    3.d. any other test?

  • $\begingroup$ You may have to lag the PCA components manually and include them in the model as if they were "normal" regressors. That should enable Lasso to work, although you may get the occasional odd result, like lags 0, 1, and 4 are included but lag 3 is not. $\endgroup$
    – jbowman
    Jan 19 at 2:42
  • $\begingroup$ Thanks @jbowman, I will proceed with creating new variables with the lag values. I do see your point on Lasso not including L3 but including L4 for example. Just wanted to confirm that there is no potential for OLS violations on doing this, and if any test needs to be done after including the lag values. $\endgroup$ Jan 19 at 2:51
  • $\begingroup$ No, there shouldn't be any OLS violations - those would occur if the lagged variables were your target variable, but since they are your right-hand side variables, you are good. $\endgroup$
    – jbowman
    Jan 19 at 2:56
  • $\begingroup$ Thanks @jbowman ! I suppose multicollinearity (correlation between any of the components and its lagged values) is not relevant because I am forecasting and not trying to understand the specific effect from a variable. Or could be the case that multicollinearity makes the regression bias? $\endgroup$ Jan 19 at 3:11
  • $\begingroup$ Some amount of multicollinearity exists in almost all real-world problems. It doesn't induce bias, and unless the condition number of the matrix $X'X$ ($X$ being the right hand side variables) is high, it isn't really a problem. $\endgroup$
    – jbowman
    Jan 19 at 3:20


Your Answer

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