Supposons que mat_pages [] contient des pages dans les colonnes (que vous souhaitez regrouper) et des individus dans les lignes. Vous pouvez regrouper des pages en fonction de données individuelles dans Rby à l'aide de la commande suivante:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
La matrice des chargements est la matrice des vecteurs propres de la décomposition SVD des données. Ils donnent le poids relatif de chaque PAGE dans le calcul des scores. Les charges avec des valeurs absolues plus grandes ont plus d'influence dans la détermination du score de la composante principale correspondante.
Cependant, je dois également souligner la courte venue de l'utilisation de PCA pour regrouper les pages. La raison en est que les chargements donnent des poids plus importants aux PAGES avec une variation plus élevée, indépendamment du fait que cette variation soit en fait à cause du contenu de la PAGE ou d'une autre raison (peut être une variation technique ou individuelle). Les chargements ne reflètent pas nécessairement les vraies différences entre les groupes, ce qui (peut-être) votre principal intérêt. MAIS, ce regroupement reflète vraiment les différences dans le groupe sous l'hypothèse que toutes les pages ont la même variance (je ne sais pas si c'est une hypothèse valide).
Si vous disposez d'une puissante infrastructure informatique (ce qui peut être possible compte tenu de la taille de vos données), l'utilisation de modèles hiérarchiques peut être une bonne idée. Dans R, cela peut être fait en utilisant le package lme4.
Que faire après avoir obtenu les scores?
Il s'agit d'une suggestion grossière et l'analyse dépend grandement de l'apparence des données. En outre, je suppose que ce processus serait hautement irréalisable pour regrouper les données de magnitude dont vous disposez.
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()
J'espère que cela peut vous donner une image de la façon dont les données sont regroupées.
Attention: ce n'est pas ce que je recommanderais.
Ma recommandation:
Des problèmes comme ceux-ci surviennent fréquemment en génomique. Dans votre cas, les pages correspondent aux gènes et les individus aux patients (fondamentalement, les individus ont la même signification qu'en génomique)
Vous souhaitez regrouper les pages en fonction des données.
Vous pouvez utiliser un grand nombre de packages de clustering dans R et ont été indiqués dans d'autres réponses. Un problème fondamental avec les packages est comme hclust est de savoir comment déterminer le nombre de clusters. Certains de mes préférés sont:
- pvclust (vous donne des clusters et donne également une valeur p pour chaque cluster. En utilisant la valeur p, vous pouvez déterminer les clusters statistiquement significatifs. Problème : nécessite beaucoup de puissance de calcul et je ne suis pas sûr si cela fonctionnera avec les données de votre Taille)
- hopach (vous donne le nombre estimé de clusters et les clusters)
- il existe d'autres packages disponibles dans Bioconductor, veuillez les consulter dans la vue des tâches.
Vous pouvez également utiliser des algos de clustering comme k-means etc. Je suis sûr d'avoir vu un fil dans ce forum sur le clustering. Les réponses étaient très détaillées. Tal Galili m'a demandé si je me souviens bien.