Principle Component Analysis Computation
    5 views (last 30 days)
  
       Show older comments
    
Hi all I am applying Principle Component Analysis manauall. I have a Dataset let say
Data= [2.5000 2.4000
    0.5000    0.7000
    2.2000    2.9000
    1.9000    2.2000
    3.1000    3.0000
    2.3000    2.7000
    2.0000    1.6000
    1.0000    1.1000
    1.5000    1.6000
    1.1000    0.9000]
when I compute directly by calling the matlab function princomp I get the PC
0.6779 0.7352
0.7352 -0.6779
But when I do manually like that
function [V newX D] = Untitled(X) X = bsxfun(@minus, X, mean(X,1)); %# zero-center C = (X'*X)./(size(X,1)-1); %'# cov(X)
    [V D] = eig(C);
    [D order] = sort(diag(D), 'descend');       %# sort cols high to low
    V = V(:,order);
    newX = X*V(:,1:end);
end
 0.6779   -0.7352
    0.7352    0.6779
I am getting different result just the minis difference why is it/
Thanks in Advance.
0 Comments
Accepted Answer
  Leah
      
 on 23 Apr 2013
        they are the same because the eigenvector (-.7532 0.6779) is equivalent to (.7532 -0.6779)
3 Comments
  Matt Kindig
      
 on 23 Apr 2013
				They are equal because, by definition, all elements of an eigenvector can be scaled by an arbitrary constant without changing the eigenvector. This is a property of eigenvectors. If (-0.7532, 0.6779) is scaled by -1, it gives (0.7532, -0.6779).
More Answers (0)
See Also
Categories
				Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

