mat_pages []には列(クラスタリングする)のページと行の個人が含まれていると仮定しましょう。次のコマンドを使用して、Rbyの個々のデータに基づいてページをクラスター化できます。
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
負荷行列は、データのSVD分解の固有ベクトルの行列です。スコアの計算で各ページの相対的な重みを示します。絶対値が大きい負荷ほど、対応する主成分のスコアを決定する際に影響が大きくなります。
しかし、私はまた、指摘すべきくるショートをクラスタページにPCAを使用します。この理由は、この変動が実際にPAGEコンテンツまたはその他の理由(技術的または個別の変動である可能性がある)であるかどうかに関係なく、負荷が大きい変動でPAGESに大きな重みを与えるためです。負荷は、必ずしもグループ間の真の違いを反映しているわけではありません。しかし、このクラスタリングは、すべてのページに同じ分散があるという仮定の下でのグループの違いを本当に反映しています(これが有効な仮定かどうかはわかりません)。
強力なコンピューティング機能がある場合(データサイズを考慮すると可能かもしれません)-階層モデルを使用することをお勧めします。Rでは、lme4パッケージを使用して実行できます。
スコアを取得したらどうしますか?
これは大まかな提案であり、分析はデータがどのように見えるかに大きく依存します。また、あなたが持っている大きさのデータをグループ化するには、このプロセスは非常に実行不可能だと思います。
pc.col <- paste("page", 1:27000, sep=".")
pdf("principle-components.pdf")
plot(pc$x[,1:2]) ## Just look at the 1st two loadings (as you can see the groupings in a plane)
dev.off()
うまくいけば、これによってデータがどのようにグループ化されているかを把握できます。
警告:これは私が推奨するものではありません。
私の推薦:
このような問題はゲノミクスで頻繁に発生します。あなたの場合、ページは遺伝子に対応し、個人は患者に対応します(基本的に個人はゲノミクスと同じ意味を持ちます)
データに基づいてページをクラスター化します。
Rでは多くのクラスタリングパッケージを使用でき、他の回答でも指摘されています。パッケージの基本的な問題は、hclustのようにクラスターの数を決定する方法です。私のお気に入りのいくつかは次のとおりです。
- pvclust(クラスターを提供し、各クラスターのp値も提供します。p値を使用すると、統計的に有意なクラスターを判別できます。問題:多くの計算能力が必要であり、サイズ)
- hopach(クラスターの推定数とクラスターを示します)
- Bioconductorには他にもパッケージがあります。タスクビューで確認してください。
また、k-meansなどのクラスタリングアルゴリズムを使用することもできます。このフォーラムでクラスタリングに関するスレッドを見たことは間違いありません。答えは非常に詳細でした。タル・ガリリから、私が正しく覚えているかどうか尋ねられました。