  Estimating the rank of a corrupted data matrix is an important task in data
science, most notably for choosing the number of components in principal
component analysis. Significant progress on this task has been made using
random matrix theory by characterizing the spectral properties of large noise
matrices. However, utilizing such tools is not straightforward when the data
matrix consists of count random variables, such as Poisson or binomial, in
which case the noise can be heteroskedastic with an unknown variance in each
entry. In this work, focusing on a Poisson random matrix with independent
entries, we propose a simple procedure termed \textit{biwhitening} that makes
it possible to estimate the rank of the underlying data matrix (i.e., the
Poisson parameter matrix) without any prior knowledge on its structure. Our
approach is based on the key observation that one can scale the rows and
columns of the data matrix simultaneously so that the spectrum of the
corresponding noise agrees with the standard Marchenko-Pastur (MP) law,
justifying the use of the MP upper edge as a threshold for rank selection.
Importantly, the required scaling factors can be estimated directly from the
observations by solving a matrix scaling problem via the Sinkhorn-Knopp
algorithm. Aside from the Poisson distribution, we extend our biwhitening
approach to other discrete distributions, such as the generalized Poisson,
binomial, multinomial, and negative binomial. We conduct numerical experiments
that corroborate our theoretical findings, and demonstrate our approach on real
single-cell RNA sequencing (scRNA-seq) data, where we show that our results
agree with a slightly overdispersed generalized Poisson model.
