R: Analyze Unrotated Exploratory Factor Analysis Model

efaUnrotate {semTools} | R Documentation

## Analyze Unrotated Exploratory Factor Analysis Model

### Description

This function will analyze unrotated exploratory factor analysis model. The unrotated solution can be rotated by the `orthRotate` and `oblqRotate` functions.

### Usage

    efaUnrotate(data, nf, varList = NULL, start = TRUE, aux = NULL, ...)

### Arguments

`data` | A target `data.frame`
`nf` | The desired number of factors
`varList` | Target observed variables. If not specified, all variables in `data` will be used.
`start` | Use starting values in the analysis from the `factanal` `function`. If `FALSE`, the starting values from the `lavaan` package will be used. `TRUE` is ignored with a warning if the `aux` argument is used.
`aux` | The list of auxiliary variables. These variables will be included in the model by the saturated-correlates approach to account for missing information.
`...` | Other arguments in the `cfa` function in the `lavaan` package, such as `ordered`, `se`, or `estimator`

### Details

This function will generate a lavaan script for unrotated exploratory factor analysis model such that (1) all factor loadings are estimated, (2) factor variances are fixed to 1, (3) factor covariances are fixed to 0, and (4) the dot products of any pairs of columns in the factor loading matrix are fixed to zero (Johnson & Wichern, 2002). The reason for creating this function in addition to the `factanal` function is that users can enjoy some advanced features from the `lavaan` package such as scaled χ^2, diagonal weighted least squares for ordinal indicators, or full-information maximum likelihood (FIML).

### Value

A `lavaan` output of unrotated exploratory factor analysis solution.

### Author(s)

Sunthud Pornprasertmanit (psunthud@gmail.com)

### Examples

    unrotated <- efaUnrotate(HolzingerSwineford1939, nf = 3,
                             varList=paste0("x", 1:9), estimator = "mlr")
    summary(unrotated, std = TRUE)
    inspect(unrotated, "std")

    dat <- data.frame(HolzingerSwineford1939,
                      z = rnorm(nrow(HolzingerSwineford1939), 0, 1))
    unrotated2 <- efaUnrotate(dat, nf = 2, varList = paste0("x", 1:9), aux = "z")

[Package semTools version 0.5-1 Index]