Matrix factorization methods compress the original data matrix $A \in
R^{f,N}$ with $f$ features and $N$ samples into two parts,
namely $A = B C$ with $B \in R^{f,k}, C\in R^{k,
N}$. The function estimateDimension estimates $k$ based on a noise
model estimated from a scrambled version of the original data matrix.