首页 > 解决方案 > 如何扩展 PCA 的结果?

问题描述

我必须使用不同葡萄酒的红外光谱在高维数据集上执行 PCA,然后将其绘制为 2D。我必须在情节上将红葡萄酒涂成红色,将白葡萄酒涂成绿松石色。

这是我想出的代码:

wine_pca <- prcomp(data[,-c(1:9)]) #eliminate columns 1-9 which contain other non-numeric information
pc <- predict(wine_pca)
pc1 <- predict(wine_pca)[,1]
pc2 <- predict(wine_pca)[,2]

#plot principal components pc1 & pc2 

ggplot(pc, aes(PC1, PC2)) + theme_bw() +
  geom_point(aes(shape = data$name, color = data$color), show.legend = TRUE, size = 3) +
  scale_shape_manual(values = c(3, 4, 8, 21, 22, 23, 24, 25)) +
  scale_color_manual(guide=FALSE, values=c("red", "turquoise")) +
  theme(legend.position = 'right', legend.title =  element_blank()) +
  xlab("First Principal Component") + 
  ylab("Second Principal Component") + 
  ggtitle("First Two Principal Components of a Selection of Wines")

我认为它看起来和运行都很好,但我从教授那里得到的反馈是:

“你为什么要重新调整 pca 的数据?这在这种情况下没有意义(否则请解释)并导致不同的结果”

由于我是个傻瓜,我不太了解反馈 - 我在哪里扩展数据?我的方法从根本上是错误的吗?如果你们中的一个神童可以帮助一个非常绝望的女孩,我将不胜感激。谢谢!

标签: rggplot2pcaprcomp

解决方案


由于您的数据不在问题中,您可以试试这个。缩放的基本思想是将所有变量转换为无维比例,以便可以比较它们。在开始时尝试此代码并与您之前的结果进行比较:

wine_pca <- prcomp(data[,-c(1:9)],scale = TRUE)

推荐阅读