ExpFamilyPCA.jl: A Julia Package for Exponential Family Principal Component Analysis
Logan Mondal Bhamidipaty, Mykel J. Kochenderfer, Trevor Hastie · The Journal of Open Source Software · 2025
Principal component analysis (PCA) (Hotelling, 1933;Jolliffe, 2002;Pearson, 1901) is popular for compressing, denoising, and interpreting high-dimensional data, but it underperforms on binary, count, and compositional data because the objective assumes data is normally distributed.Exponential family PCA (EPCA) (Collins et al., 2001) generalizes PCA to accommodate data from any exponential family distribution, making it more suitable for fields where these data types are common, such as geochemistry, marketing, genomics, political science, and machine learning (Greenacre, 2021;Hastie et al., 2009).ExpFamilyPCA.jl is a library for EPCA written in Julia, a dynamic language for scientific computing (Bezanson et al., 2017).It is the first EPCA package in Julia and the first in any language to support EPCA for multiple distributions.