[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