xifa
is a python package for conducting item factor analysis (IFA), a representative multivariate technique in psychometrics.
xifa
is build on jax
, a package for Autograd and XLA (accelerated linear algebra). Hence, xifa
can run IFA on GPUs and TPUs to hugely speed up the training process. That is why we call it Accelerated IFA.
To calculate a marginal maximum likelihood (MML) estimate, xifa
implements a vectorized version of Metropolis-Hastings Robbins-Monro (MH-RM) algorithm (Cai, 2010). The vectorized algorithm is designed for parallel computing with GPUs of TPUs. The vectorized algorithm includes two stages: the first stage updates the parameter estimate by a stochastic expectation-maximization (StEM) algorithm and the second stage conducts stochastic approximation (SA) to iteratively refine the estimate.
For a tutorial, please see the IPIP 50 Items Example.
For a large-scale application, please see the IPIP 300 Items Example (v2).
xifa
supports ordinal data IFA with
- graded response model (GRM; Semejima, 1969)
- generalized partial credit model (GPCM; Muraki, 1992).
The analysis can be either exploratory or confirmatory. In addition, the vectorized algorithm is able to handle the presence of
- missing responses
- unequal category items
Features in statistical inference (e.g., goodness-of-fit statistics, parameter standard errors, etc.) are still under development.