nomo_factors() combines multiple pieces of factor-retention evidence rather
than treating any single rule as definitive. The primary retention evidence is
a common-factor parallel analysis, complemented by Velicer's original and
revised MAP criteria and, under the default criterion_set = "core", the
empirical Kaiser criterion (EKC). Extended criterion sets can add NEST, Hull
(CAF), comparison data, and the legacy Kaiser-Guttman rule when their
assumptions are compatible with the analyzed data. Scree information,
Kaiser-Meyer-Olkin (KMO) sampling adequacy, and Bartlett's test are returned
as supporting diagnostics.
Usage
nomo_factors(
data,
items = NULL,
correlation = c("auto", "pearson", "polychoric", "tetrachoric", "mixed"),
types = NULL,
missing = c("pairwise", "complete"),
criterion_set = c("core", "minimal", "extended", "all"),
parallel_rule = c("percentile", "mean", "crawford"),
n_iter = NULL,
quantile = NULL,
max_factors = NULL,
seed = 1234L,
fm = "minres",
smooth = FALSE,
guidance = nomo_defaults()
)Arguments
- data
A data frame containing candidate items.
- items
Optional character vector identifying item columns. If
NULL, all columns are treated as candidate items.- correlation
Correlation strategy:
"auto","pearson","polychoric","tetrachoric", or"mixed".- types
Optional named character vector overriding modeling types for selected items. Allowed values are
"continuous","ordinal", and"binary". Explicit overrides are applied before default-type rejection, so researchers can intentionally model otherwise ambiguous storage (for example, an unordered factor whose levels already encode a substantive order). Overrides do not reorder, relabel, or recode the supplied data. For example,c(item1 = "ordinal", item2 = "ordinal").- missing
Missing-data handling for correlation estimation.
"pairwise"uses pairwise-complete observations;"complete"restricts the analysis to cases complete on all selected items.- criterion_set
Retention-criterion bundle.
"minimal"uses parallel analysis plus original MAP;"core"(default) adds revised MAP and EKC;"extended"adds NEST and Hull where supported;"all"additionally requests comparison data and the legacy Kaiser-Guttman rule. Criteria whose assumptions are not compatible with the current data are explicitly marked as skipped rather than silently substituted.- parallel_rule
Parallel-analysis decision rule:
"percentile"(default),"mean", or"crawford". All three rules are computed from the same null simulations and retained in the result as sensitivity evidence.- n_iter
Number of null-data iterations used for parallel analysis. If
NULL, the value inguidance$factor_parallel_iterationsis used.- quantile
Quantile of null eigenvalues used as the parallel-analysis reference. If
NULL, the value inguidance$factor_parallel_quantileis used.- max_factors
Maximum number of factors/components evaluated for MAP. If
NULL, up to 10 orp - 1, whichever is smaller, are evaluated.- seed
Integer seed for the null-data simulation. The caller's random number state is restored before return.
- fm
Common-factor extraction method passed to
psych::fa()when obtaining factor eigenvalues. The default is"minres".- smooth
Logical. If
FALSE(default), a non-positive-definite observed correlation matrix blocks factor-retention analysis. IfTRUE, smoothing is explicit, recorded, and performed withpsych::cor.smooth().- guidance
Guidance settings from
nomo_defaults().
Value
An object of class nomo_factors. The fields to read are:
items,n_cases, andn_items.item_types: each item's screened and modeling type.correlation_methodandcorrelation_matrix: the correlations analyzed.kmoandbartlett: sampling-adequacy evidence.parallel,map, andscree: each criterion's result.criterion_status: which criteria ran, and why any did not.evidence,family_evidence, andfamily_concordance: the suggested factor counts by method and by family of related methods.plausible_factorsandrecommendation: the synthesis, which is evidence for a researcher's choice, not a choice.decision_log.
Other fields record the call, the settings used, and intermediate engine
results. They may change between releases and are not part of the stable
interface (see ?nomologR).
Details
Correlation choice is explicit and visible. With correlation = "auto",
continuous indicators use Pearson correlations, all-binary indicators use
tetrachoric correlations, ordinal/binary indicators use polychoric
correlations, and genuinely mixed indicator sets use mixed correlations.
Numeric variables with a small number of integer-like response values are
treated conservatively as continuous unless the user explicitly overrides
their modeling type through types.
The function does not claim that a scale "has exactly" a particular number of factors. It reports which factor counts deserve investigation and records disagreements among retention methods.
References
Historical retention rules shown as context:
Cattell, R. B. (1966). The scree test for the number of factors. Multivariate Behavioral Research, 1(2), 245-276. doi:10.1207/s15327906mbr0102_10
Guttman, L. (1954). Some necessary conditions for common-factor analysis. Psychometrika, 19(2), 149-161. doi:10.1007/BF02289162
Kaiser, H. F. (1960). The application of electronic computers to factor analysis. Educational and Psychological Measurement, 20(1), 141-151. doi:10.1177/001316446002000116
Contemporary retention evidence:
Achim, A. (2017). Testing the number of required dimensions in exploratory factor analysis. The Quantitative Methods for Psychology, 13(1), 64-74. doi:10.20982/tqmp.13.1.p064
Braeken, J., & van Assen, M. A. L. M. (2017). An empirical Kaiser criterion. Psychological Methods, 22(3), 450-466. doi:10.1037/met0000074
Crawford, A. V., Green, S. B., Levy, R., Lo, W.-J., Scott, L., Svetina, D., & Thompson, M. S. (2010). Evaluation of parallel analysis methods for determining the number of factors. Educational and Psychological Measurement, 70(6), 885-901. doi:10.1177/0013164410379332
Horn, J. L. (1965). A rationale and test for the number of factors in factor analysis. Psychometrika, 30(2), 179-185. doi:10.1007/BF02289447
Lorenzo-Seva, U., Timmerman, M. E., & Kiers, H. A. L. (2011). The Hull method for selecting the number of common factors. Multivariate Behavioral Research, 46(2), 340-364. doi:10.1080/00273171.2011.564527
Ruscio, J., & Roche, B. (2012). Determining the number of factors to retain in an exploratory factor analysis using comparison data of known factorial structure. Psychological Assessment, 24(2), 282-292. doi:10.1037/a0025697
Velicer, W. F. (1976). Determining the number of components from the matrix of partial correlations. Psychometrika, 41(3), 321-327. doi:10.1007/BF02293557
Velicer, W. F., Eaton, C. A., & Fava, J. L. (2000). Construct explication through factor or component analysis: A review and evaluation of alternative procedures for determining the number of factors or components. In R. D. Goffin & E. Helmes (Eds.), Problems and solutions in human assessment (pp. 41-71). Springer. doi:10.1007/978-1-4615-4397-8_3
Supporting adequacy diagnostics:
Bartlett, M. S. (1950). Tests of significance in factor analysis. British Journal of Statistical Psychology, 3(2), 77-85. doi:10.1111/j.2044-8317.1950.tb00285.x
Kaiser, H. F. (1974). An index of factorial simplicity. Psychometrika, 39(1), 31-36. doi:10.1007/BF02291575
Examples
fac <- nomo_factors(nomo_demo_continuous, n_iter = 20, seed = 2026)
fac
#> <nomo_factors> Factor-retention evidence
#> Cases: 500 | Items: 10 | Correlation: pearson
#> Criterion set: core | Available methods: 3 | Families: 2 | Skipped: 1
#> Parallel analysis (percentile): 2 | MAP TR2/TR4: 2/2 | KMO: 0.874
#> All 2 available criterion families (3 methods) point to 2 factors. Related
#> methods within a family are grouped before concordance is summarized; this is
#> strong converging evidence for investigating that solution, not proof of
#> dimensionality. 1 requested method was not evaluated; see criterion status for
#> the documented reason.
summary(fac)
#> <nomo_factors summary> Factor-retention evidence
#> Cases: 500 | Items: 10 | Correlation: pearson | Criteria: core
#>
#> Retention evidence
#> Method Factors Role
#> Parallel analysis 2 primary
#> MAP (original TR2) 2 complementary
#> MAP (revised TR4) 2 complementary
#>
#> Parallel-analysis rule sensitivity
#> Rule Factors Used
#> percentile 2 selected
#> mean 2
#> crawford 2
#>
#> Criteria requested but not run
#> - Empirical Kaiser criterion: EKC needs one common sample size for the
#> analyzed matrix; pairwise missing-data handling produced varying pairwise
#> Ns.
#>
#> Concordance across criterion families
#> Factors Families Which
#> 2 2 Parallel analysis; MAP
#>
#> Supporting adequacy evidence
#> - KMO: 0.874
#> - Bartlett: Bartlett's test was not computed because pairwise missing-data
#> handling does not provide one common sample size for the full matrix.
#>
#> Synthesis
#> All 2 available criterion families (3 methods) point to 2 factors. Related
#> methods within a family are grouped before concordance is summarized; this
#> is strong converging evidence for investigating that solution, not proof of
#> dimensionality. 1 requested method was not evaluated; see criterion status
#> for the documented reason.
#>
#> Factor counts are candidates for investigation, not automatic dimensionality
#> verdicts. Common-factor eigenvalues come from a reduced common-variance
#> matrix; later values can be negative.
# \donttest{
# Ordered five-category items are analyzed with polychoric correlations
fac_ord <- nomo_factors(nomo_demo_ordinal, n_iter = 20, seed = 2026)
fac_ord$correlation
#> [1] "polychoric"
# }