Bayesian Dimensionality Reduction With PCA Using Penalized Semi-Integrated Likelihood

<p>We discuss the problem of estimating the number of principal components in principal components analysis (PCA). Despite the importance of the problem and the multitude of solutions proposed in literature, it comes as a surprise that there does not exist a coherent asymptotic framework, which would justify different approaches depending on the actual size of the dataset. In this article, we address this issue by presenting an approximate Bayesian approach based on Laplace approximation and introducing a general method of developing criteria for model selection, called PEnalized SEmi-integrated Likelihood (PESEL). Our general framework encompasses a variety of existing approaches based on probabilistic models, like the Bayesian Information Criterion for Probabilistic PCA (PPCA), and enables the construction of new criteria, depending on the size of the dataset at hand and additional prior information. Specifically, we apply PESEL to derive two new criteria for datasets where the number of variables substantially exceeds the number of observations, which is out of the scope of currently existing approaches. We also report results of extensive simulation studies and real data analysis, which illustrate the desirable properties of our proposed criteria as compared to state-of-the-art methods and very recent proposals. Specifically, these simulations show that PESEL-based criteria can be quite robust against deviations from the assumptions of a probabilistic model. Selected PESEL-based criteria for the estimation of the number of principal components are implemented in the R package <i>pesel</i>, which is available on github (<i><a href="https://github.com/psobczyk/pesel" target="_blank">https://github.com/psobczyk/pesel</a></i>). Supplementary material for this article, with additional simulation results, is available online. The code to reproduce all simulations is available at <i><a href="https://github.com/psobczyk/pesel_simulations" target="_blank">https://github.com/psobczyk/pesel_simulations</a></i>.</p>