Niezależna analiza komponentów powinna być w stanie zapewnić dobre rozwiązanie. Jest w stanie rozłożyć komponenty nieortogonalne (jak w twoim przypadku), zakładając, że twoje pomiary wynikają z mieszaniny zmiennych statystycznie niezależnych.
W Internecie znajduje się wiele dobrych samouczków, a kilka darmowych implementacji do wypróbowania (na przykład w Scikit lub MDP ).
Kiedy ICA nie działa?
Podobnie jak inne algorytmy, ICA jest optymalna, gdy mają zastosowanie założenia, dla których została uzyskana. Konkretnie,
- źródła są statystycznie niezależne
- niezależne komponenty nie są gaussowskie
- matryca mieszająca jest odwracalna
ICA zwraca oszacowanie macierzy mieszania i niezależnych składników.
Gdy twoje źródła są gaussowskie, ICA nie może znaleźć komponentów. Wyobraź sobie, że masz dwa niezależne komponenty,x1 i x2), które są N.( 0 , I). Następnie,
p (x1,x2)) = p (x1) p (x2)) =12 πexp( -x2)1+x2)2)2)) =12 πexp -| | x ||2)2)
gdzie ||.||. jest normą dwuwymiarowego wektora. Jeśli zostaną zmieszane z transformacją ortogonalną (na przykład rotacjąR), mamy, ||Rx||=||x||, co oznacza, że rozkład prawdopodobieństwa nie zmienia się pod rotacją. Dlatego ICA nie może znaleźć matrycy miksowania z danych.