[R] Confused by SVD and Eigenvector Decomposition in PCA

Feng Zhang f0z6305 at labs.tamu.edu
Thu Feb 6 19:04:03 CET 2003


Hey, All

In principal component analysis (PCA), we want to know how many percentage
the first principal component explain the total variances among the data.

Assume the data matrix X is zero-meaned, and
I used the following procedures:
C = covriance(X) %% calculate the covariance matrix;
[EVector,EValues]=eig(C) %%
L = diag(EValues) %%L is a column vector with eigenvalues as the elements
percent = L(1)/sum(L);


Others argue using Sigular Value Decomposition(SVD) to
calculate the same quantity, as:
[U,S,V]=svd(X);
L = diag(S);
L = L.^2;
percent = L(1)/sum(L);


So which way is the correct method to calculate the percentage explained by
the first principal component?

Thanks for your advices on this.

Fred




More information about the R-help mailing list