Weighted EMPCA performs principal component analysis (PCA) on noisy datasets with missing values. Estimates of the measurement error are used to weight the input data such that the resulting eigenvectors, when compared to classic PCA, are more sensitive to the true underlying signal variations rather than being pulled by heteroskedastic measurement noise. Missing data are simply limiting cases of weight = 0. The underlying algorithm is a noise weighted expectation maximization (EM) PCA, which has additional benefits of implementation speed and flexibility for smoothing eigenvectors to reduce the noise contribution.
https://ui.adsabs.harvard.edu/abs/2012PASP..124.1015B, and optionally an acknowledgement such as This work uses the Weighted EMPCA code by Stephen Bailey, available at https://github.com/sbailey/empca/