Solved – Non-orthogonal technique analogous to PCA

dimensionality reductionpca

Suppose I have a 2D point dataset and I want to detect the directions of all the local maxima's of variance in the data, for example:

enter image description here

PCA does not help in this situation as it is an orthogonal decomposition and therefore cannot detect both the lines I indicated in blue, rather its output may look like the one shown by green lines.

Please recommend any technique which might be suitable for this purpose. Thanks.

Best Answer

Independent Component Analysis should be able to provide you with s good solution. It is able to decompose non-orthogonal components (like in your case) by assuming that your measurements result from a mixture of statistically independent variables.

There are plenty of good tutorials in Internet, and quiet a few freely available implementations to try out (for example in scikit or MDP).

When does ICA not work?

As other algorithms, ICA is optimal when the assumptions for which it was derived apply. Concretely,

  1. sources are statistically independent
  2. the independent components are non-Gaussian
  3. the mixing matrix is invertible

ICA returns an estimation of the mixing matrix and the independent components.

When your sources are Gaussian then ICA cannot find the components. Imagine you have two independent components, $x_{1}$ and $x_{2}$, which are $N(0,I)$. Then, $$ p(x_{1}, x_{2}) = p(x_{1})p(x_{2}) = \frac{1}{2\pi}\exp \left( -\frac{x_{1}^{2}+x_{2}^{2}}{2} \right) = \frac{1}{2\pi}\exp -\frac{||\mathbf{x}||^{2}}{2} $$

where $||.||$. is the norm of the two dimensional vector. If they are mixed with an orthogonal transformation (for example a rotation $R$), we have, $||R\mathbf{x}|| = ||\mathbf{x}||$, which means that the probability distribution does not change under the rotation. Hence, ICA cannot find the mixing matrix from the data.

Related Question