factanal {mva} | R Documentation |
Factor Analysis
Description
Perform maximum-likelihood factor analysis on a covariance matrix or data matrix.
Usage
factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA,
subset, na.action,
start = NULL, scores = c("none", "regression", "Bartlett"),
rotation = "varimax", control = NULL, ...)
Arguments
x |
Either a formula or a numeric matrix or an object that can be coerced to a numeric matrix. |
factors |
The number of factors to be fitted. |
data |
A data frame. |
covmat |
A covariance matrix, or a covariance list as returned by
|
n.obs |
The number of observations, used if |
subset |
A specification of the cases to be used, if |
na.action |
The |
start |
|
scores |
Type of scores to produce, if any. The default is none,
|
rotation |
character. |
control |
A list of control values,
|
... |
Components of |
Details
The factor analysis model is
x = \Lambda f + e
for a p
–element row-vector x
, a p \times k
matrix of loadings, a k
–element vector of scores
and a p
–element vector of errors. None of the components
other than x
is observed, but the major restriction is that the
scores be uncorrelated and of unit variance, and that the errors be
independent with variances \Phi
, the
uniquenesses. Thus factor analysis is in essence a model for
the covariance matrix of x
,
\Sigma = \Lambda^\prime\Lambda + \Psi
There is still some indeterminacy in the model for it is unchanged
if \Lambda
is replaced by G\Lambda
for
any orthogonal matrix G
. Such matrices G
are known as
rotations (although the term is applied also to non-orthogonal
invertible matrices).
If covmat
is supplied it is used. Otherwise x
is used if
it is a matrix, or a formula x
is used with data
to
construct a model matrix, and that is used to construct a covariance
matrix. (It makes no sense for
the formula to have a response.) Once a covariance matrix is found or
calculated from x
, it is converted to a correlation matrix for
analysis. The correlation matrix is returned as component
correlation
of the result.
The fit is done by optimizing the log likelihood assuming multivariate
normality over the uniquenesses. (The maximizing loadings for given
uniquenesses can be found analytically: Lawley & Maxwell (1971,
p. 27).) All the starting values supplied in start
are tried
in turn and the best fit obtained is used. If start = NULL