繁体   English   中英

R特征值/特征向量

[英]R eigenvalues/eigenvectors

我有这个相关矩阵

 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功能..

获得特征值的哪个函数是正确的?

eigen(M)给出正确的特征值和M的向量。

princomp()将被传递给数据矩阵 - 你错误地将它提供给相关矩阵!

princomp(A,)将A视为数据,然后提出相关矩阵及其特征向量和值。 因此A的特征值(在A保持所假设的数据的情况下)不仅无关紧要,它们当然不同于princomp()最终提出的那些。

有关在R中执行PCA的说明,请参见此处: http//www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/

当你谈到特征值,特征向量和载荷时,我相信你指的是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM