To pytanie dotyczy skutecznego sposobu obliczania głównych składników.
Wiele tekstów na temat liniowego PCA opowiada się za dekompozycją danych w liczbie pojedynczej . Oznacza to, że jeśli mamy dane i chcemy zastąpić zmienne (jego kolumny ) głównymi składnikami, wykonujemy SVD: , wartości osobliwe (pierwiastki kwadratowe wartości własnych) zajmujące główną przekątną , prawe wektory własne są ortogonalną macierzą obrotu zmiennych osi w komponenty osi, lewe wektory własne \ bf U są podobne do \ bf V , tylko dla przypadków. Następnie możemy obliczyć wartości składników jako \ bf C = XV = US .
Innym sposobem wykonania PCA zmiennych jest dekompozycja macierzy kwadratowej (tzn. może być korelacją lub kowariancją itp. Między zmiennymi). Rozkład może być rozkładem własnym lub rozkładem liczby pojedynczej: przy kwadratowej symetrycznej dodatniej macierzy półfinałowej dadzą ten sam wynik z wartościami własnymi jak przekątna , i jak opisano wcześniej. Wartości składników będą wynosić .
Moje pytanie: jeśli data jest dużą macierzą, a liczba przypadków jest (co często jest przypadkiem) znacznie większa niż liczba zmiennych, to oczekuje się, że sposób (1) będzie znacznie wolniejszy niż sposób (2 ), ponieważ sposób (1) stosuje dość drogi algorytm (taki jak SVD) do dużej matrycy; oblicza i przechowuje ogromną macierz której tak naprawdę nie potrzebujemy w naszym przypadku (PCA zmiennych). Jeśli tak, to dlaczego tak wiele podręczników wydaje się popierać lub po prostu wymieniać tylko sposób (1)? Może jest wydajny i czegoś mi brakuje?
Joliffe, Principal component analysis, 2nd ed.
rzeczywistości Joliffe opisuje oba sposoby, ale w głównym rozdziale na temat PCA mówi o sposobie 1, o ile pamiętam.
R
svd