我是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)

最后,制作散点图:
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()这给了我这样的结论:

我不确定读读结果如何..。我是否应该接受女性在未来期望维度上比男性获得更高的价值。男性在创业维度上获得了更高的价值?
提前感谢!!
发布于 2017-08-16 14:14:20
您对轴的解释看起来是正确的,即PC1是从左到右表示减少的“企业家精神”的梯度,而PC2是从下到上代表未来期望增加的梯度(假设原始数据中的"5“意味着最高的企业家精神/期望)。
就男性和女性是否不同而言,你可能需要绘制更多的图表,而不仅仅是每个群体的均值:即使男性和女性在创业/期望方面确实相同,你也永远不会期望两个样本的均值在散点图上彼此重叠。为了解决这个问题,您可以绘制实际的观察值,而不是它们的平均值(即,每行一个点,按性别着色),并查看它们在绘图空间中是否混合或分开。或者,根据主成分对性别进行回归。
另一个问题是对序数数据使用主成分分析是否合适-请参阅here进行讨论。
https://stackoverflow.com/questions/45483731
复制相似问题