給定一個數據矩陣M,pc = prcomp(M)提供pc $ rotation(特徵向量矩陣)和pc $ x,即pca空間中原始變量的分數。但是,我獲得的分數與「手工計算」的內部產品不匹配。R中的意外PCA得分
例如,如果我有矩陣
m1=matrix(c(1,2,3,4,4,8,7,9,5,3,2,11),byrow=TRUE,nrow=3)
pctest=prcomp(m1)
返回以下爲pctest $ X,pctest $旋轉,分別爲:
Rotation:
PC1 PC2 PC3
[1,] -0.3751603 0.3133237 -0.5240612
[2,] -0.5810952 -0.4802203 0.5681371
[3,] -0.3471051 -0.5836868 -0.6211215
[4,] -0.6333255 0.5749142 0.1295694
pctest$x
PC1 PC2 PC3
[1,] 5.11167 -1.326545 -1.110223e-16
[2,] -4.05543 -2.728072 -1.942890e-15
[3,] -1.05624 4.054616 2.831069e-15
現在,變量1上PCA軸比分2(例如)應該是pctest $ rotation [,2]上的m1 [1,]的內積,即
m1[1,]%*%pctest$rotation[,2]
[,1]
[1,] -0.09852071
而不是pctest $ x [1,2],這是-1.3265
這只是一個縮放問題,或者是$ x將原始變量的投影以外的東西返回到PCA軸上?
1爲具有可重複碼的清楚和簡明的問題。 – 2013-03-14 22:40:13