[R] extract prop. of. var in pca
ccleland at optonline.net
Fri Jul 8 21:03:29 CEST 2005
K. Steinmann wrote:
> Dear R-helpers,
> Using the package Lattice, I performed a PCA.
> For example
> pca.summary <- summary(pc.cr <- princomp(USArrests, cor = TRUE))
> The Output of "pca.summary" looks as follows:
> Importance of components:
> Comp.1 Comp.2 Comp.3 Comp.4
> Standard deviation 1.5748783 0.9948694 0.5971291 0.41644938
> Proportion of Variance 0.6200604 0.2474413 0.0891408 0.04335752
> Cumulative Proportion 0.6200604 0.8675017 0.9566425 1.00000000
> How can I extract the proportion of variance?
Instead of trying to get it from the summary, how about using this:
eigen(cor(USArrests))$values / ncol(USArrests)
cumsum(eigen(cor(USArrests))$values / ncol(USArrests))
But note in the details section of ?princomp the following:
The calculation is done using 'eigen' on the correlation or
covariance matrix, as determined by 'cor'. This is done for
compatibility with the S-PLUS result. A preferred method of
calculation is to use 'svd' on 'x', as is done in 'prcomp'.
Thus you could also do:
svd(cor(USArrests))$d / ncol(USArrests)
> Since names(pca.summary) or str(pca.summary) do not contain the proportion of
> it seems I can not use something similar like pca.summary[]$Comp.1.
> I can't see how the values are stored.
> Thanks in advance.
> K. St.
> R-help at stat.math.ethz.ch mailing list
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Chuck Cleland, Ph.D.
71 West 23rd Street, 8th floor
New York, NY 10010
tel: (212) 845-4495 (Tu, Th)
tel: (732) 452-1424 (M, W, F)
fax: (917) 438-0894
More information about the R-help