Kiedy konstruujesz biplot do analizy PCA, masz wyniki składowej głównej PC1 na osi x i oceny PC2 na osi y. Ale jakie są pozostałe dwie osie po prawej i na górze ekranu?
Czy masz na myśli na przykład wykres, który zwraca następujące polecenie?
biplot(prcomp(USArrests, scale =TRUE))
Jeśli tak, to górna i prawa oś służą do interpretacji czerwonych strzałek (punktów przedstawiających zmienne) na wykresie.
Jeśli wiesz, jak działa analiza głównego składnika i umiesz czytać kod R, poniższy kod pokazuje, jak wyniki prcomp()są traktowane na początku biplot.prcomp()przed końcowym wykreśleniem biplot.default(). Te dwie funkcje są wywoływane w tle podczas drukowania biplot(), a następujący fragment kodu został zmodyfikowanybiplot.prcomp() .
W skrócie, w powyższym przykładzie, macierz zmiennych obciążeń (x$rotation ) jest skalowana przez odchylenie standardowe głównych składników ( x$sdev) razy pierwiastek kwadratowy z liczby obserwacji. To ustawia skalę dla górnej i prawej osi do tego, co widać na wykresie.
Istnieją również inne metody skalowania obciążeń zmiennych. Są one oferowane np. Przez pakiet R wegański.
+1. Pozwoliłem sobie wstawić cyfrę do twojej odpowiedzi.
ameba mówi Przywróć Monikę
Ponadto myślę, że byłoby to bardzo przydatne dla odniesienia w przyszłości, jeśli można dodać do swojej odpowiedzi, że zdobywa PC (osie po lewej stronie i na dole) są skalowane do jednostki suma-of-kwadratów: są nie „raw” Wyniki na PC.
Mam lepszą wizualizację dla biplota. Sprawdź poniższy rysunek.
W eksperymencie próbuję odwzorować punkty 3d na 2D (symulowany zestaw danych).
Sztuką, aby zrozumieć biplot w 2D, jest znalezienie odpowiedniego kąta, aby zobaczyć to samo w 3D. Wszystkie punkty danych są ponumerowane, można wyraźnie zobaczyć mapowanie.
+1. Zauważ jednak, że na obróconej figurze 3D chmura kropek ma zachowaną wariancję (projekcja pozioma, tj. PC1, ma większą wariancję niż pionowa, tj. PC2), podczas gdy wszystkie czerwone strzałki mają długość jednostkową (w 3D). Nie dzieje się tak w przypadku dwupłatu utworzonego przez biplotpolecenie w R i odtworzonego na twojej figurze po prawej stronie: tam chmura kropek jest znormalizowana, ale strzałki mają długości odpowiadające wariancjom.
ameba mówi Przywróć Monikę
@amoeba dobry punkt. Po prostu narysowałem strzałki ręcznie i zapomniałem, że długość strzałki ma również określone znaczenie.
Haitao Du
Myślę, że twój ręczny „dwupłat” 3D / 2D bardziej odpowiada temu, co funkcja biplotgeneruje z scale=0argumentem.
Odpowiedzi:
Czy masz na myśli na przykład wykres, który zwraca następujące polecenie?
Jeśli tak, to górna i prawa oś służą do interpretacji czerwonych strzałek (punktów przedstawiających zmienne) na wykresie.
Jeśli wiesz, jak działa analiza głównego składnika i umiesz czytać kod R, poniższy kod pokazuje, jak wyniki
prcomp()
są traktowane na początkubiplot.prcomp()
przed końcowym wykreśleniembiplot.default()
. Te dwie funkcje są wywoływane w tle podczas drukowaniabiplot()
, a następujący fragment kodu został zmodyfikowanybiplot.prcomp()
.W skrócie, w powyższym przykładzie, macierz zmiennych obciążeń (
x$rotation
) jest skalowana przez odchylenie standardowe głównych składników (x$sdev
) razy pierwiastek kwadratowy z liczby obserwacji. To ustawia skalę dla górnej i prawej osi do tego, co widać na wykresie.Istnieją również inne metody skalowania obciążeń zmiennych. Są one oferowane np. Przez pakiet R wegański.
źródło
biplot.default
Mam lepszą wizualizację dla biplota. Sprawdź poniższy rysunek.
W eksperymencie próbuję odwzorować punkty 3d na 2D (symulowany zestaw danych).
Sztuką, aby zrozumieć biplot w 2D, jest znalezienie odpowiedniego kąta, aby zobaczyć to samo w 3D. Wszystkie punkty danych są ponumerowane, można wyraźnie zobaczyć mapowanie.
Oto kod do odtworzenia wyników.
źródło
biplot
polecenie w R i odtworzonego na twojej figurze po prawej stronie: tam chmura kropek jest znormalizowana, ale strzałki mają długości odpowiadające wariancjom.biplot
generuje zscale=0
argumentem.