[R] pca vs. pfa: dimension reduction

Michael Dewey info at aghmed.fsnet.co.uk
Fri Mar 27 15:19:19 CET 2009


At 18:22 25/03/2009, Jonathan Baron wrote:
>On 03/25/09 19:06, soeren.vogel at eawag.ch wrote:
> > Can't make sense of calculated results and hope I'll find help here.
> >
> > I've collected answers from about 600 persons concerning three
> > variables. I hypothesise those three variables to be components (or
> > indicators) of one latent factor. In order to reduce data (vars), I
> > had the following idea: Calculate the factor underlying these three
> > vars. Use the loadings and the original var values to construct an new
> > (artificial) var: (B1 * X1) + (B2 * X2) + (B3 * X3) = ArtVar (brackets
> > for readability). Use ArtVar for further analysis of the data, that
> > is, as predictor etc.
> >
> > In my (I realise, elementary) psychological statistics readings I was
> > taught to use pca for these problems. Referring to Venables & Ripley
> > (2002, chapter 11), I applied "princomp" to my vars. But the outcome
> > shows 4 components -- which is obviously not what I want. Reading
> > further I found "factanal", which produces loadings on the one
> > specified factor very fine. But since this is a contradiction to
> > theoretical introductions in so many texts I'm completely confused
> > whether I'm right with these calculations.

Perhaps I am missing something here but how do you get four 
components with three variables?

> >
> > (1) Is there an easy example, which explains the differences between
> > pca and pfa? (2) Which R procedure should I use to get what I want?
>
>Possibly what you want is the first principal component, which the
>weighted sum that accounts for the most variance of the three
>variables.  It does essentially what you say in your first paragraph.
>So you want something like
>
>p1 <- princomp(cbind(X1,X2,X3),scores=TRUE)
>p1$scores[,1]
>
>The trouble with factanal is that it does a rotation, and the default
>is varimax.  The first factor will usually not be the same as the
>first principal component (I think).  Perhaps there is another
>rotation option that will give you this, but why bother even to look?
>(I didn't, obviously.)
>
>Jon
>--
>Jonathan Baron, Professor of Psychology, University of Pennsylvania
>Home page: http://www.sas.upenn.edu/~baron

Michael Dewey
http://www.aghmed.fsnet.co.uk




More information about the R-help mailing list