10

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

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

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

4

3 回答 3

24

问题是你有比样本点更多的变量,并且正在进行的主成分分析失败了。

在它的帮助文件中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’.
于 2011-04-16T13:58:25.443 回答
4

如果您的样本少于数据点,则指定主成分分析。每个数据点都是它自己的主要组成部分。要使 PCA 工作,实例数应显着大于维度数。

简单地说,你可以看这样的问题:如果你有维度,你可以使用所有或最多有一个的向量对实例进行n编码。这是最优的,所以 PCA 会这样做!但这不是很有帮助。n+101

于 2012-07-02T14:34:00.507 回答
1

您可以使用 prcomp 而不是 princomp

于 2017-05-17T22:21:10.023 回答