我正在使用R软件(R commander)来聚类我的数据。我有一个较小的数据子集,包含200行和大约800列。尝试kmeans集群并在图表上绘图时,我收到以下错误。 “'princomp'只能用于比变量更多的单位”
然后我创建了一个10行10列的测试文档,但是当我添加一个额外的列时,我再次得到了错误。 为什么是这样?我需要能够绘制我的集群。当我在执行kmeans后查看我的数据集时,我可以看到额外的结果列,它显示了它们属于哪些群集。
有什么我做错了,我可以摆脱这个错误并绘制我的大样本??? 请帮忙,现在已经破坏了我的头一个星期。 谢谢你们。
答案 0 :(得分:23)
问题是你有比样本点更多的变量,而且正在进行的主成分分析失败。
在princomp
的帮助文件中,它解释了(阅读?princomp
):
‘princomp’ only handles so-called R-mode PCA, that is feature
extraction of variables. If a data matrix is supplied (possibly
via a formula) it is required that there are at least as many
units as variables. For Q-mode PCA use ‘prcomp’.
答案 1 :(得分:4)
如果样本数少于数据点,则主成分分析未指定。 每个数据点都是它自己的主要组件。要使PCA正常工作,实例数应远大于维数。
简单地说,你可以看看这样的问题:
如果您拥有n
维度,则可以使用全部为n+1
或最多只有0
的向量对最多1
个实例进行编码。这是最佳的,所以PCA会做到这一点!但它没有多大帮助。
答案 2 :(得分:1)
您可以使用prcomp而不是princomp