[R] Input correlation matrix directly to princomp, prcomp
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Nov 3 18:08:21 CET 2008
On Mon, 3 Nov 2008, EVANS David-William wrote:
> Hello fellow Rers,
> I have a no-doubt simple question which is turning into a headache so
> would be grateful for any help.
> I want to do a principal components analysis directly on a correlation
> matrix object rather than inputting the raw data (and specifying cor =
> TRUE or the like). The reason behind this is I need to use polychoric
> correlation coefficients calculated with John Fox's hetcor function. Is
> there a way to do this with princomp or prcomp, or any other principal
> components function in other R packages?
See ?princomp, and
covmat: a covariance matrix, or a covariance list as returned by
'cov.wt' (and 'cov.mve' or 'cov.mcd' from package 'MASS'). If
supplied, this is used rather than the covariance matrix of
A correlation matrix *is* a covariance matrix (of scaled data, and scaling
does matter for PCA, of course).
That this is possible is the main advantage of princomp over prcomp.
princomp(covmat = cor(USArrests))
Comp.1 Comp.2 Comp.3 Comp.4
1.5748783 0.9948694 0.5971291 0.4164494
4 variables and NA observations.
with the help-page examples
> Again, very grateful for any help.
> David Evans.
> [[alternative HTML version deleted]]
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help