我正在尝试对包含调查结果的数据集执行 PCA。该调查是针对公司进行的(公司在行中),他们被问到多个问题(问题和答案在列中)。大多数问题都基于“请从一组 X 的答案 X = {1,2,3,4...} 中选择一个答案。有一些布尔值,但大部分答案有更多的变化。
我想做的是缩小维度并寻找公司之间的相似之处。为此,我想执行 PCA。
我将使用的数据集可以从以下网址下载:https ://www.kaggle.com/jakubdbrowski/datapca
datapca <- read.csv2("datapca.csv")
datapca <- datapca[,-c(1)]
我需要删除没有任何信息的第一列。数据集是事先清理和准备好的。现在我可以执行 PCA。
xxx.pca <- prcomp(datapca, center = TRUE, scale.= TRUE)
现在我想寻找可以从我的数据中获得的集群数量。
fviz_nbclust(xxx.pca$x, FUNcluster=kmeans, k.max = 8)
看起来很难在这个特定的数据集中找到集群。
hopkins(datapca, n=nrow(xxx.pca$x)-1)
但是,我想继续分析以完成整个分析过程。一旦我收到更新的数据,也许结果会更好。
所以我将按照建议创建两个集群。
km1<-eclust(xxx.pca$x, "kmeans", hc_metric="eucliden",k=2)
在这一点上,我的问题来了。现在,我想尝试查看集群并确定哪些负载负责集群并表征两个集群?
我还想问一下,是否可以确定最重要的负载,减少它们的数量(现在有 150 个,这使得图表过于复杂)并以更清晰的方式绘制它们?下面的两张图都很混乱。
fviz_pca_var(xxx.pca, col.var = "black")
biplot(xxx.pca, showLoadings = TRUE, lab = NULL)
非常感谢您!