----- Forwarded message from Marko Djurakic  -----

     Date: Fri, 6 Jun 2014 09:25:03 -0400
      From: Marko Djurakic
      Reply-To: Marko Djurakic
      Subject: Re: Comparing svd() and prcomp() output from R
      To: morphmet@morphometrics.org

On 6.6.2014 11:09, morphmet_modera...@morphometrics.org wrote:

Hi folks,

This is really a R question, but perhaps someone can help me.

When I run svd() and prcomp() functions on my procrustes aligned coordinates, I 
end up with an interesting situation, where the 1st component from the prcomp() 
is identical to the 2nd component from svd() and it keeps going with this shift.

The first component from SVD has a large variance attached to it. If you remove 
that and recalculate the percentages, they are identical to the variances 
explained by prcomp.

Any ideas what's happening?

Thanks,
M

Hi,
I am not able to answer why did you obtain such shift between svd() and 
prcomp(), but below is a way how you can obtain identical results using those 
functions.

Probably you provided an incorrect input for svd(). Both prcomp() and svd() use 
the singular value decomposition to find eigenvectors and eigenvalues. However, 
functions differ regarding required inputs. prcomp() works on a matrix of 
Procrustes aligned coordinates (e.g rows are individuals and columns are 
x,y,(z) variables). If you want to obtain results using svd() you must provide 
covariance matrix of the CENTERED data rather than matrix of Procrustes aligned 
coordinates. If you do this accordingly, svd() will return eigenvalues and 
eigenvectors, and individual scores can be computed by multiplying eigenvectors 
with original data (matrix of the CENTERED data).

If you are interested here is David Polly's great tutorial that might help:
http://www.indiana.edu/~g562/PBDB2013/Day%203B%20-%20PCA%20and%20morphospace.pdf

Here I summarized svd() and prcomp() comparison:

## Load package, data, perform GPA, format Procrustes coordinates into two 
dimensional array (e.g rows are individuals and columns are x,y variables)
library (geomorph)
data (plethodon)                                               
coords 

Reply via email to