2017-08-03 66 views
0

我是一个有R但又不熟悉PCA的新手。我的问题是,从一项调查中我得到一个包含九个变量观察值的清单,第一个是受访者的性别,接下来的五个(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之间。我想用两个轴作散点图。第一个是“企业变量”,第二个是“未来期望变量”,然后在散点图中定义男性和女性的位置。我的数据是这样的:用PCA制作散点图以及如何读取结果

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

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

就男性和女性是否不同而言,您可能需要绘制的不仅仅是每个群体的手段:即使男性和女性在创业/期望方面确实相同,您也绝不会期望手段从两个样本在散点图上坐在彼此的顶部。为了解决这个问题,你可以绘制实际的观察结果而不是他们的手段(即每行一个点,按性别划分),看看他们是否在剧情空间中混合与分离。或者,根据主要组成部分回归性别。

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

相关问题