0

有人知道如何在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 中做到这一点。

4

1 回答 1

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
于 2018-08-21T08:03:08.460 回答