Learn R Programming

semTools (version 0.5-3)

efaUnrotate: 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 = NULL, 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 (or sample.cov if is.null(data); see cfa for argument descriptions).

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, estimator, or sample.cov and sample.nobs.

Value

A lavaan output of unrotated exploratory factor analysis solution.

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 to supplement the factanal function is that users can enjoy some advanced features from the lavaan package, such as scaled \(\chi^2\), diagonally weighted least squares estimation for ordinal indicators, or full-information maximum likelihood (FIML) to handle incomplete data.

Examples

Run this code
# NOT RUN {
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")

# }

Run the code above in your browser using DataLab