Suppose I have a matrix $A$ and an estimation of the matrix $\hat{A} = A + \varepsilon$ where $\varepsilon$ is some noise.
I want to estimate $m = \text{rank}(A)$, but only have access to $\hat{A}$. How could I do it? I have tried to look at the singular values, but it is not clear where to put the threshold.
It is impossible to predict the rank of $A$ exactly unless $\hat{A}$ has full rank because for every $n$ less than the full rank the set $\{A: \mathrm{rank}(A) > n\}$ is dense in the set of all matrices. However, you can estimate the rank from below if $\varepsilon$ is sufficiently small. This is because $$\|s_k(A) - s_k(\hat{A})\| \leq \|A - \hat{A}\| \leq \varepsilon$$ for all (ordered) singular values $s_k$. Hence if the largest $n$ singular values of $\hat{A}$ are larger than $\varepsilon$, then $A$ has at least rank $n$.