L'analyse indépendante des composants devrait être en mesure de vous fournir la bonne solution. Il est capable de décomposer des composants non orthogonaux (comme dans votre cas) en supposant que vos mesures résultent d'un mélange de variables statistiquement indépendantes.
Il existe de nombreux bons didacticiels sur Internet et quelques implémentations librement disponibles à essayer (par exemple dans scikit ou MDP ).
Quand l'ICA ne fonctionne-t-il pas?
Comme d'autres algorithmes, l'ICA est optimal lorsque les hypothèses pour lesquelles il a été dérivé s'appliquent. Concrètement,
- les sources sont statistiquement indépendantes
- les composants indépendants sont non gaussiens
- la matrice de mélange est inversible
ICA renvoie une estimation de la matrice de mélange et des composants indépendants.
Lorsque vos sources sont gaussiennes, ICA ne peut pas trouver les composants. Imaginez que vous avez deux composants indépendants, et , qui sont . Ensuite,
x 2 N ( 0 , I ) p ( x 1 , x 2 ) = p ( x 1 ) p ( x 2 ) = 1x1x2N(0,I)
p ( x1, x2) = p ( x1) p ( x2) = 12 πexp( - x21+ x222) = 12 πexp - | | x | |22
où. est la norme du vecteur bidimensionnel. S'ils sont mélangés avec une transformation orthogonale (par exemple une rotation ), nous avons,, ce qui signifie que la distribution de probabilité ne change pas sous la rotation. Par conséquent, ICA ne peut pas trouver la matrice de mélange à partir des données.R | | R x | | = | | x | || | . | |R||Rx||=||x||