2013-11-20 339 views
0

我有這樣的相關性矩陣[R特徵值/特徵向量

A 
[,1] 1.00000 0.00975 0.97245 0.43887 0.02241 
[,2] 0.00975 1.00000 0.15428 0.69141 0.86307 
[,3] 0.97245 0.15428 1.00000 0.51472 0.12193 
[,4] 0.43887 0.69141 0.51472 1.00000 0.77765 
[,5] 0.02241 0.86307 0.12193 0.77765 1.00000 

,我需要得到的特徵值,特徵向量和負載量R.

當我使用princomp(A,cor=TRUE)功能我得到的方差(特徵值) 但是當我使用eigen(A)函數時,我得到了特徵值和特徵向量,但在這種情況下的特徵值與當我使用Princomp函數時不同。

哪個函數是正確的一個獲得特徵值?

回答

1

eigen(M)給你M.

princomp()的正確特徵值和載體將被切換數據矩陣 - 你錯誤地餵養它的相關性矩陣! princomp(A,)將A視爲數據,然後提出相關矩陣及其特徵向量和值。因此,A的特徵值(假設A保持數據的假設)不僅不相關,而且它們與princomp()在最後提出的當然不同。

用於執行R A PCA在這裏看到的說明:http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/

+0

謝謝!我現在如何獲得裝載? (對不起,我不習慣在R工作) – user3013464

+0

p < - princomp(...); P $載荷; – Raffael

1

我相信你指的是一個PCA分析時,你說話的特徵值,特徵向量和負荷。 prcomp基本上從事以下(當cor=TRUE):

###Step1 
#correlation matrix 
Acs <- scale(A, center=TRUE, scale=TRUE) 
COR <- (t(Acs) %*% Acs)/(nrow(Acs)-1) 
COR ; cor(Acs) # equal 

###STEP 2 
# Decompose matrix using eigen() to derive PC loadings 
E <- eigen(COR) 
E$vectors # loadings 
E$values # eigen values 

###Step 3 
# Project data on loadings to derive new coordinates (principal components) 
B <- Acs %*% E$vectors