R - 'princomp'只能用于比变量更多的单位

时间:2011-04-16 13:54:04

标签: r cluster-analysis k-means pca r-commander

我正在使用R软件(R commander)来聚类我的数据。我有一个较小的数据子集,包含200行和大约800列。尝试kmeans集群并在图表上绘图时,我收到以下错误。 “'princomp'只能用于比变量更多的单位”

然后我创建了一个10行10列的测试文档,但是当我添加一个额外的列时,我再次得到了错误。 为什么是这样?我需要能够绘制我的集群。当我在执行kmeans后查看我的数据集时,我可以看到额外的结果列,它显示了它们属于哪些群集。

有什么我做错了,我可以摆脱这个错误并绘制我的大样本??? 请帮忙,现在已经破坏了我的头一个星期。 谢谢你们。

3 个答案:

答案 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