psych::fa()
OutputThis example demonstrates how to compute factor simplicity and
complexity indices using loadings obtained from an exploratory factor
analysis conducted via psych::fa().
psychWe use the bfi dataset available in the
psych package.
We fit an EFA model with 2 factors using oblimin rotation and unweighted least squares (ULS) estimation.
We inspect the factor loadings and convert them to a standard data frame for analysis.
unclass(fa.output$loadings)
#> ULS2 ULS1
#> A1 0.079555826 -0.405492666
#> A2 0.006995906 0.677314599
#> A3 -0.028286034 0.759520634
#> A4 0.144929552 0.438715276
#> A5 0.027451617 0.602373230
#> C1 0.570731188 -0.060703984
#> C2 0.636810136 -0.013275697
#> C3 0.541561971 0.031615351
#> C4 -0.649203758 -0.003661286
#> C5 -0.561778839 -0.057948301
fa.load <- as.data.frame(unclass(fa.output$loadings))We now use the facomplex package to compute various
measures of factor simplicity and complexity.
We define the target items for each factor to compute the total, factor-level, and item-level simplicity.
simload(data = fa.load,
items_target = list(
ULS1 = c(6,7,8,9,10),
ULS2 = c(1,2,3,4,5)
))
#> $TSFI
#> [1] 0.01
#>
#> $SFI
#> ULS1 ULS2
#> 0.005 0.016
#>
#> $IFS
#> Items IFS
#> 1 C1 -87.395
#> 2 C2 -2299.940
#> 3 C3 -292.427
#> 4 C4 -31439.886
#> 5 C5 -92.983
#> 6 A1 -24.979
#> 7 A2 -9372.309
#> 8 A3 -720.000
#> 9 A4 -8.163
#> 10 A5 -480.499This example shows how to apply facomplex to factor
solutions derived from classical exploratory methods, making it an
accessible tool for researchers working with psych::fa()
and other traditional EFA approaches.