This question already has an answer here:

Suppose that you have 1000 features, and a data set made up of say, 50,000 points. Suppose then that we perform PCA, and we extract the top 5 PCs, since they explain 99.99 percent of the variance, and thats all we care about.

From those top 5 PCs, can we 'go backwards', and be able to decipher, what the most 'important' features were from the original 1000? For example, can we answers the question, "What combination of my original 1000 features were responsible for my top PC?"

Thank you.


marked as duplicate by amoeba, gung, Scortchi, John, Xi'an Jan 19 '15 at 5:57

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ The answer is tied to what exactly you mean by "important". Also, what is "top PC"? PC1 or PC1 through PC5 combined? $\endgroup$ – ttnphns Sep 14 '13 at 15:16
  • 1
    $\begingroup$ @ttnphns By top PC I just mean the first one. What I mean by "important": I want to know, what features in my original 1000 feature space, weigh more heavily in giving rise to the first PC. Put another way: I have 1000 features. I found that my first 5 PCs explain 99.99% of the variance. Thus, what features from my original 1000 may I remove? $\endgroup$ – Creatron Sep 14 '13 at 15:26
  • 1
    $\begingroup$ The 1st eigenvector values are the regression weights of variables in predicting the 1st component $\endgroup$ – ttnphns Sep 14 '13 at 16:06
  • $\begingroup$ @ttnphns Ah yes I think that is what I was looking for thanks. In my googling, I have come across different terminology that may mean the same thing: PCA 'loadings', PCA 'scores', etc. What is the proper terminology for what you just described? Thanks! $\endgroup$ – Creatron Sep 14 '13 at 16:08
  • $\begingroup$ That's not different terminology at all, that's different things. Loadings are eigenvector values normalized by the respective eigenvalue. "Scores" are the computed values of a component. $\endgroup$ – ttnphns Sep 14 '13 at 16:12

Each of the principal components projects the whole original feature space onto several dimensions, which I will call the latent features. The more an original feature contributes to a latent feature, the more important it is for that feature.

Thus, look at the absolute values of the Eigenvectors' components corresponding to the $k$ largest Eigenvalues. The larger they are, the more a specific feature contributes to that principal component.

Mind, however, that these will typically be dense. If you want to find some kind of minimal feature space that explains most of the data, you might be interested in sparse pca.

  • 1
    $\begingroup$ Thanks that makes a lot of sense. So if I retained only 5 PCs, then I can essentially look at the eigenvectors corresponding to those first 5 eigenvalues, and the absolute values of the eigenvector elements will be the 'importance' so to speak of each original feature. Have I understood you right? Question, must not one normalize the eigenvectors by its corresponding eigenvalue first? $\endgroup$ – Creatron Sep 14 '13 at 20:15
  • 1
    $\begingroup$ If you want to compare them over different eigenvalues, that might make sense yes. $\endgroup$ – bayerj Sep 15 '13 at 13:21
  • $\begingroup$ @bayerj, must you normalise the vector by its corresponding eigenvalue or normalize to the magnitude of value 1 (unit vector)? $\endgroup$ – Vass Feb 26 '15 at 14:22

You can answer the last question by looking at the loadings of that PC. You could also do this for each of the other 5 PCs. I am not sure what you could do about the overall importance of particular variables.

  • $\begingroup$ You mean the eigen values from the decomposition? Right, of my original 1000 features, I found that my 5 top PCs explain 99.99% of the variance. My question is, which of my original 1000 features can I do away with? Clearly a lot, because I went from 1000 to 5. But which ones? $\endgroup$ – Creatron Sep 14 '13 at 15:28
  • $\begingroup$ Not the eigenvalues, the loadings of the variables on the components. Which software are you using (the terminology may differ). $\endgroup$ – Peter Flom Sep 14 '13 at 15:35
  • $\begingroup$ Let me ask a different way, I have decomposed the correlation matrix of my data set $C$, into $P \Sigma P^H = C$. How do you ascertain the pc loadings from here? $\endgroup$ – Creatron Sep 14 '13 at 16:00
  • $\begingroup$ I don't know.... I know how to find the loadings from SAS output or R output of PCA. $\endgroup$ – Peter Flom Sep 14 '13 at 17:07
  • $\begingroup$ @TheGrapeBeyond: the loadings (aka rotation matrix) are the eigenvectors $P$. The eigenvalues $\Sigma$ give the variance covered by that component. $\endgroup$ – cbeleites Oct 7 '13 at 20:24

Since eigen vectors are from the linear combination of the original variables, I don't think you can safely determine which of the original variables you can do away with from PCA. I felt this is more like a Factor Analysis question (related to latent variables).


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