| Literature DB >> 34100201 |
Silvia Grieder1, Markus D Steiner2.
Abstract
A statistical procedure is assumed to produce comparable results across programs. Using the case of an exploratory factor analysis procedure-principal axis factoring (PAF) and promax rotation-we show that this assumption is not always justified. Procedures with equal names are sometimes implemented differently across programs: a jingle fallacy. Focusing on two popular statistical analysis programs, we indeed discovered a jingle jungle for the above procedure: Both PAF and promax rotation are implemented differently in the psych R package and in SPSS. Based on analyses with 247 real and 216,000 simulated data sets implementing 108 different data structures, we show that these differences in implementations can result in fairly different factor solutions for a variety of different data structures. Differences in the solutions for real data sets ranged from negligible to very large, with 42% displaying at least one different indicator-to-factor correspondence. A simulation study revealed systematic differences in accuracies between different implementations, and large variation between data structures, with small numbers of indicators per factor, high factor intercorrelations, and weak factors resulting in the lowest accuracies. Moreover, although there was no single combination of settings that was superior for all data structures, we identified implementations of PAF and promax that maximize performance on average. We recommend researchers to use these implementations as best way through the jungle, discuss model averaging as a potential alternative, and highlight the importance of adhering to best practices of scale construction.Entities:
Keywords: Exploratory factor analysis; Principal axis factoring; Promax rotation; Software comparison
Mesh:
Year: 2021 PMID: 34100201 PMCID: PMC8863761 DOI: 10.3758/s13428-021-01581-x
Source DB: PubMed Journal: Behav Res Methods ISSN: 1554-351X
Differences between the R psych and SPSS implementations
| Procedure | Setting | R psych | SPSS | Note |
|---|---|---|---|---|
| PAF | Communality method | SMC, if this fails: unity | SMC, if this fails: MAC, if this fails, unity | How the diagonal of the original matrix is replaced to find initial eigenvalues |
| Absolute eigenvalues | No | Yes | To avoid negative eigenvalues, SPSS takes the absolute of initial eigenvalues. This is not done in R psych, where negative eigenvalues might render the use of SMCs impossible | |
| Criterion type | Difference in sum of communalities | Difference in maximum individual communalities | Value on which the convergence criterion is applied | |
| Promax | Varimax type | Singular value decomposition | Kaiser | SPSS follows the original varimax procedure from (Kaiser, |
| Normalization of target matrix | Unnormalized | Normalized | The target matrix is row-normalized in SPSS, but not in R psych. This is not the Kaiser normalization, which is done in both implementations |
A detailed description of the implementations of R psych and SPSS can be found in the supplemental material. PAF = principal axis factoring; SMC = squared multiple correlation; MAC = maximum absolute correlation, unity = all 1’s
Description of population models used for simulation analyses
| Pattern matrices | Number of factors | Number of indicators per factor | Size of pattern coefficients | Notes |
| a) Pattern matrices | ||||
| Case 18|3|6 | 3 | 6 | .60 | Same baseline model as used in (De Winter & Dodou, |
| Case 6|3|6 | 3 | 2 | .60 | |
| Case 9|3|6 | 3 | 3 | .60 | Case 5 in (De Winter & Dodou, |
| Case 12|3|6 | 3 | 4 | .60 | |
| Case 15|3|6 | 3 | 5 | .60 | |
| Case 18|3|3 | 3 | 6 | .30 | |
| Case 18|3|9 | 3 | 6 | .90 | |
| Case 18|3|369b | 3 | 6 | .30, .60, .90 | Different pattern coefficients between factors. Case 7 in (De Winter & Dodou, |
| Case 18|3|369w | 3 | 6 | .30, .60, .90 | Different pattern coefficients within factors (each factor two each). Similar to cases 8/9 in (De Winter & Dodou, |
| Case 18|3|46|1c | 3 | 6 | .60 | One cross-loading of .40. Similar to case 10 in (De Winter & Dodou, |
| Pattern matrices | Number of factors | Number of indicators per factor | Size of pattern coefficients | Notes |
| Case 18|3|46|3c | 3 | 6 | .60 | Three cross-loadings of .40 (One factor with 2 and one with 1 cross-loading). Similar to case 10 in (De Winter & Dodou, |
| Case 12|3m|6 | 3 | 2, 4, 6 | .60 | Similar to cases 11/ 12 in (De Winter & Dodou, |
| Case 18|3|6n | 3 | 6 | .60 | Random variation in pattern coefficients added, drawn from a uniform distribution [-.2, .2]. Case 13 in (De Winter & Dodou, |
| Case 6|3|369wb | 3 | 2 | .30, .60, .90 | Different pattern coefficients within one of the factors |
| Case 9|3|369wb | 3 | 3 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 12|3|369wb | 3 | 4 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 15|3|369wb | 3 | 5 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 12|6|6 | 6 | 2 | .60 | |
| Case 18|6|6 | 6 | 3 | .60 | |
| Case 24|6|6 | 6 | 4 | .60 | |
| Case 30|6|6 | 6 | 5 | .60 | |
| Case 36|6|6 | 6 | 6 | .60 | |
| Case 12|6|369wb | 6 | 2 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 18|6|369wb | 6 | 3 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 24|6|369wb | 6 | 4 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 30|6|369wb | 6 | 5 | .30, .60, .90 | Different pattern coefficients within and between factors |
| Case 36|6|369w | 6 | 6 | .30, .60, .90 | Different pattern coefficients within factors |
| Factor Inter- correlations | Size of Inter- correlations | Notes | ||
| b) Factor intercorrelations | ||||
| Zero | .00 | Same intercorrelations as used in (De Winter & Dodou, | ||
| Moderate | .30 | |||
| Mixed | .30, .50, .70 | |||
| Strong | .70 | Same intercorrelations as used in (De Winter & Dodou, | ||
A population model is always a combination of a population pattern matrix and a population factor intercorrelation matrix. All population models are available in the EFAtools package
Fig. 1Overall, mean, and maximum absolute differences in loadings/pattern coefficients per solution and overall, mean, and minimum factor congruence per solution from PAF without rotation, with varimax rotation, and with promax rotation, obtained with the R psych and SPSS implementations for 216 real data sets. The white diamond represents the mean. PAF = principal axis factoring
Evidence for differences in accuracy, proportion of Heywood cases, and correctness of indicator-to-factor correspondences between implementations
| Property | Inc | Eq | Diff | Inc | Eq | Diff |
|---|---|---|---|---|---|---|
| Data sets without negative eigenvalues | ||||||
| RMSE | 17 | 0 | 91 | 11 | 1 | 96 |
| Heywood | 0 | 108 | 0 | 0 | 108 | 0 |
| Ind-to-Fac Corres | 31 | 32 | 45 | 19 | 46 | 43 |
| Data sets with negative eigenvalues | ||||||
| RMSE | 1 | 0 | 9 | 0 | 0 | 9 |
| Heywood | 0 | 10 | 0 | 0 | 9 | 0 |
| Ind-to-Fac Corres | 5 | 2 | 3 | 1 | 0 | 8 |
Tally of type of evidence for the 216 different models (108 population models × 2 sample sizes) derived from Bayesian regression analyses. The row sum for the rows concerning data sets with negative eigenvalues are smaller than 216 because data sets with negative eigenvalues occurred only for some models. RMSE = Root mean squared error. Heywood = Probability of the occurrence of a Heywood case. Ind-to-Fac Corres = Difference in indicator-to-factor correspondence from found solution to population model. Inc = Inconclusive evidence. Eq = Conclusive evidence for no relevant difference between the implementations (equality). Diff = Conclusive evidence for a difference between at least some implementations
Proportion of population models for which the best implementation and the R psych and SPSS implementations were among the best
| Best | Psychunity | PsychSMC | SPSS | |
|---|---|---|---|---|
| RMSE | ||||
| .69 | .46 | .52 | .67 | |
| .50 | .10 | .00 | .60 | |
| .45 | .56 | .68 | ||
| .78 | .00 | .00 | .78 | |
| .70 | .45 | .53 | .68 | |
| Heywood cases | ||||
| .00 | ||||
| .00 | ||||
| .98 | ||||
| Ind.-to-Fac. Corres. | ||||
| .93 | .70 | .93 | .91 | |
| .70 | .00 | |||
| .92 | .72 | .86 | .90 | |
| .11 | .00 | |||
| .70 | .88 | .91 | ||
| .72 | .80 | .86 | ||
| Settings | ||||
| PAF | ||||
| Communality method | SMC | unity | SMC | SMC |
| Criterion type | sum | sum | sum | max. ind. |
| Absolute eigenvalues | yes | no | no | yes |
| Convergence criterion | 10− 3 | 10− 3 | 10− 3 | 10− 3 |
| Promax rotation | ||||
| Varimax type | kaiser | svd | svd | kaiser |
| P type | norm | unnorm | unnorm | norm |
| 4 | 4 | 4 | 4 | |
For positive eigenvalues, the proportion of the 108 population models for which the respective setting combination was among the best setting combinations is shown. For negative eigenvalues, the proportion of the population models including data sets that resulted in negative eigenvalues for which the respective setting combination was among the best setting combinations is shown. The top row contains the identifiers of the implementations, their settings are listed in the bottom part of the table. Boldface indicates that this implementation was most frequently among the best implementations for the respective data sets. Best = implementations with best results overall; Psychunity/PsychSMC = R psych implementation with unity/SMC as initial communality estimates; SPSS = SPSS implementation; RMSE = root mean square error; pos. eigen. = all-positive eigenvalues; neg. eigen. = some negative eigenvalues; WM = Weighted mean, where the weights are the number of datasets used in the respective regression analyses (those with negative eigenvalues made up only about 2% of all datasets and are thus weighted much less strongly; see Table best_implementations.xlsx in the online repository, https://osf.io/6prcz/); Ind.-to-Fac. Corres. = indicator-to-factor correspondences; PAF = principal axis factoring; P type = target matrix type; k = power in promax; MAC = maximum absolute correlation; SMC = squared multiple correlation; sum = deviance of the sum of all communalities; max. ind. = maximum absolute deviance of any communality; unnorm = unnormalized; norm = normalized; svd = singular value decomposition
Fig. 2Distributions of RMSE of three different implementations, separately for the different population models, based on data sets simulated with N = 450. A population model is always a combination of a pattern matrix (on the x-axis) and a factor intercorrelation matrix (the facets). Bars indicate the mean RMSE, the whiskers indicate ± 1 SD, and dots represent the mean of the 5% largest RMSE. Best = implementation with best results overall; R psych = R psych implementation with SMC as initial communality estimates when no negative eigenvalues occurred and R psych implementation with unity as initial communality estimates when negative eigenvalues occurred; SPSS = SPSS implementation. See Table 2 for more information on these implementations. An overview of the population models is provided in Table 4. The detailed population pattern- and factor intercorrelation matrices are provided in the SM, Sections 5 and 6
Fig. 3Proportions of solutions per implementation out of the 1000 simulated data sets in which Heywood cases occurred, separately for the different population models, based on data sets simulated with N = 450. A population model is always a combination of a pattern matrix (on the x-axis) and a factor intercorrelation matrix (the facets). Best = implementation with best results overall; R psych = R psych implementation with SMC as initial communality estimates when no negative eigenvalues occurred and R psych implementation with unity as initial communality estimates when negative eigenvalues occurred; SPSS = SPSS implementation. See Table 2 for more information on these implementations. An overview of the population models is provided in Table 4. The detailed population pattern- and factor intercorrelation matrices are provided in the SM, Sections 5 and 6
Fig. 4Proportions of solutions per implementation out of the 1000 simulated data sets with at least one incorrect indicator-to-factor correspondence, separately for the different population models, based on data sets simulated with N = 450. A population model is always a combination of a pattern matrix (on the x-axis) and a factor intercorrelation matrix (the facets). Best = implementation with best results overall; R psych = R psych implementation with SMC as initial communality estimates when no negative eigenvalues occurred and R psych implementation with unity as initial communality estimates when negative eigenvalues occurred; SPSS = SPSS implementation. See Table 2 for more information on these implementations. An overview of the population models is provided in Table 4. The detailed population pattern- and factor intercorrelation matrices are provided in the SM, Sections 5 and 6