Factor Analysis for All

Provides a comprehensive Shiny-based graphical user interface for conducting a wide range of factor analysis procedures. 'FAfA' (Factor Analysis for All) guides users through data uploading, assumption checking (descriptive statistics, collinearity, multivariate normality, outliers), data wrangling (variable exclusion, data splitting), exploratory factor analysis (EFA) with various rotation and extraction methods, confirmatory factor analysis (CFA), reliability analysis (e.g., Cronbach's Alpha, McDonald's Omega), and measurement invariance testing across groups. Factor retention methods include parallel analysis following Horn (1965) , optimized parallel analysis following Timmerman and Lorenzo-Seva (2011) , permutation parallel analysis for categorical variables following Lubbe (2019) , the Hull method following Lorenzo-Seva et al. (2011) , minimum average partial criteria following Velicer (1976) and O'Connor (2000) , and the empirical Kaiser criterion following Braeken and van Assen (2017) . Exploratory graph analysis follows Golino and Epskamp (2017) , with bootstrap stability assessment following Christensen and Golino (2021) . Internal split-sample EFA replication follows Osborne and Fitzpatrick (2012) . Model-specific dynamic fit index cutoffs for CFA follow McNeish and Wolf (2023) . Item weighting follows Kılıç (2026) . Analyses use established R packages such as 'lavaan' and 'psych'. Results are presented in tables and plots with downloadable outputs. Analysis projects can be saved and restored, and reproducible R, HTML, and PDF workflow reports can be generated.


{FAfA}

Lifecycle:experimental

Installation

Install {FAfA} together with its dependencies from CRAN:

install.packages("FAfA")

The development version can be installed in the same way with remotes:

remotes::install_github("AFarukKILIC/FAfA", dependencies = TRUE)

Run

You can launch the application by running:

FAfA::run_app()

EFA replication analysis

Version 1.3 includes internal split-sample replication analysis for EFA. The module divides the data reproducibly using a user-defined seed, fits the same factor model in both halves, aligns factor labels and signs, and compares each item’s primary factor and loading magnitude. A squared loading difference of .04 or more is flagged as volatile following Osborne and Fitzpatrick (2012).

Method reference: Osborne, J. W., & Fitzpatrick, D. C. (2012). Replication analysis in exploratory factor analysis: What it is and why it makes your analysis better. Practical Assessment, Research, and Evaluation, 17, Article 15. https://doi.org/10.7275/h0bd-4d11

License

FAfA is distributed under the GNU Affero General Public License, version 3. The Dynamic Fit Index integration acknowledges Melissa G. Wolf and Daniel McNeish and their AGPL-3 dynamic R package, version 1.1.0. The integration was rewritten for FAfA rather than copied verbatim. See inst/COPYRIGHTS for the complete third-party notice. The complete FAfA source code is available from https://github.com/AFarukKILIC/FAfA.

DFI method reference: McNeish, D., & Wolf, M. G. (2023). Dynamic fit index cutoffs for confirmatory factor analysis models. Psychological Methods, 28(1), 61-88. https://doi.org/10.1037/met0000425

Package checks

From a source checkout, run the complete package check with:

source("dev/check_package.R")
check_fafa()

This builds the source archive and runs R CMD check --as-cran, including incoming feasibility checks, suggested dependencies, and the PDF manual. The archive and check logs are saved in build/. Browser tests can be run separately with dev/run_ui_tests.R.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("FAfA")

1.4.1 by Abdullah Faruk KILIC, 14 days ago


https://github.com/AFarukKILIC/FAfA


Report a bug at https://github.com/AFarukKILIC/FAfA/issues


Browse source code at https://github.com/cran/FAfA


Authors: Abdullah Faruk KILIC [aut, cre, cph] , Ahmet Caliskan [aut, cph] , Melissa G. Wolf [ctb, cph] (Dynamic Fit Index methodology and upstream implementation) , Daniel McNeish [ctb, cph] (Dynamic Fit Index methodology and upstream implementation) , Brian P. O'Connor [ctb, cph] (MAP and Empirical Kaiser Criterion upstream implementation)


Documentation:   PDF Manual  


AGPL-3 license


Imports Amelia, EFA.MRFA, EGAnet, ItemRest, bsicons, bslib, ggplot2, golem, grDevices, graphics, haven, lavaan, mice, missForest, mvnormalTest, naniar, psych, qgraph, readxl, semPlot, shiny, shinycssloaders, stats, tools, utils

Suggests flextable, officer, shinytest2, spelling, testthat


See at CRAN