Umieszczanie strzałek na biplocie PCA


18

Szukam zaimplementować biplot do analizy głównych składników (PCA) w JavaScript. Moje pytanie brzmi: jak określić współrzędne strzałek z wyjścia U,V,D rozkładu pojedynczego wektora (SVD) macierzy danych?

Oto przykładowy dwupłat wyprodukowany przez R:

biplot(prcomp(iris[,1:4]))

Biplot zestawu danych Iris

Próbowałem to sprawdzić w artykule Wikipedii na temat biplota, ale nie jest to zbyt przydatne. Lub poprawnie. Nie jestem pewien który.


3
Biplot to nakładkowy wykres rozrzutu pokazujący zarówno wartości U, jak i V. Lub UD i V. Lub U i VD ”. Lub UD i VD ”. Pod względem PCA, UD nazywane są surowymi wynikami głównego składnika, a VD 'są ładowaniami zmiennych składników.
ttnphns,

2
Zauważ również, że skala współrzędnych zależy od tego, jak początkowo normalizujesz dane. Na przykład w PCA jeden normalnie dzieli dane przez sqrt (r) lub sqrt (r-1) [r to liczba wierszy]. Ale w prawdziwym „biplocie” w wąskim znaczeniu tego słowa zwykle dzieli się dane przez sqrt (rc) [c jest liczbą kolumn], a następnie
dezormalizuje

Dlaczego dane muszą być skalowane o ? 1n1
ktdrv 10.03.19

1
@ttnphns: W ślad za powyższymi komentarzami napisałem odpowiedź na to pytanie, starając się przedstawić coś w rodzaju przeglądu normalizacji biplotów PCA. Jednak moja wiedza na ten temat jest czysto teoretyczna i wierzę, że masz o wiele więcej praktycznych doświadczeń z dwupłatami niż ja. Byłbym więc wdzięczny za wszelkie komentarze.
ameba mówi Przywróć Monikę

1
Jednym z powodów wdrożenia rzeczy, @Aleksandr, jest dokładna wiedza o tym, co się dzieje. Jak widać, nie jest łatwo ustalić, co dokładnie się stanie, gdy się uruchomi biplot(). Ponadto, po co zawracać sobie głowę integracją R-JS dla czegoś, co wymaga zaledwie kilku wierszy kodu.
ameba mówi Przywróć Monikę

Odpowiedzi:


40

Istnieje wiele różnych sposobów tworzenia dwupłatów PCA, więc nie ma unikalnej odpowiedzi na twoje pytanie. Oto krótki przegląd.

Zakładamy, że macierz danych ma n punktów danych w rzędach i jest wyśrodkowana (tzn. Wszystkie kolumny są zerowe). Na razie nie zakładamy, że był on znormalizowany, tzn. Rozważamy PCA na macierzy kowariancji (nie na macierzy korelacji). PCA oznacza rozkład pojedynczej wartości X = U S V , możesz zobaczyć moją odpowiedź tutaj, aby uzyskać szczegółowe informacje: Związek między SVD a PCA. Jak korzystać z SVD do wykonywania PCA?Xn

X=USV,

W biplocie PCA dwa pierwsze główne składniki są wykreślane jako wykres rozproszenia, tj. Pierwsza kolumna jest wykreślana względem drugiej kolumny. Ale normalizacja może być inna; np. można użyć:U

  1. Kolumny : są to główne składniki skalowane do jednostkowej sumy kwadratów;U
  2. Kolumny : są to znormalizowane główne składniki (wariancja jednostkowa);n1U
  3. Kolumny : są to „surowe” główne elementy (rzuty na główne kierunki).US

Ponadto oryginalne zmienne są wykreślane jako strzałki; czyli współrzędnych AN i -tym strzałka końcowych są przez ı wartości -tym w pierwszej i drugiej kolumnie V . Ale znowu można wybrać różne normalizacje, np .:(x,y)iiV

  1. Kolumny : Nie wiem, jak mogłaby to być interpretacja;VS
  2. Kolumny : są to obciążenia;VS/n1
  3. Kolumny : są to główne osie (aka główne kierunki, aka wektory własne).V

Oto jak to wszystko wygląda w zestawie danych Fisher Iris:

Dwuskładniki Fisher Iris, PCA na kowariancji

9XUSαβVS(1α)/β9 są „odpowiednimi dwuplotami”: mianowicie kombinacją dowolnej podploty z góry z tą podplotem bezpośrednio.

[Jakakolwiek kombinacja zostanie użyta, może być konieczne skalowanie strzałek według dowolnego dowolnego stałego współczynnika, tak aby zarówno strzałki, jak i punkty danych pojawiały się mniej więcej w tej samej skali.]

VS/n1Un1

Ten [szczególny wybór] prawdopodobnie zapewni najbardziej użyteczną pomoc graficzną w interpretacji wielowymiarowych matryc obserwacji, pod warunkiem oczywiście, że można je odpowiednio aproksymować na drugim miejscu.

USV

US

biplotUVSbiplot0.8biplotn/(n1)1Strzały podstawowych zmiennych w biplocie PCA w R. )

PCA na macierzy korelacji

X1

Biploty Fishera Iris, PCA o korelacjach

1R=1


Dalsza lektura:


1
+6, zasługuje na więcej niż 3 głosy poparcia.
Gung - Przywróć Monikę

3
Właśnie zauważyłem, że? Ca :: plot.ca ma ładny przegląd różnych możliwych normalizacji: rozróżniają zasadę wiersza (forma biplot = rzędy w głównych współrzędnych, cols w standardowych współrzędnych), col main (kowariancja biplot = cols w głównych współrzędnych, wiersze w standardowych współrzędnych), symetryczny biplot (wiersze i kolumny skalowane w celu uzyskania wariancji równych liczbie pojedynczej (pierwiastki kwadratowe wartości własnych)), rowgab i colgab (wiersze w głównych współrzędnych i cols w standardowych współrzędnych pomnożone przez masę odpowiedniego punktu lub vice versa) i rowgreen i colgreen (jak rowgab i colgab, ale z sqrt (masy))
Tom Wenseleers

2
Te ostatnie są również nazywane „dwupłatami składkowymi”; książka M. Greenacre „Biplots in praktyce” również daje ładny przegląd tego wszystkiego; te sposoby skalowania mają zastosowanie do wszystkich metod opartych na SVD (tj. biploty CA, biploty PCA, biploty LDA itp.); na przykład, jak to działa, zobacz kod źródłowy ca ::: plot.ca i argument „map”
Tom Wenseleers

1
n1

1
@AntoniParellada Zredagowałem i wstawiłem kilka linków.
ameba mówi Przywróć Monikę
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.