如何将PCA中的小组观察与R中的因子分析平均化?

时间:2018-09-18 10:25:37

标签: r graph grouping pca factor-analysis

我正在尝试对PCA进行因子分析,以显示观察结果组沿结果维度的不同位置。

x = data.frame(v1=c(10, 20, 5, 26, 2, 30),
           v2=c(23, 31, 34, 63, 12, 7),
           v3=c(2, 6, 1, 0, 3, 5),
           group=c("A", "B", "A", "B", "A", "B"))
result <- PCA(x[1:3])

这将产生两个图形: Observations in PCA

Variable from factor analysis

我想要做的是,不是让观察值1到6分别位于第一张图中,而是让A组和B组组成,它们分别是其组分观察值的平均位置(1、3, A代表5,B代表2,4,6。

非常感谢您提出解决方案!

1 个答案:

答案 0 :(得分:1)

您可以提取值并按组进行均值:

x = data.frame(v1=c(10, 20, 5, 26, 2, 30),
               v2=c(23, 31, 34, 63, 12, 7),
               v3=c(2, 6, 1, 0, 3, 5),
               group=c("A", "B", "A", "B", "A", "B"))
result <- PCA(x[1:3])
values<-as.data.frame(result$ind$coord)
values$group<-x$group
final<-aggregate(. ~ group, values, mean)

plot(final$Dim.1,final$Dim.2,xlim=c(-2.5,2.5),ylim=c(-2.5,2.5))
abline(h = 0, v = 0, col = "gray60")
text(final$Dim.1,final$Dim.2-0.09,labels = final$group)