[R] prcomp() on correlation matrix

David L Carlson dcarlson at tamu.edu
Wed Nov 9 18:33:17 CET 2016


I was assuming you had the data in my earlier reply. You could also look at the covmat= argument in princomp():

# Create some random data
> set.seed(42)
> dat <- mapply(rnorm, n=rep(100, 5), mean=(1:5)*5, sd=1:5)
# Construct covariance and correlation matrices
> dat.cov <- cov(dat)
> dat.cor <- cor(dat)
# Covariance matrix
> dat.cov.pca <- princomp(covmat=dat.cov)
> dat.cov.pca$loadings

Loadings:
     Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
[1,]                              0.997
[2,]                      -0.994       
[3,]         0.269 -0.958              
[4,] -0.220 -0.941 -0.253              
[5,] -0.973  0.200                     

               Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
SS loadings       1.0    1.0    1.0    1.0    1.0
Proportion Var    0.2    0.2    0.2    0.2    0.2
Cumulative Var    0.2    0.4    0.6    0.8    1.0
# Correlation matrix
> dat.cor.pca <- princomp(covmat=dat.cor)
> dat.cor.pca$loadings

Loadings:
     Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
[1,] -0.453 -0.486  0.234  0.619  0.348
[2,]  0.262 -0.193  0.851        -0.409
[3,]  0.279  0.691  0.313  0.374  0.455
[4,] -0.559  0.159  0.351 -0.629  0.377
[5,] -0.579  0.472         0.281 -0.602

               Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
SS loadings       1.0    1.0    1.0    1.0    1.0
Proportion Var    0.2    0.2    0.2    0.2    0.2
Cumulative Var    0.2    0.4    0.6    0.8    1.0

-------------------------------------
David L Carlson
Department of Anthropology
Texas A&M University
College Station, TX 77840-4352


-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Bert Gunter
Sent: Wednesday, November 9, 2016 10:58 AM
To: T.Riedle
Cc: R-help at r-project.org
Subject: Re: [R] prcomp() on correlation matrix

Well, it seems you can't -- prcomp() seems to want the data matrix.

But it would be trivial using svd() -- or possibly even eigen() -- if
you understand the underlying linear algebra.

Cheers,
Bert

Bert Gunter

"The trouble with having an open mind is that people keep coming along
and sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Wed, Nov 9, 2016 at 4:45 AM, T.Riedle <tr206 at kent.ac.uk> wrote:
> Dear R users,
>
> I am trying to do a Principal Components Analysis using the prcomp() function based on the correlation matrix. How can I determine to calculate PCA on a correlation or covariance matrix using prcomp()?
>
>
> Thanks in advance.
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list