有人知道如何在 R 中重新创建此数据吗?以下是我进行因子分析后想要的群集输出。
Cluster centers Value 1 Value 2 Value 3 Value 4
FACTOR1 -0.049 -1.481 0.505 0.651
FACTOR2 0.691 -0.161 -0.633 -0.547
FACTOR3 0.251 -0.265 0.611 -1.522
-------------------------------------------------------
No. of case 257 93 174 96
对于我的数据,我有620行观察值和20列问题,即620x20。我首先在R中进行了因子分析,并将620行观察值分解为3个因子,生成了如下所示的20x3数据帧输出。
Matrix Factor 1 Factor 2 Factor 3
Q1 0.646 -0.095 0.041
Q2 0.630 0.047 0.124
Q3 ... ... ...
Q4 ... ... ...
...
Q20 0.419 0.181 0.337
接下来,我想对620个数据执行聚类分析,其中聚类将不同因子得分视为顶部的输出。我不确定如何在R中做到这一点。
答案 0 :(得分:1)
这是一个例子。我生成了一个30x3的矩阵,使用了kmeans
集群,指定需要4个集群。注意,您可以使用任何其他聚类算法。然后,我使用aggregate
计算了聚类中心(按聚类平均)。通过为每个样本找出样本最接近的中心(例如,使用欧几里得距离),这些中心现在可以用于在新数据集中应用分类。
set.seed(1); d <- matrix(rnorm(90), ncol=3)
kd <- kmeans(d, centers=4)
cluster <- kd$cluster
dd <- as.data.frame(cbind(d, cluster))
t(aggregate(dd, by=list(dd$cluster), FUN=mean))[c(1,5)*-1,]
[,1] [,2] [,3] [,4]
V1 0.8321043 -0.01501747 -0.09144934 -1.8916013
V2 0.0121109 -0.51743551 0.85714652 -0.5389448
V3 -0.4478400 0.17132066 0.99685057 -0.9206161