使用PCA制作散点图以及如何阅读结果

时间:2017-08-03 12:06:54

标签: scatter-plot pca

我是R的小新手,不熟悉PCA。我的问题是,从调查中我得到了一个列表,其中包含9个变量的观察结果,第一个是受访者的性别,接下来的五个(Q51_1_c,Q51_2_c,Q51_4_c,Q51_6_c,Q51_7_c)询问创业问题,其他人询问未来期望(Q56_1_c,Q56_2_c,Q56_3_c)。除性别外,所有这些变量都取1到5之间的值。我想制作一个带有两个轴的散点图。第一个是"企业家变量"第二轴带有"未来期望变量"然后在散点图中定义男性和女性的位置。我的数据如下所示:

 x <- "Q1b Q51_1_c Q51_2_c Q51_4_c Q51_6_c Q51_7_c Q56_1_c Q56_2_c Q56_3_c
3    Male       5       4       4       4       4       5       4       4
4  Female       4       3       4       4       3       3       4       3
5  Female       1       1       1       1       1       3       1       1
7  Female       2       1       1       1       1       5       1       4
8  Female       4       4       5       4       4       5       4       4
9  Female       3       3       4       4       3       3       4       4
13   Male       4       4       4       4       5       3       3       3
15 Female       3       4       4       4       4       1       1       5
16 Female       4       1       4       4       4       3       3       3
19 Female       3       2       3       3       3       3       3       3
20   Male       1       1       1       1       1       3       1       5
21 Female       3       1       1       2       1       3       3       3
26 Female       5       5       1       2       1       4       4       3
27 Female       2       1       1       1       1       1       1       1
29   Male       2       2       2       2       1       4       4       4
31 Female       3       1       1       1       1       5       2       3
34 Female       4       1       1       4       3       3       1       4
36 Female       5       1       1       4       4       5       1       2
37   Male       5       1       2       4       4       5       4       5
38 Female       3       1       1       1       1       1       1       1"

要运行PCA,这是我的代码:

x <- na.omit(x) #Jus to simplyfy

resul <- prcomp(x[,-1], scale = TRUE)

x$PC1 <- resul$x[,1] #Saving Scores PC1
x$PC2 <- resul$x[,2] #Saving Scores PC2

结果轴如下:

biplot(resul, scale = 0)

enter image description here

最后,制作散点图:

x %>%
  group_by(Q1b) %>%
  summarise(mean_PC1 = mean(PC1),
            mean_PC2 = mean(PC2)) %>%
    ggplot(aes(x=mean_PC1, y=mean_PC2, colour=Q1b)) +
    geom_point() +
    theme_bw()

这给了我这个: enter image description here

我不确定如何阅读结果......我是否应该接受女性在未来期望的维度上获得的价值高于男性。男性在创业方面获得更高的价值吗?

提前致谢!!

1 个答案:

答案 0 :(得分:1)

你对轴的解释看起来是正确的,即PC1是一个渐变,从左到右代表减少“创业”,而PC2是一个渐变,从下到上代表增加的未来预期(假设“5”在原始数据意味着最高的企业家精神/期望。)

就男性和女性是否不同而言,您可能需要为每个群体绘制更多的手段:即使男性和女性在创业/期望方面真正相同,您也绝不会期望从两个样本在散点图上正好坐在一起。为了解决这个问题,您可以绘制实际观察结果而不是它们的平均值(即每行一个点,按性别着色)并查看它们是否在绘图空间中混合而不是分开。或者,针对主要成分回归性别。

另一个问题是,在序数数据上使用PCA是否合适 - 请参阅here进行讨论。