MyNixOS website logo
Description

Factor Analytic Profile Analysis of Ipsatized Data.

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) <doi:10.1017/CBO9780511802843>.

FAPA: Factor Analytic Profile Analysis of Ipsatized Data

R-CMD-check

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.


Motivation

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.


Three-stage verification framework

StageMethodCriterion
1Horn's parallel analysis (variance-matched)Retain components where σ²_k exceeds the (1−α) quantile of a variance-matched null
2Procrustes / principal anglesAll K principal angles < 30° across bootstrap resamples
3Tucker's congruence coefficientsMean CC ≥ 0.85 (fair) or ≥ 0.95 (high) per Lorenzo-Seva & ten Berge (2006)

Installation

# Install from GitHub (development version):
# install.packages("remotes")
remotes::install_github("sekangakim/FAPA")

Quick start

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.


Key functions

FunctionDescription
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

Citation

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


References

  • Davison, A. C., & Hinkley, D. V. (1997). Bootstrap Methods and Their Application. Cambridge University Press.
  • Horn, J. L. (1965). A rationale and test for the number of factors in factor analysis. Psychometrika, 30(2), 179–185.
  • Kim, S.-K. (2023). Factorization of person response profiles to identify summative profiles carrying central response patterns. Psychological Methods. https://doi.org/10.1037/met0000568
  • Lorenzo-Seva, U., & ten Berge, J. M. F. (2006). Tucker's congruence coefficient as a meaningful index of factor similarity. Methodology, 2(2), 57–64.
  • Ten Berge, J. M. F. (1999). A legitimate case of component analysis of ipsative measures. Multivariate Behavioral Research, 34(1), 89–102.

License

MIT © Se-Kang Kim.

Metadata

Version

0.1.1

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows