Skip to content
Prev 163446 / 398506 Next

factanal question

Dear Don,

All long as you leave the factors unrotated or do an orthogonal rotation (as
is the default), you can compute reproduced correlations among the variables
from the factor loadings, and thus residual correlations given the loadings
and the original correlation matrix, both of which are accessible in the
object returned by factanal(); the following isn't carefully tested, but
should work:

repRes <- function(F, round=3){
  A <- loadings(F)
  R <- F$correlation
  RR <- A %*% t(A)
  ResR <- R - RR
  list(reproduced.correlations=round(RR, round), 
    residual.correlations=round(ResR, round))
  }

Here F is an object returned by factanal(). The diagonal elements of the
reproduced correlations are the communalities, and of the residual
correlations, the uniquenesses.

To do this from an oblique rotation would require the factor-correlation
matrix, which, as has been pointed out previously, factanal() oddly doesn't
provide. In this case, that's not a real impediment, since reproduced and
residual correlations are invariant with respect to rotation of the factors.

I hope this helps,
 John

------------------------------
John Fox, Professor
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
web: socserv.mcmaster.ca/jfox
On
useful.
to
http://www.R-project.org/posting-guide.html