[R] Principal Component analysis question
John Fox
jfox at mcmaster.ca
Thu Apr 11 03:55:42 CEST 2002
Dear Damien,
Principal components are identified up to a reflection through the origin,
so the solutions are really all equivalent -- corresponding components are
the same, except for a possible change in sign.
John
At 05:43 PM 4/10/2002 -0500, you wrote:
>I have a question about princomp(mva) that I hope isn't too newbie.
>
>I used the sample data from Table 1.1 in "Manly (1986/1994) Multivariate
>Statistical Methods: a primer. Chapman and Hall" on sparrow body measurements.
>
>I rescaled the data to mean 0 and SD 1, and the covariance matrix is:
>
> V1 V2 V3 V4 V5
>V1 1.0000000 0.7349642 0.6618119 0.6452841 0.6051247
>V2 0.7349642 1.0000000 0.6737411 0.7685087 0.5290138
>V3 0.6618119 0.6737411 1.0000000 0.7631899 0.5262701
>V4 0.6452841 0.7685087 0.7631899 1.0000000 0.6066493
>V5 0.6051247 0.5290138 0.5262701 0.6066493 1.0000000
>
>Now when I call princomp [fun<-princomp(~V1+V2+V3+V4+V5)], I get the
>following loadings:
>
> Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
>V1 -0.4517989 -0.05072137 0.6904702 0.42041399 -0.3739091
>V2 -0.4616809 0.29956355 0.3405484 -0.54786307 0.5300805
>V3 -0.4505416 0.32457242 -0.4544927 0.60629605 0.3427923
>V4 -0.4707389 0.18468403 -0.4109350 -0.38827811 -0.6516665
>V5 -0.3976754 -0.87648935 -0.1784558 -0.06887199 0.1924341
>
>However, this is in contrast to the results in Manly's book:
>
> Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
>V1 0.4517989 -0.05072137 0.6904702 -0.42041399 0.3739091
>V2 0.4616809 0.29956355 0.3405484 0.54786307 -0.5300805
>V3 0.4505416 0.32457242 -0.4544927 -0.60629605 -0.3427923
>V4 0.4707389 0.18468403 -0.4109350 0.38827811 0.6516665
>V5 0.3976754 -0.87648935 -0.1784558 0.06887199 -0.1924341
>
>Interestingly, when I do the same in SAS, I get:
>
> Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
>V1 0.4517989 0.05072137 -0.6904702 0.42041399 -0.3739091
>V2 0.4616809 -0.29956355 -0.3405484 -0.54786307 0.5300805
>V3 0.4505416 -0.32457242 0.4544927 0.60629605 0.3427923
>V4 0.4707389 -0.18468403 0.4109350 -0.38827811 -0.6516665
>V5 0.3976754 0.87648935 0.1784558 -0.06887199 0.1924341
>
>Finally, when I do it by "hand" in R (i.e., c<-cov(data); e<-eigen(c)), I
>get a fourth answer:
>
> V5 V4 V3 V2 V1
>V1 0.4517989 0.05072137 -0.6904702 -0.42041399 -0.3739091
>V2 0.4616809 -0.29956355 -0.3405484 0.54786307 0.5300805
>V3 0.4505416 -0.32457242 0.4544927 -0.60629605 0.3427923
>V4 0.4707389 -0.18468403 0.4109350 0.38827811 -0.6516665
>V5 0.3976754 0.87648935 0.1784558 0.06887199 0.1924341
>
>
>Can anyone point me in the right direction here? I can email the raw data
>to anyone if that would help.
>
>Thank you in advance...
>
>Damien
-----------------------------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox
-----------------------------------------------------
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list