Przykładowy kod:
(pc.cr <- princomp(USArrests))
summary(pc.cr)
loadings(pc.cr) ## note that blank entries are small but not zero
Otrzymuję różne wyniki i nie jestem pewien, czy rozumiem, na czym polega różnica.
Oto wynik:
> summary(pc.cr)
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 82.8908472 14.06956001 6.424204055 2.4578367034
Proportion of Variance 0.9655342 0.02781734 0.005799535 0.0008489079
Cumulative Proportion 0.9655342 0.99335156 0.999151092 1.0000000000
> loadings(pc.cr) ## note that blank entries are small but not zero
...
Comp.1 Comp.2 Comp.3 Comp.4
SS loadings 1.00 1.00 1.00 1.00
Proportion Var 0.25 0.25 0.25 0.25
Cumulative Var 0.25 0.50 0.75 1.00
PS: jak mogę uzyskać dostęp do tabeli utworzonej przez podsumowanie (pc.cr) ?? (Nie mogę tego znaleźć w str.)
# inappropriate
komentarz w pierwszym wierszu?Odpowiedzi:
Pierwsze wyjście jest poprawne i najbardziej przydatne. Wywołanie
loadings()
twojego obiektu po prostu zwraca podsumowanie, gdzie SS jest zawsze równe 1, stąd% wariancji jest tylko ładunkami SS podzielonymi przez liczbę zmiennych. Ma to sens tylko przy użyciu analizy czynnikowej (jak wfactanal
). Nigdy nie używamprincomp
alternatywy opartej na SVD (prcomp
) i wolę pakiet FactoMineR lub ade4 , które są zdecydowanie bardziej wydajne!Jeśli chodzi o twoje drugie pytanie,
summary()
funkcja zwraca SD dla każdego komponentu (pc.cr$sdev
w twoim przypadku), a reszta tabeli wydaje się być obliczona później (za pomocą metodyprint
lubshow
nie zbadałem tego szczegółowo).To
princomp()
, co się robi, można wyświetlić za pomocągetAnywhere("princomp.default")
.źródło