我正在为我的数据做一些PCA分析。这是我第一次尝试这种分析。 我有一个千列和几千行的矩阵,我试图通过去掉相关变量(在我的情况下是列)来制作一个更小的矩阵。 到目前为止一切都很顺利,但我无法做下一步。 这是一个显示我的数据的例子。
a1 a2 a3 a4 .... a1000
item1 10 NA 5 3 ....
item2 0.01 0.5 NA 0.07 ....
item3 0.7 0.2 0.8 0.9 ....
.
.
.
我应用princomp并获得以下结果
Comp.1 Comp.2 Comp.3 Comp.4 ... Comp.1000
Standard deviation 24.1605431 7.31176669 5.96709553 3.56507807 ...
Proportion of Variance 0.7580933 0.06943108 0.04624186 0.01650621 ...
Cumulative Proportion 0.7580933 0.82752438 0.87376624 0.89027245 ...
.
.
.
现在我已经计算了所有内容......我的问题是:我应该用什么命令来选择不相关的组件并将它们粘贴到一个新的矩阵中(或者只是去除相关的组件)? 我如何指定我想要的相关范围?
谢谢,
答案 0 :(得分:4)
我相信你是在scores
之后。在?princomp
的帮助中,生成的对象是包含元素scores
的列表:
分数
如果得分= TRUE,则提供的数据得分 主要成分。只有在提供了x时,它们才是非空的 如果它是一个协方差列表,也提供了covmat。为了 公式方法,应用napredict()来处理 na.action忽略的值。
让我们设置一个示例(基于?princomp
中的示例):
summary(pc.cr <- princomp(USArrests, cor = TRUE))
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4
Standard deviation 1.5748783 0.9948694 0.5971291 0.41644938
Proportion of Variance 0.6200604 0.2474413 0.0891408 0.04335752
Cumulative Proportion 0.6200604 0.8675017 0.9566425 1.00000000
您可以使用str()
调查结果对象:
str(pc.cr)
List of 7
$ sdev : Named num [1:4] 1.575 0.995 0.597 0.416
..- attr(*, "names")= chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4"
$ loadings: loadings [1:4, 1:4] -0.536 -0.583 -0.278 -0.543 0.418 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:4] "Murder" "Assault" "UrbanPop" "Rape"
.. ..$ : chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4"
$ center : Named num [1:4] 7.79 170.76 65.54 21.23
..- attr(*, "names")= chr [1:4] "Murder" "Assault" "UrbanPop" "Rape"
$ scale : Named num [1:4] 4.31 82.5 14.33 9.27
..- attr(*, "names")= chr [1:4] "Murder" "Assault" "UrbanPop" "Rape"
$ n.obs : int 50
$ scores : num [1:50, 1:4] -0.986 -1.95 -1.763 0.141 -2.524 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:50] "Alabama" "Alaska" "Arizona" "Arkansas" ...
.. ..$ : chr [1:4] "Comp.1" "Comp.2" "Comp.3" "Comp.4"
$ call : language princomp(x = USArrests, cor = TRUE)
- attr(*, "class")= chr "princomp"
现在提取分数:
head(pc.cr$scores)
Comp.1 Comp.2 Comp.3 Comp.4
Alabama -0.9855659 1.1333924 -0.44426879 0.156267145
Alaska -1.9501378 1.0732133 2.04000333 -0.438583440
Arizona -1.7631635 -0.7459568 0.05478082 -0.834652924
Arkansas 0.1414203 1.1197968 0.11457369 -0.182810896
California -2.5239801 -1.5429340 0.59855680 -0.341996478
Colorado -1.5145629 -0.9875551 1.09500699 0.001464887