The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Example 2: Assessing Factor Simplicity from psych::fa() Output

Example 2: Assessing Factor Simplicity from psych::fa() Output

This example demonstrates how to compute factor simplicity and complexity indices using loadings obtained from an exploratory factor analysis conducted via psych::fa().

Step 1: Load data from psych

We use the bfi dataset available in the psych package.

data(bfi, package = "psych")

Step 2: Fit a 2-factor exploratory model

We fit an EFA model with 2 factors using oblimin rotation and unweighted least squares (ULS) estimation.

fa.output <- psych::fa(bfi[, 1:10], 
                       nfactors = 2, 
                       rotate = "oblimin",
                       fm = "uls")
#> Loading required namespace: GPArotation

Step 3: View and save the loading matrix

We inspect the factor loadings and convert them to a standard data frame for analysis.

unclass(fa.output$loadings)
#>            ULS2         ULS1
#> A1  0.079555911 -0.405492149
#> A2  0.006995423  0.677314802
#> A3 -0.028286487  0.759520586
#> A4  0.144928895  0.438716478
#> A5  0.027451135  0.602373572
#> C1  0.570729834 -0.060699645
#> C2  0.636808587 -0.013270843
#> C3  0.541560625  0.031619489
#> C4 -0.649202167 -0.003666238
#> C5 -0.561777425 -0.057952599
fa.load <- as.data.frame(unclass(fa.output$loadings))

Step 4: Compute complexity and simplicity indices

We now use the facomplex package to compute various measures of factor simplicity and complexity.

Hofmann Index

Hofmann(fa.load)
#>     CHof
#> A1 1.077
#> A2 1.000
#> A3 1.003
#> A4 1.216
#> A5 1.004
#> C1 1.023
#> C2 1.001
#> C3 1.007
#> C4 1.000
#> C5 1.021

Bentler’s Simplicity Index

BSI(fa.load)
#> [1] 0.9998469

Kaiser-Cerny (KC) Criterion

KC(data = fa.load, b = 4)
#> Kaiser-Cerny Factor Simplicity Analysis:
#> - Threshold f_j for hyperplane inclusion (per factor):
#>   F1: 0.242545
#>   F2: 0.212561
#> 
#> - Ideal hyperplane count:  10

Factor Simplicity Index (FSI)

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.407
#> 2     C2  -2301.612
#> 3     C3   -292.349
#> 4     C4 -31354.854
#> 5     C5    -92.969
#> 6     A1    -24.979
#> 7     A2  -9373.610
#> 8     A3   -719.976
#> 9     A4     -8.163
#> 10    A5   -480.517

This 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.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.