Technika nieortogonalna analogiczna do PCA

9

Załóżmy, że mam zestaw danych punktów 2D i chcę wykryć kierunki wszystkich lokalnych maksimów wariancji w danych, na przykład:

wprowadź opis zdjęcia tutaj

PCA nie pomaga w tej sytuacji, ponieważ jest to rozkład ortogonalny i dlatego nie może wykryć obu linii wskazanych przeze mnie na niebiesko, a raczej jego wynik może wyglądać jak ten pokazany przez zielone linie.

Proszę polecić dowolną technikę, która może być odpowiednia do tego celu. Dzięki.

Ahmed
źródło
Czy możesz udostępnić swój przykładowy zestaw danych? Chciałbym spróbować czegoś dla ciebie. Pozdrawiam, Eric
Eric Melse

Odpowiedzi:

10

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,

  1. źródła są statystycznie niezależne
  2. niezależne komponenty niegaussowskie
  3. 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(x12+x222)=12πexp||x||22

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.

jpmuc
źródło
Tak, powinno ( scikit-learn.org/stable/auto_examples/decomposition/… ), dziękuję! : D
Ahmed
1
To może przerodzić się w naprawdę głęboką odpowiedź, jeśli powiesz więcej; w szczególności zdecyduj się porównać propozycję @ Gottfrieda (PCA z ukośną rotacją) z twoją propozycją (ICA), - jakie są różnice i wady tych dwóch.
ttnphns
Widzę, że na to pytanie udzielono częściowej odpowiedzi. Sprawdź edycję, dodając prosty przykład, do którego ICA nie ma zastosowania.
jpmuc
3

Istnieją procedury podobne do PCA w przypadku tak zwanej „skośnej” sprawy. W oprogramowaniu statycznym, takim jak SPSS (i być może również w jego darmowym klonie) PSPP można znaleźć równoważnie zwane „skośnymi rotacjami”, a ich wystąpienia nazywane są „ob eliminacją”, „promaxem” i czymś więcej. Jeśli dobrze rozumiem rzeczy, oprogramowanie próbuje „wyprostować” ładunki czynnikowe, ponownie obliczając ich współrzędne w ortogonalnej, euklidesowej przestrzeni (jak na przykład pokazano na twoim zdjęciu) na współrzędne przestrzeni, której osie są nie ortogonalne, być może z pewna technika znana z regresji wielokrotnej. Ponadto myślę, że działa to tylko iteracyjnie i pochłania jeden lub więcej stopni swobody w testach statystycznych modelu.

porównania PCA i obrotu ukośnego
Podręcznik referencyjny SPSS (w serwisie IBM) dotyczący obrotu ukośnego zawiera nawet formuły do ​​obliczeń.

[Aktualizacja] (Upps, przepraszam, właśnie sprawdziłem, czy PSPP nie zapewnia „rotacji” typu ukośnego)

Gottfried Helms
źródło
1
Hmm, po trzecim czytaniu widzę, że twoje pytanie różni się nieco od uzasadnienia rotacji skośnej: w twojej chmurze danych nie jest nawet tak, że średnia jest u źródła / że dane nie są nawet wyśrodkowane, więc może mieć na myśli coś innego, niż opisałem tutaj w mojej odpowiedzi. W takim przypadku mogę usunąć odpowiedź później ...
Gottfried Helms
1
Ponieważ skośne „obroty” następują po PCA, nie mogą one „zobaczyć” tego rodzaju sytuacji zilustrowanej w pytaniu i dlatego wydają się nie mieć więcej zdolności do identyfikacji tych dwóch składników niż sama PCA.
whuber
2

Nie mam z tym dużego doświadczenia, ale uogólnione PCA Vidala, Ma i Sastry'ego zostało stworzone z myślą o bardzo podobnym problemie.

Noah Stein
źródło
2

Inne odpowiedzi dały już kilka użytecznych wskazówek na temat technik, które można rozważyć, ale wydaje się, że nikt nie zauważył, że twoje założenie jest błędne: linie pokazane na niebiesko na schemacie NIE są lokalnymi maksymami wariancji.

Aby to zobaczyć, zwróć uwagę na wariancję kierunku w jest dany przez wΣw, gdzie Σoznacza macierz kowariancji danych. Aby znaleźć lokalne maksima, musimy wyzerować pochodną tego wyrażenia. Tak jakw jest ograniczony, aby mieć długość jednostki, musimy dodać termin λ(ww1) gdzie λto mnożnik Lagrange'a. Różniczkując, otrzymujemy następujące równanie:

Σwλw=0.

To znaczy że wpowinien być wektorem własnym macierzy kowariancji, tj. jednym z głównych wektorów. Innymi słowy, PCA daje wszystkie lokalne maksima, nie ma innych.

ameba
źródło
Cześć, nie mam dużego doświadczenia w matematyce, czy możesz polecić mi dobry zasób, aby dowiedzieć się o rzeczach wymienionych powyżej Dzięki.
Ahmed
@Ahmed: Nie jestem pewien, to zależy od tego, co już wiesz. Myślę, że potrzebowalibyście porządnych podręczników z algebry liniowej i analizy. To dość podstawowe rzeczy, które powinny być omówione w każdym porządnym podręczniku.
ameba