# Why is the rank of covariance matrix at most $n-1$?

As stated in this question, the maximum rank of covariance matrix is $n-1$ where $n$ is sample size and so if the dimension of covariance matrix is equal to the sample size, it would be singular. I can't understand why we subtract $1$ from the maximum rank $n$ of covariance matrix.

• To get the intuition, think about $n=2$ points in 3D. What is the dimensionality of the subspace that these points lie in? Can you fit them on a line (1D subspace)? Or do you need a plane (2D subspace)? – amoeba says Reinstate Monica Oct 25 '15 at 17:41
• So you do understand that $n=2$ leads to rank 1 covariance matrix? Okay, let's take $n=3$ points. Can you see that you can always fit them on a 2D plane? – amoeba says Reinstate Monica Oct 25 '15 at 17:47
• @amoeba your example was clear but I can't understand what is the relationship between fitting hyper-plane in your example and covariance matrix? – user3070752 Oct 25 '15 at 18:14
• Sorry for delay ;) – user3070752 Oct 16 '16 at 19:45

The unbiased estimator of the sample covariance matrix given $n$ data points $\newcommand{\x}{\mathbf x}\x_i \in \mathbb R^d$ is $$\mathbf C = \frac{1}{n-1}\sum_{i=1}^n (\x_i - \bar \x)(\x_i - \bar \x)^\top,$$ where $\bar \x = \sum \x_i /n$ is the average over all points. Let us denote $(\x_i-\bar \x)$ as $\newcommand{\z}{\mathbf z}\z_i$. The $\frac{1}{n-1}$ factor does not change the rank, and each term in the sum has (by definition) rank $1$, so the core of the question is as follows:

Why does $\sum \z_i\z_i^\top$ have rank $n-1$ and not rank $n$, as it would seem because we are summing $n$ rank-$1$ matrices?

The answer is that it happens because $\z_i$ are not independent. By construction, $\sum\z_i = 0$. So if you know $n-1$ of $\z_i$, then the last remaining $\z_n$ is completely determined; we are not summing $n$ independent rank-$1$ matrices, we are summing only $n-1$ independent rank-$1$ matrices and then adding one more rank-$1$ matrix that is fully linearly determined by the rest. This last addition does not change the overall rank.

We can see this directly if we rewrite $\sum\z_i = 0$ as $$\z_n = -\sum_{i=1}^{n-1}\z_i,$$ and now plug it into the above expression: $$\sum_{i=1}^n \z_i\z_i^\top = \sum_{i=1}^{n-1} \z_i\z_i^\top + \Big(-\sum_{i=1}^{n-1}\z_i\Big)\z_n^\top=\sum_{i=1}^{n-1} \z_i(\z_i-\z_n)^\top.$$ Now there is only $n-1$ terms left in the sum and it becomes clear that the whole sum can have at most rank $n-1$.

This result, by the way, hints to why the factor in the unbiased estimator of covariance is $\frac{1}{n-1}$ and not $\frac{1}{n}$.

The geometric intuition that I alluded to in the comments above is that one can always fit a 1D line to any two points in 2D and one can always fit a 2D plane to any three points in 3D, i.e. the dimensionality of the subspace is always $n-1$; this only works because we assume that this line (and plane) can be "moved around" in order to fit our points. "Positioning" this line (or plane) such that it passes through $\bar \x$ is equivalent of centering in the algebraic argument above.

A bit shorter, I believe, explanation goes like this:

Let us define matrix $$n$$ x $$m$$ matrix $$x$$ of sample data points where $$n$$ is a number of variables and $$m$$ is a number of samples for each variable. Let us assume that none of the variables are linearly dependent.

The rank of $$x$$ is $$min(n,m)$$.

Let us define matrix $$n$$ x $$m$$ matrix $$z$$ of rowwise centered variables:

$$z = x - E[x]$$.

The rank of centered data becomes $$min(n,m-1)$$, because each data row is now subjected to constraint:

$$\sum_{i=1}^{m}z_{*i} =0$$.

It basically means we can recreate the entire $$z$$ matrix even if one of columns is removed.

The equation for sample covariance of $$x$$ becomes:

$$cov(x,x) = \frac{1}{m-1}zz^T$$

Clearly, the rank of covariance matrix is the $$rank(zz^T)$$.

By rank-nullity theorem: $$rank(zz^T) = rank(z) = min(n,m-1)$$.