特征值与PVE(解释的方差百分比)

时间:2013-02-17 20:54:32

标签: r pca eigenvalue

使用prcomp()功能,我估算了差异百分比

prcomp(env, scale=TRUE)

summary(pca)的第二列显示了所有PC的这些值:

                        PC1    PC2     PC3     PC4     PC5     PC6     PC7
Standard deviation     7.3712 5.8731 2.04668 1.42385 1.13276 0.79209 0.74043
Proportion of Variance 0.5488 0.3484 0.04231 0.02048 0.01296 0.00634 0.00554
Cumulative Proportion  0.5488 0.8972 0.93956 0.96004 0.97300 0.97933 0.98487

现在我想找到每台PC的特征值:

pca$sdev^2
[1] 5.433409e+01 3.449329e+01 4.188887e+00 2.027337e+00 1.283144e+00
[6] 6.274083e-01 5.482343e-01

但这些值似乎只是PVE本身的替代表示。那么我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

我不确定这是否是你的困惑。

pca$sdev^2 -> eigen values -> variance in each direction
pca$sdev^2/sum(pca$sdev^2) = proportion of variance vector

所以他们是相关的。

编辑:只是一个例子(为了说明这种关系),如果这有帮助。

set.seed(45) # for reproducibility
# set a matrix with each column sampled from a normal distribution
# with same mean but different variances
m <- matrix(c(rnorm(200,2, 10), rnorm(200,2,10), 
               rnorm(200,2,10), rnorm(200,2,10)), ncol=4)
pca <- prcomp(m)

> summary(pca) # note that the variances here equal that of input
# all columns are independent of each other, so each should explain
# equal amount of variance (which is the case here). all are ~ 25%
                           PC1     PC2     PC3    PC4
Standard deviation     10.9431 10.6003 10.1622 9.3200
Proportion of Variance  0.2836  0.2661  0.2446 0.2057
Cumulative Proportion   0.2836  0.5497  0.7943 1.0000

> pca$sdev^2
# [1] 119.75228 112.36574 103.27063  86.86322

> pca$sdev^2/sum(pca$sdev^2)
# [1] 0.2836039 0.2661107 0.2445712 0.2057142