Page 1 of 1
PRINFACTORS—Principal components factor analysis
Posted: Thu Jun 07, 2007 3:34 pm
by TomDoan
@PRINFACTORS does a principal components based factor analysis of an input covariance or correlation matrix. The related procedure
@PRINCOMP can be used if you just need to extract the series of principal components.
Detailed description
Sign reversal
Posted: Fri Jul 13, 2007 10:07 am
by dniggeler@gmx.ch
Hi
Could you please explain to a Rats beginner why in contrast to other stats program I get eigenvectors with a flipped sign.
Thank you for your help,
Dieter.
Posted: Tue Jul 24, 2007 11:43 am
by TomDoan
The signs of eigenvectors are arbitrary. RATS uses a translation of EISPACK FORTRAN code which is probably almost identical to the newer LAPACK code. There's no sign choice in that at all; the signs of the eigenvectors are what they are based upon the input matrix and the order of calculations.
The sign choice is mathematically irrelevant - it only affects how easy it is to read the results. What sign choice is most useful will actually depend upon the situation. The recoding of PRINFACTORS makes the sum of the elements in an eigenvector positive. While this is arguably more useful than having the sign determined effectively randomly, I could think of situations where making the largest value positive would make it easier to read. (CATS, for instance, by default will normalize an eigenvector to make its largest element 1.0).
Re: PRINFACTORS - updated version
Posted: Thu Mar 07, 2013 9:30 am
by IRJ
How can one extract the principal components from the procedure @prinfactors? More specifically, how can one obtain the output of the procedure @princomp using @prinfactors? And how can one normalize the eigenvectors in the two procedures so that the largest eigenvector takes a value of one?
Re: PRINFACTORS - updated version
Posted: Mon Apr 23, 2018 3:57 pm
by TomDoan
IRJ wrote:How can one extract the principal components from the procedure @prinfactors? More specifically, how can one obtain the output of the procedure @princomp using @prinfactors? And how can one normalize the eigenvectors in the two procedures so that the largest eigenvector takes a value of one?
If you want the principal components, just use
@PRINCOMP.
As an example of rescaling:
compute eigen=%ranmat(5,5)
dec vect maxv(%rows(eigen))
ewise maxv(i)=%maxvalue(%abs(%xcol(eigen,i)))
compute eigen=%ddivide(eigen,maxv)