## Documentation Center |

Factor analysis

`lambda = factoran(X,m)[lambda,psi] = factoran(X,m)[lambda,psi,T] = factoran(X,m)[lambda,psi,T,stats] = factoran(X,m)[lambda,psi,T,stats,F] = factoran(X,m)[...] = factoran(...,`

`factoran` computes the maximum likelihood
estimate (MLE) of the factor loadings matrix Λ in the factor
analysis model

where *x* is a vector of observed variables, *μ* is
a constant vector of means, Λ is a constant d-by-m matrix of
factor loadings, *f* is a vector of independent,
standardized common factors, and *e* is a vector
of independent specific factors. *x*, *μ*,
and *e* are of length d. *f* is
of length m.

Alternatively, the factor analysis model can be specified as

where is a d-by-d diagonal matrix of specific variances.

`lambda = factoran(X,m)` returns
the maximum likelihood estimate, `lambda`, of the
factor loadings matrix, in a common factor analysis model with `m` common
factors. `X` is an `n`-by-`d` matrix
where each row is an observation of `d` variables.
The `(i,j)`th element of the `d`-by-`m` matrix `lambda` is
the coefficient, or loading, of the `j`th factor
for the `i`th variable. By default, `factoran` calls
the function `rotatefactors` to rotate the estimated
factor loadings using the `'varimax'` option.

`[lambda,psi] = factoran(X,m)` also
returns maximum likelihood estimates of the specific variances as
a column vector `psi` of length `d`.

`[lambda,psi,T] = factoran(X,m)` also
returns the `m`-by-`m` factor loadings
rotation matrix `T`.

`[lambda,psi,T,stats] = factoran(X,m)` also
returns a structure `stats` containing information
relating to the null hypothesis, H_{0}, that the
number of common factors is `m`. `stats` includes
the following fields:

Field | Description |
---|---|

loglike | Maximized log-likelihood value |

dfe | Error degrees of freedom = |

chisq | Approximate chi-squared statistic for the null hypothesis |

p | Right-tail significance level for the null hypothesis |

`factoran` does not compute the `chisq` and `p` fields
unless `dfe` is positive and all the specific variance
estimates in `psi` are positive (see Heywood Case below). If `X` is
a covariance matrix, then you must also specify the `'nobs'` parameter
if you want `factoran` to compute the `chisq` and `p` fields.

`[lambda,psi,T,stats,F] = factoran(X,m)` also
returns, in `F`, predictions of the common factors,
known as factor scores. `F` is an `n`-by-`m` matrix
where each row is a prediction of `m` common factors.
If `X` is a covariance matrix, `factoran` cannot
compute `F`. `factoran` rotates `F` using
the same criterion as for `lambda`.

`[...] = factoran(...,param1,val1,param2,val2,...)` enables
you to specify optional parameter name/value pairs to control the
model fit and the outputs. The following are the valid parameter/value
pairs.

Parameter | Value | |
---|---|---|

'xtype' | Type of input in the matrix | |

'data' | Raw data (default) | |

Positive definite covariance or correlation matrix | ||

'scores' | Method for predicting factor
scores. | |

Synonyms for a weighted least-squares estimate that treats | ||

Synonyms for a minimum mean squared error prediction that is equivalent to a ridge regression | ||

'start' | Starting point for the specific
variances | |

Chooses | ||

Chooses the starting vector as a scale factor times | ||

Positive integer | Performs the given number of maximum likelihood fits,
each initialized as with | |

Matrix | Performs one maximum likelihood fit for each column of
the specified matrix. The | |

'rotate' | Method used to rotate factor
loadings and scores. | |

Performs no rotation. | ||

Special case of the orthomax rotation. Use the | ||

Orthogonal rotation that maximizes a criterion based on the variance of the loadings. Use the | ||

Special case of the orthomax rotation (default). Use
the | ||

Performs either an oblique rotation (the default) or
an orthogonal rotation to best match a specified pattern matrix. Use
the | ||

Performs either an oblique (the default) or an orthogonal rotation to best match a specified target matrix in the least squares sense. Use the | ||

Performs an oblique procrustes rotation to a target matrix
determined by Use the | ||

Special case of the orthomax rotation (default). Use
the | ||

Special case of the orthomax rotation (default). Use
the | ||

Function | Function handle to rotation function of the form [B,T] = myrotation(A,...) where Use the | |

'coeff' | Coefficient, often denoted
as | |

'normalize' | Flag indicating whether
the loading matrix should be row-normalized (1) or left unnormalized
(0) for | |

'reltol' | Relative convergence tolerance
for | |

'maxit' | Iteration limit for | |

'target' | Target factor loading matrix
for | |

'type' | Type of | |

'power' | Exponent for creating the
target matrix in the | |

'userargs' | Denotes the beginning of
additional input values for a user-defined rotation function. | |

'nobs' | If | |

'delta' | Lower bound for the specific
variances | |

'optimopts' | Structure that specifies
control parameters for the iterative algorithm the function uses to
compute maximum likelihood estimates. Create this structure with the
function |

[1] Harman, H. H. *Modern Factor
Analysis*. 3rd Ed. Chicago: University of Chicago Press,
1976.

[2] Jöreskog, K. G. "Some Contributions
to Maximum Likelihood Factor Analysis." *Psychometrika*.
Vol. 32, Issue 4, 1967, pp. 443–482.

[3] Lawley, D. N., and A. E. Maxwell. *Factor
Analysis as a Statistical Method*. 2nd Ed. New York: American
Elsevier Publishing Co., 1971.

`biplot` | `pca` | `pcacov` | `procrustes` | `rotatefactors` | `statset`

Was this topic helpful?