Estimate a Factor Analysis Model

DESCRIPTION:
Returns an object of class "factanal" which represents the fitted model. Options include the estimation procedure and the rotation.

USAGE:
factanal(x, factors=1, method="principal", data=NULL, covlist=NULL,
         scores=T, type="regression", rotation="varimax", na.action,
         subset, start=<<see below>>, control=NULL, ...)

REQUIRED ARGUMENTS:
at least one of x, data or covlist must be given.

OPTIONAL ARGUMENTS:
x:
a matrix, data frame or formula. If a matrix, the columns should correspond to variables and the rows to observations. If a formula, no variables may appear on the left (response) side.
factors:
the number of factors to fit.
method:
a character string stating which estimation method to use. This will be partially matched to "mle" (maximum likelihood estimate) and "principal" (principal factor estimate). If it does not match either of these, then a function with name paste("factanal.fit", method, sep = ".") will be used, if present.
data:
a data frame or matrix. This is usually used only when x is a formula, though it may be used instead of x.
covlist:
a list of the form returned by cov.wt and cov.mve. Components must include center and cov. A cor component will not be used, however, an n.obs component will be used if present.
scores:
logical flag: if TRUE and data are given (via x or data), then factor scores will be returned as a component of the result.
type:
the type of factor score to compute. This must partially match "regression" or "weighted.ls".
rotation:
a character string giving the name of a rotation to use. See rotate for the list of possibilities (though no name can be used here that requires additional parameters).
na.action:
function to handle missing values. The default is to create an error if missing values are found.
subset:
the subset of the observations to use.
start:
a matrix of starting values for the maximum likelihood estimation procedure. See factanal.fit.mle for details.
control:
a list of control parameters for the maximum likelihood estimation procedure. See factanal.mle.control for details.
...:
additional control parameters. These can include iter.max and unique.tol for either the maximum likelihood or the principal factor method.

VALUE:
an object of class "factanal". See factanal.object for details.

DETAILS:
Factor analysis essentially assumes a model for the correlation matrix and produces estimates of the model.

There are several undesirable features of factor analysis modeling. There is not a clear way of deciding if the model is appropriate or not, and if so how many factors there should be. It has also been shown that the estimates need not look like the original generators of a factor model even when the covariance matrix precisely fits the model (corresponding to an infinite sample size). See Seber (1984, pp. 222-235) for a discussion and further references.

Factor scores are estimated with predict.factanal, while the estimated correlation matrix is computed by fitted.factanal.


BACKGROUND:
Factor analysis assumes that the data may be successfully summarized by one or more "factors" which are unknown linear combinations of the variables known to the data analyst.

For example, suppose we have the answers from 1000 subjects on a psychological test of 100 questions. Each question is one of our 100 observed variables, and we may consider performing factor analysis to find the two factors "aggressiveness" and "intelligence" that the test was designed to measure. These factors will each be a linear combination of the 100 questions.


REFERENCES:
Many books on multivariate statistics have a discussion of factor analysis. Below is a brief selection.

Harman, H. H. (1976). Modern Factor Analysis, 3rd Edition. University of Chicago Press, Chicago.

Johnson, R. A. and Wichern, D. W. (1982). Applied Multivariate Statistical Analysis. Prentice-Hall, Englewood Cliffs, New Jersey.

Mardia, K. V., Kent, J. T. and Bibby, J. M. (1979). Multivariate Analysis. Academic Press, London.

Seber, G. A. F. (1984). Multivariate Observations. Wiley, New York.


SEE ALSO:
factanal.object , factanal.fit.mle , factanal.fit.principal , factanal.mle.control , factanal.start.mle , predict.factanal, fitted.factanal , rotate , biplot , princomp .

EXAMPLES:
prim9.fa3 <- factanal(prim9, 3) # principal factor solution
factanal(prim9, 3, method="mle") # maximum likelihood estimate

rotate(prim9.fa3, "promax") biplot(prim9.fa3)