Implements Factor Analytic Profile Analysis of Ipsatized Data
('FAPA'), a metric inferential framework for pattern detection and
person-level reconstruction in multivariate profile data. After
row-centering (ipsatization) to remove profile elevation, 'FAPA' applies
singular value decomposition ('SVD') to recover shared core profiles and
individual pattern weights. Dimensionality is determined by a
variance-matched Horn's parallel analysis. A three-stage bootstrap
verification framework assesses (1) dimensionality via parallel analysis,
(2) subspace stability via Procrustes principal angles, and (3) profile
replicability via Tucker's congruence coefficients. BCa bootstrap
confidence intervals for core-profile coordinates are computed via the
canonical 'boot' package implementation of Davison and Hinkley (1997)
FAPA implements a metric inferential framework for pattern detection and person-level reconstruction in multivariate profile data. After removing overall profile elevation via row-centering (ipsatization), FAPA applies singular value decomposition (SVD) to recover shared core profiles and individual pattern weights, and provides a unified three-stage bootstrap verification framework.
Many existing approaches to profile analysis — including PCA applied to
ipsatized data — lack an integrated, workflow-level treatment of
dimensionality selection, subspace stability, and profile replicability.
FAPA addresses this by combining well-validated tools (Horn's parallel
analysis, Procrustes principal angles, Tucker's congruence coefficients, BCa
bootstrap CIs via the boot package) into a coherent, reproducible pipeline
designed specifically around the ipsatized structure of the data.
| Stage | Method | Criterion |
|---|---|---|
| 1 | Horn's parallel analysis (variance-matched) | Retain components where σ²_k exceeds the (1−α) quantile of a variance-matched null |
| 2 | Procrustes / principal angles | All K principal angles < 30° across bootstrap resamples |
| 3 | Tucker's congruence coefficients | Mean CC ≥ 0.85 (fair) or ≥ 0.95 (high) per Lorenzo-Seva & ten Berge (2006) |
# Install from GitHub (development version):
# install.packages("remotes")
remotes::install_github("sekangakim/FAPA")
library(FAPA)
# 1. Load and ipsatize
dat <- load_and_ipsatize("Calibration.csv", col_labels = paste0("V", 1:22))
Xtilde <- dat$ipsatized
# 2. Stage 1: parallel analysis
pa <- fapa_pa(Xtilde, B = 2000, seed = 1)
print_pa(pa)
K <- pa$n_retain
# 3. Core solution
fit <- fapa_core(Xtilde, K = K)
# 4. Stages 2 & 3: stability and replicability
pr <- fapa_procrustes(Xtilde, K = K + 3, B = 2000, seed = 1)
tc <- fapa_tucker(Xtilde, K = K + 3, B = 2000, seed = 1)
print_procrustes(pr, K_pa = K)
print_tucker(tc, cc_thresh = 0.85, K_pa = K)
# 5. BCa confidence intervals
bca <- fapa_bca(Xtilde, K = K, B = 2000, seed = 1)
plot_fapa_core(bca, i = 1, split_at = 11)
# 6. Person-level reconstruction
prs <- fapa_person(Xtilde, fit, participants = 1:5, seed = 1)
cat(sprintf("Mean R² = %.4f\n", prs$R2_mean))
See vignette("fapa_example", package = "FAPA") for a fully documented
walkthrough using EDI-2 eating-disorder symptom data.
| Function | Description |
|---|---|
load_and_ipsatize() |
Load CSV and row-centre |
fapa_core() |
SVD-based core profile estimation |
fapa_pa() |
Stage 1: variance-matched parallel analysis |
fapa_procrustes() |
Stage 2: subspace stability via principal angles |
fapa_tucker() |
Stage 3: Tucker's congruence coefficients |
fapa_bca() |
BCa bootstrap CIs for core profiles |
fapa_person() |
Person-level reconstruction and weights |
print_pa/procrustes/tucker() |
Formatted console summaries |
plot_fapa_core() |
Core profile with BCa CI bands |
plot_pa_scree() |
PA scree plot |
plot_principal_angles() |
Stage 2 angle distributions |
plot_tucker_cc() |
Stage 3 CC distributions |
write_fapa_results() |
Write core-profile CSVs |
write_verification() |
Write three-stage verification CSVs |
If you use FAPA in your research, please cite the accompanying manuscript:
Kim, S.-K. (in preparation). Factor Analytic Profile Analysis of Ipsatized Data (FAPA): An inferential framework for pattern detection and person reconstruction.
and the software:
Kim, S.-K. (2026). FAPA: Factor Analytic Profile Analysis of Ipsatized Data. R package version 0.1.0. https://github.com/sekangakim/FAPA
MIT © Se-Kang Kim