Podczas wykonywania głównej analizy składowej (PCA) powszechną rzeczą do zrobienia jest wykreślenie dwóch obciążeń względem siebie w celu zbadania zależności między zmiennymi. W pracy dołączonej do pakietu PLS R do wykonywania regresji głównej składowej i regresji PLS istnieje inny wykres, zwany wykresem ładunków korelacyjnych (patrz rysunek 7 i strona 15 w pracy). Loading korelacja , jak wyjaśniono, jest korelacja między punktacji (od PCA lub PLS) i rzeczywista obserwowana danych.
Wydaje mi się, że ładunki i ładunki korelacyjne są dość podobne, z tym wyjątkiem, że są skalowane nieco inaczej. Powtarzalny przykład w R z wbudowanym zestawem danych mtcars jest następujący:
data(mtcars)
pca <- prcomp(mtcars, center=TRUE, scale=TRUE)
#loading plot
plot(pca$rotation[,1], pca$rotation[,2],
xlim=c(-1,1), ylim=c(-1,1),
main='Loadings for PC1 vs. PC2')
#correlation loading plot
correlationloadings <- cor(mtcars, pca$x)
plot(correlationloadings[,1], correlationloadings[,2],
xlim=c(-1,1), ylim=c(-1,1),
main='Correlation Loadings for PC1 vs. PC2')
Jaka jest różnica w interpretacji tych wykresów? A z jakiej działki (jeśli w ogóle) najlepiej skorzystać w praktyce?
źródło
R
prcomp
pakiet lekkomyślnie nazywa wektory własne „ładowaniami”. I rada , aby utrzymać te terminy rozdzielić. Ładunki są wektorami własnymi skalowanymi do odpowiednich wartości własnych.Odpowiedzi:
Ostrzeżenie:
R
używa terminu „ładunki” w mylący sposób. Wyjaśnię to poniżej.Rozważ zestaw danych z (wyśrodkowanymi) zmiennymi w kolumnach i punktami danych w wierszach. Wykonanie PCA tego zestawu danych oznacza rozkład pojedynczej wartości . Kolumny są głównymi składnikami (PC "score"), a kolumny są głównymi osiami. Macierz kowariancji podaje , więc główne osie są wektorami własnymi macierzy kowariancji.X N X=USV⊤ US V 1N−1X⊤X=VS2N−1V⊤ V
„Ładunki” są zdefiniowane jako kolumny , tzn. Są wektorami własnymi skalowanymi przez pierwiastki kwadratowe odpowiednich wartości własnych. Różnią się od wektorów własnych! Zobacz moją odpowiedź tutaj, aby uzyskać motywację.L=VSN−1√
Za pomocą tego formalizmu możemy obliczyć macierz krzyżowej kowariancji między oryginalnymi zmiennymi a znormalizowanymi komputerami PC: tzn. Jest podany przez ładunki. Macierz korelacji krzyżowej między zmiennymi oryginalnymi a komputerami jest podawana przez to samo wyrażenie podzielone przez standardowe odchylenia pierwotnych zmiennych (z definicji korelacji). Jeśli pierwotne zmienne zostały znormalizowane przed wykonaniem PCA (tj. PCA przeprowadzono na macierzy korelacji), wszystkie są równe . W tym ostatnim przypadku macierz korelacji krzyżowej jest ponownie podana po prostu przez .
Aby wyjaśnić nieporozumienia terminologiczne: to, co pakiet R nazywa „ładunkami”, jest osiami głównymi, a to, co nazywa „ładunkami korelacyjnymi”, w rzeczywistości (dla PCA wykonywanych na macierzy korelacji) w rzeczywistości ładuje. Jak zauważyłeś, różnią się one tylko skalowaniem. Co lepiej knuć, zależy od tego, co chcesz zobaczyć. Rozważ następujący prosty przykład:
Lewy wykres podrzędny pokazuje ustandaryzowany zestaw danych 2D (każda zmienna ma wariancję jednostkową), rozciągnięty wzdłuż głównej przekątnej. Środkowy wykres podrzędny jest dwupłatowy : jest to wykres rozproszenia PC1 vs PC2 (w tym przypadku po prostu zestaw danych obrócony o 45 stopni) z rzędami naniesionymi na wierzch jako wektory. Należy zauważyć, że i wektory są o 90 stopni od siebie; mówią ci, jak orientowane są oryginalne osie. Prawy podplot to ten sam biplot, ale teraz wektory pokazują wiersze . Należy zauważyć, że teraz i wektory kąt ostry między nimi; mówią ci, jak wiele oryginalnych zmiennych jest skorelowanych z komputerami PC oraz zarówno jak i x y L x y x yV x y L x y x y są znacznie silniej skorelowane z PC1 niż z PC2. I przypuszczam , że większość ludzi najczęściej wolą zobaczyć odpowiedni rodzaj biplot.
Zauważ, że w obu przypadkach zarówno wektory jak i mają długość jednostkową. Stało się tak tylko dlatego, że zestaw danych miał na początek 2D; w przypadku, gdy jest więcej zmiennych, poszczególne wektory mogą mieć długość mniejszą niż , ale nigdy nie mogą sięgać poza koło jednostki. Dowód tego faktu zostawiam jako ćwiczenie.y 1x y 1
Przyjrzyjmy się teraz zestawowi danych mtcars . Oto biplot PCA wykonany na macierzy korelacji:
Czarne linie są wykreślane za pomocą , czerwone linie są wykreślane za pomocą .L.V L
A oto biplot PCA wykonany na macierzy kowariancji:
Tutaj przeskalowałem wszystkie wektory i koło jednostki o , ponieważ w przeciwnym razie nie byłoby to widoczne (jest to powszechnie stosowana sztuczka). Ponownie, czarne linie pokazują rzędy , a czerwone linie pokazują korelacje między zmiennymi a komputerami PC (których nie podaje już , patrz wyżej). Zauważ, że widoczne są tylko dwie czarne linie; dzieje się tak, ponieważ dwie zmienne mają bardzo dużą wariancję i dominują w zestawie danych mtcars . Z drugiej strony widać wszystkie czerwone linie. Oba przedstawienia przekazują przydatne informacje.V L.100 V L
PS Istnieje wiele różnych wariantów bipotów PCA, zobacz moją odpowiedź tutaj, aby uzyskać dalsze wyjaśnienia i przegląd: Umieszczanie strzałek na biplocie PCA . Najładniejszy biplot, jaki kiedykolwiek opublikowano na CrossValidated, można znaleźć tutaj .
źródło
cases X variables
. Zgodnie z tradycją algebra liniowa w większości tekstów analizy statystycznej tworzy wektor rzędów. Może w uczeniu maszynowym jest inaczej?