2014-03-31 8 views
6

Vielen Dank im Voraus. Ich habe die Funktion "PCA" aus dem Paket "FactoMineR" verwendet, um die Bewertungen der Hauptkomponenten zu erhalten. Ich habe versucht, durch die package details und ähnliche Fragen in diesem Forum lesen, aber kann nicht herausfinden, den Code zum Drehen der extrahierten Komponenten (entweder orthogonal oder schräg).Rotation in 'FactoMineR' Paket

Ich weiß, dass die Funktion 'princomp' und die Funktion 'principle' im Paket 'psych' rotierende Fähigkeiten haben, aber ich mag die Fähigkeit in 'PCA', die Variablen auf Einheitsvarianz zu skalieren. Jede Hilfe wäre willkommen. Vielen Dank.

+0

Ah, PCA und Rotation wieder. Vielleicht wird dir dieser Beitrag etwas helfen. http://stats.stackexchange.com/questions/612/is-psychprincipal-function-still-pca-when-using-rotation –

+0

Danke für den Link. Ich weiß, dass die einzelnen besprochenen Pakete eine Rotation haben, aber sie haben nicht die Fähigkeit, Variablen nativ zu skalieren oder zusätzliche Daten wie "PCA" hinzuzufügen. Ich habe eine andere Lektüre gemacht und festgestellt, dass 'prcomp' sowohl rotieren als auch skalieren kann, aber keine zusätzlichen Informationen enthalten kann. Gibt es eine einzige Anlaufstelle für all diese Fähigkeiten in einer Funktion? Vielen Dank. – gtnbz2nite

+0

Irgendwelche Updates dazu? Ich möchte eine schräge Rotation auf Ergebnisse von gemischten Daten (numerisch + kategorisch) machen. Sowohl FAMD als auch PCAmix aus dem PCAmixdata-Paket scheinen gemischte Daten zu unterstützen, konnten jedoch keine gute Möglichkeit finden, eine schräge Rotation durchzuführen. – Thusitha

Antwort

1

IIUC:

library(FactoMineR) 
data(iris) 
Iris <- iris[,1:4] 
res <- PCA(Iris, graph=F) 
#rotation 
t(apply(res$var$coord, 1, function(x) {x/sqrt(res$eig[,1])})) 
        Dim.1  Dim.2  Dim.3  Dim.4 
Sepal.Length 0.5210659 0.37741762 -0.7195664 -0.2612863 
Sepal.Width -0.2693474 0.92329566 0.2443818 0.1235096 
Petal.Length 0.5804131 0.02449161 0.1421264 0.8014492 
Petal.Width 0.5648565 0.06694199 0.6342727 -0.5235971 

#check 
prcomp(Iris, scale=T) 
Rotation: 
        PC1   PC2  PC3  PC4 
Sepal.Length 0.5210659 -0.37741762 0.7195664 0.2612863 
Sepal.Width -0.2693474 -0.92329566 -0.2443818 -0.1235096 
Petal.Length 0.5804131 -0.02449161 -0.1421264 -0.8014492 
Petal.Width 0.5648565 -0.06694199 -0.6342727 0.5235971 

Eine alternative Codezeile, wenn Sie es wünschen Beladungen von PCA Objekt zu erhalten:

sweep(res$var$coord, 2, sqrt(res$eig[,1]),'/') 
+0

Wie kann ich die Varimax-Rotation anwenden? – maxie