Expectation-Maximization Principal Component Analysis


Updated 26 Jul 2017

View License

EMPCA calculates principal components using an expectation maximization algorithm to find each component in the residual matrix after substracting the previously converged principal components.
EMPCA_W accepts a weight matrix to use in the weighted EM algorithm.
EMPCA_NAN accepts a data matrix with nans to use in the missing data EM algorithm.
An informative message reports the number of EM iterations computed for each component, revealing if the convergence was achieved under a certain tolerance, or if the iterations were stopped after a maximum number.
This implementation is especially useful to handle large matrices, and runs fast on gpuArray matrices.
The algorithm is described in
Bailey, Stephen. "Principal Component Analysis with Noisy and/or Missing Data." Publications of the Astronomical Society of the Pacific 124.919 (2012): 1015-1023.

Cite As

Vicente Parot (2023). EMPCA (https://www.mathworks.com/matlabcentral/fileexchange/45353-empca), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Added missing data and weights handling, and a test script with a syntax example.

Minor changes

Updated description

Updated documentation.

Improved class support on CPU/GPU and convergence criterion