2014-03-31 80 views
6

在此先感謝。我已經使用'FactoMineR'包中的'PCA'函數來獲得主成分分數。我試過通過package details和這個論壇上的類似問題閱讀,但無法找出旋轉提取的組件(正交或傾斜)的代碼。'FactoMineR'包裝中的旋轉

我知道'princomp'函數和'principal'函數中的'principal'函數具有旋轉能力,但我真的很喜歡'PCA'中將變量縮放到單位方差的能力。任何幫助,將不勝感激。謝謝。

+0

啊,PCA和旋轉。也許這篇文章對你有一些幫助。 http://stats.stackexchange.com/questions/612/is-psychprincipal-function-still-pca-when-using-rotation –

+0

感謝您的鏈接。我知道所討論的特定軟件包有輪換,但他們不具備本地擴展變量或包含補充數據(如「PCA」)的能力。我做了一些其他的閱讀,發現'prcomp'可以旋轉和縮放,但不能包含補充信息。在一個功能中是否有一站式商店來滿足所有這些能力?謝謝。 – gtnbz2nite

+0

對此有何更新?我想對混合數據(數字+分類)的結果進行斜向旋轉。 PCAmixdata包中的FAMD和PCAmix似乎都支持混合數據,但無法找到斜向旋轉的好方法。 – Thusitha

回答

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 

替代代碼行,如果你想從PCA對象獲得載荷:再次

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

我應該如何應用varimax旋轉? – maxie