首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用Princomp()

在R中使用Princomp()
EN

Stack Overflow用户
提问于 2015-04-14 00:51:22
回答 1查看 1.7K关注 0票数 0

在R中使用princomp()运行主成分分析并对结果运行summary()后,我得到了一个组件列表,它们的方差比例,以及它们的累积比例。有没有一种方法可以查看这些组件中实际包含了哪些变量?

EN

回答 1

Stack Overflow用户

发布于 2015-04-14 02:45:12

如果您使用princomp(),那么它有一个loadings()方法来提取旋转矩阵,或者您可以直接访问$loadings插槽。

如果改用prcomp(),那么旋转矩阵也会显示在打印输出中(或者可以通过$rotation显式访问)。

例如,在princomp()中使用iris数据中的四个数字列

代码语言:javascript
复制
R> pca1 <- princomp(iris[, 1:4], cor = TRUE)
R> pca1
Call:
princomp(x = iris[, 1:4], cor = TRUE)

Standard deviations:
   Comp.1    Comp.2    Comp.3    Comp.4 
1.7083611 0.9560494 0.3830886 0.1439265 

 4  variables and  150 observations.
R> loadings(pca1)

Loadings:
             Comp.1 Comp.2 Comp.3 Comp.4
Sepal.Length  0.521  0.377  0.720  0.261
Sepal.Width  -0.269  0.923 -0.244 -0.124
Petal.Length  0.580        -0.142 -0.801
Petal.Width   0.565        -0.634  0.524

               Comp.1 Comp.2 Comp.3 Comp.4
SS loadings      1.00   1.00   1.00   1.00
Proportion Var   0.25   0.25   0.25   0.25
Cumulative Var   0.25   0.50   0.75   1.00

或等效地通过prcomp()

代码语言:javascript
复制
R> pca2 <- prcomp(iris[, 1:4], scale = TRUE)
R> pca2
Standard deviations:
[1] 1.7083611 0.9560494 0.3830886 0.1439265

Rotation:
                    PC1         PC2        PC3        PC4
Sepal.Length  0.5210659 -0.37741762  0.7195664  0.2612863
Sepal.Width  -0.2693474 -0.92329566 -0.2443818 -0.1235096
Petal.Length  0.5804131 -0.02449161 -0.1421264 -0.8014492
Petal.Width   0.5648565 -0.06694199 -0.6342727  0.5235971

最后的旋转矩阵也可以由pca2$rotation提取。除了在PC2上切换符号之外,它与pca1中的相同。

应用summary(pca1)plot(pca1)biplot(pca1)pca1pca2产生相同的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29611730

复制
相关文章

相似问题

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