Learn R Programming

parameters (version 0.5.0)

factor_analysis: Factor Analysis (FA)

Description

This function performs a Factor Analysis (FA).

Usage

factor_analysis(
  x,
  n = "auto",
  rotation = "none",
  sort = FALSE,
  threshold = NULL,
  standardize = TRUE,
  ...
)

Arguments

x

A dataframe or a statistical model.

n

Number of components to extract. If n="all", then n is set as the number of variables minus 1 (ncol(x)-1). If n="auto" (default) or n=NULL, the number of components is selected through n_factors. In reduce_parameters, can also be "max", in which case it will select all the components that are maximally pseudo-loaded (i.e., correlated) by at least one variable.

rotation

If not "none", the PCA will be computed using the psych package. Possible options include "varimax", "quartimax", "promax", "oblimin", "simplimax", and "cluster". See fa for details.

sort

Sort the loadings.

threshold

A value between 0 and 1 indicates which (absolute) values from the loadings should be removed. An integer higher than 1 indicates the n strongest loadings to retain. Can also be "max", in which case it will only display the maximum loading per variable (the most simple structure).

standardize

A logical value indicating whether the variables should be standardized (centred and scaled) to have unit variance before the analysis takes place (in general, such scaling is advisable).

...

Arguments passed to or from other methods.

Value

A data frame of loadings.

Details

Complexity

Complexity represents the number of latent components needed to account for the observed variables. Whereas a perfect simple structure solution has a complexity of 1 in that each item would only load on one factor, a solution with evenly distributed items has a complexity greater than 1 (Hofman, 1978; Pettersson and Turkheimer, 2010) .

FA or PCA?

There is a simplified rule of thumb that may help do decide whether to run a principal component analysis or a factor analysis:

  • Run principal component analysis if you assume or wish to test a theoretical model of latent factors causing observed variables.

  • Run factor analysis If you want to simply reduce your correlated observed variables to a smaller set of important independent composite variables.

(Source: CrossValidated)

References

  • Hofmann, R. (1978). Complexity and simplicity as objective indices descriptive of factor solutions. Multivariate Behavioral Research, 13:2, 247-250, 10.1207/s15327906mbr1302_9

  • Pettersson, E., & Turkheimer, E. (2010). Item selection, evaluation, and simple structure in personality data. Journal of research in personality, 44(4), 407-420, 10.1016/j.jrp.2010.03.002

Examples

Run this code
# NOT RUN {
library(parameters)

factor_analysis(mtcars[, 1:7], n = "all", threshold = 0.2)
factor_analysis(mtcars[, 1:7], n = 2, rotation = "oblimin", threshold = "max", sort = TRUE)
factor_analysis(mtcars[, 1:7], n = 2, threshold = 2, sort = TRUE)

efa <- factor_analysis(mtcars[, 1:5], n = 2)
summary(efa)
predict(efa)
# }
# NOT RUN {
# Automated number of components
factor_analysis(mtcars[, 1:4], n = "auto")
# }
# NOT RUN {
# }

Run the code above in your browser using DataLab