  Detecting and recovering a low-rank signal in a noisy data matrix is a
fundamental task in data analysis. Typically, this task is addressed by
inspecting and manipulating the spectrum of the observed data, e.g.,
thresholding the singular values of the data matrix at a certain critical
level. This approach is well-established in the case of homoskedastic noise,
where the noise variance is identical across the entries. However, in numerous
applications, the noise can be heteroskedastic, where the noise characteristics
may vary considerably across the rows and columns of the data. In this
scenario, the spectral behavior of the noise can differ significantly from the
homoskedastic case, posing various challenges for signal detection and
recovery. To address these challenges, we develop an adaptive normalization
procedure that equalizes the average noise variance across the rows and columns
of a given data matrix. Our proposed procedure is data-driven and fully
automatic, supporting a broad range of noise distributions, variance patterns,
and signal structures. We establish that in many cases, this procedure enforces
the standard spectral behavior of homoskedastic noise -- the Marchenko-Pastur
(MP) law, allowing for simple and reliable detection of signal components.
Furthermore, we demonstrate that our approach can substantially improve signal
recovery in heteroskedastic settings by manipulating the spectrum after
normalization. Lastly, we apply our method to single-cell RNA sequencing and
spatial transcriptomics data, showcasing accurate fits to the MP law after
normalization. Our approach relies on recent results in random matrix theory,
which describe the resolvent of the noise via the so-called Dyson equation. By
leveraging this relation, we can accurately infer the noise level in each row
and each column directly from the resolvent of the data.
