在2014年栅格包文档中对一堆栅格(similar to this&)进行PCA后,我想查看我的特征值,特征向量和载荷...
返回scree图的printcomp的典型调用,变化的比例,累积比例 - summary(),print(),hist() - 似乎没有从我的RasterBrick输出中提取信息。这是示例代码:
#bring in rasterBrick
logo <- brick(system.file("external/rlogo.grd", package="raster"))
#select random samples & do PCA
sr <- sampleRandom(logo, 100)
pca <- princomp(sr)
# to visualize pcs as rasters
x <- predict(logo, pca, index=1:3)
plot(x)
##ANSWERED QUESTION
summary(pca) # importance of components
plot (pca) # scree plot
loadings (pca) #eigens
summary()
返回栅格图层上的摘要统计信息,而不是分析中的值; print()
显示栅格的最小值和最大值等。
感谢您的想法,特别是关于如何找到eignvalues&amp;与PCA相关的特征向量。
答案 0 :(得分:2)
特征向量/载荷存储在loadings
返回的模型对象的princomp
元素中。请参阅Value
帮助的princomp
部分(运行?princomp
)。这是关键部分:
<强>值强>
princomp 会返回一个包含类&#34; princomp&#34;的列表。包含以下内容 组件:
加载可变加载矩阵(即矩阵的矩阵) 列包含特征向量)。这是班级&#34;加载&#34;:看 装载其打印方法。
您可以使用loadings(pca)
访问加载项。下面的第一个矩阵包含每个主成分的特征向量。
loadings(pca)
Loadings:
Comp.1 Comp.2 Comp.3
red 0.588 -0.505 0.631
green 0.584 -0.274 -0.764
blue 0.559 0.818 0.134
Comp.1 Comp.2 Comp.3
SS loadings 1.000 1.000 1.000
Proportion Var 0.333 0.333 0.333
Cumulative Var 0.333 0.667 1.000
summary
函数为您提供每台PC解释的方差比例:
summary(pca)
Importance of components:
Comp.1 Comp.2 Comp.3
Standard deviation 136.9251939 16.85462507 1.4842831706
Proportion of Variance 0.9849601 0.01492417 0.0001157405
Cumulative Proportion 0.9849601 0.99988426 1.0000000000
您可以使用任何R
对象执行的另一件事是运行str
,它将告诉您对象包含的内容。例如,请参阅下面的princomp
模型对象包含的内容,并注意其中一个元素是loadings
。
str(pca)
List of 7
$ sdev : Named num [1:3] 136.5 17.63 1.43
..- attr(*, "names")= chr [1:3] "Comp.1" "Comp.2" "Comp.3"
$ loadings: loadings [1:3, 1:3] 0.587 0.583 0.562 -0.515 -0.267 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:3] "red" "green" "blue"
.. ..$ : chr [1:3] "Comp.1" "Comp.2" "Comp.3"
$ center : Named num [1:3] 162 165 173
..- attr(*, "names")= chr [1:3] "red" "green" "blue"
$ scale : Named num [1:3] 1 1 1
..- attr(*, "names")= chr [1:3] "red" "green" "blue"
$ n.obs : int 100
$ scores : num [1:100, 1:3] 85.4 110.4 151.3 149 22.8 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : NULL
.. ..$ : chr [1:3] "Comp.1" "Comp.2" "Comp.3"
$ call : language princomp(x = sr)
- attr(*, "class")= chr "princomp"
- attr(*, "class")= chr "princomp"