如何在R中的PCA空间上绘制新矢量

时间:2016-09-19 11:45:40

标签: r machine-learning data-mining pca

我不熟悉R中的主成分分析,我的问题非常幼稚。我使用函数' prcomp'完成了矩阵(A)的PCA。在R.现在我想将一个矢量绘制到PC的PCA空间和A的PC2上。我如何绘制这个矢量的绘图?

1 个答案:

答案 0 :(得分:1)

使用biplot(红色箭头是原始空间中的尺寸):

a <- princomp(iris[1:4])
biplot(a, cex=0.5)

enter image description here

您可以自行投射到PCA空间,如下所示:

library(ggplot2)
data <- iris[1:4]
labels <- iris[,5]
res <- princomp(data)
res.proj <- as.matrix(data) %*% res$loadings[,1:2]
ggplot(as.data.frame(res.proj), aes(Comp.1, Comp.2, col=labels)) + geom_point()

使用prcomp的相同图(数值更稳定):

data <- iris[1:4]
labels <- iris[,5]
res <- prcomp(data)
res.proj <- as.matrix(data) %*% res$rotation[,1:2]
ggplot(as.data.frame(res.proj), aes(PC1, PC2, col=labels)) + geom_point()

enter image description here

Fancier ggbiplot:

library(ggbiplot)
g <- ggbiplot(res, obs.scale = 1, var.scale = 1, 
              groups = labels, ellipse = TRUE, 
              circle = TRUE)
g <- g + scale_color_discrete(name = '')
g <- g + theme(legend.direction = 'horizontal', 
               legend.position = 'top')
print(g)

enter image description here