在R中使用princomp()运行主成分分析并对结果运行summary()后,我得到了一个组件列表,它们的方差比例,以及它们的累积比例。有没有一种方法可以查看这些组件中实际包含了哪些变量?
发布于 2015-04-14 02:45:12
如果您使用princomp(),那么它有一个loadings()方法来提取旋转矩阵,或者您可以直接访问$loadings插槽。
如果改用prcomp(),那么旋转矩阵也会显示在打印输出中(或者可以通过$rotation显式访问)。
例如,在princomp()中使用iris数据中的四个数字列
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()
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)对pca1和pca2产生相同的结果。
https://stackoverflow.com/questions/29611730
复制相似问题