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 が機能するには、インスタンスの数が次元の数よりも大幅に多くなる必要があります。

簡単に言えば、次のような問題を見ることができます: 次元がある場合、すべてであるベクトルまたは多くても 1 つのベクトルを使用nしてインスタンスまでエンコードできます。そして、これは最適なので、PCA はこれを行います! しかし、それはあまり役に立ちません。n+101

于 2012-07-02T14:34:00.507 に答える