Beispielcode:
(pc.cr <- princomp(USArrests))
summary(pc.cr)
loadings(pc.cr) ## note that blank entries are small but not zero
Ich erhalte von jedem unterschiedliche Ausgänge und bin mir nicht sicher, ob ich den Unterschied verstehe.
Hier ist die Ausgabe:
> 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: Wie kann ich auf die von summary (pc.cr) erstellte Tabelle zugreifen? (Ich kann es nicht in str finden.)
# inappropriate
Kommentar in der ersten Zeile?Antworten:
Die erste Ausgabe ist die richtige und nützlichste. Wenn Sie
loadings()
Ihr Objekt aufrufen, wird nur eine Zusammenfassung zurückgegeben, bei der die SS immer gleich 1 ist. Daher ist die prozentuale Varianz nur die SS-Ladung geteilt durch die Anzahl der Variablen. Dies ist nur bei Verwendung der Faktoranalyse (wie infactanal
) sinnvoll . Ich benutzeprincomp
oder seine SVD-basierte Alternative (prcomp
) nie und bevorzuge das FactoMineR- oder ade4- Paket, die bei weitem leistungsfähiger sind!Bei Ihrer zweiten Frage gibt die
summary()
Funktion nur die SD für jede Komponente zurück (pc.cr$sdev
in Ihrem Fall), und der Rest der Tabelle scheint anschließend berechnet zu werden (über die Methodeprint
oder habeshow
ich dies nicht im Detail untersucht).Was
princomp()
selbst tut, kann mit angesehen werdengetAnywhere("princomp.default")
.quelle