首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征值与PVE (解释百分比方差)

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

Stack Overflow用户
提问于 2013-02-18 04:54:32
回答 1查看 7.6K关注 0票数 0

使用prcomp()函数,我估计了解释的百分比方差

代码语言:javascript
复制
prcomp(env, scale=TRUE)

summary(pca)的第二列显示所有PC的以下值:

代码语言:javascript
复制
                        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的特征值是什么:

代码语言:javascript
复制
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本身的替代表示。那么我到底做错了什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 05:08:54

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

代码语言:javascript
复制
pca$sdev^2 -> eigen values -> variance in each direction
pca$sdev^2/sum(pca$sdev^2) = proportion of variance vector

所以它们是相关的。

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

代码语言:javascript
复制
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
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14925942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档