Supponiamo che mat_pages [] contenga pagine nelle colonne (che si desidera raggruppare) e singoli individui nelle righe. È possibile raggruppare le pagine in base ai singoli dati in Rby usando il comando seguente:
pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)
La matrice dei carichi è la matrice degli autovettori della decomposizione SVD dei dati. Forniscono il peso relativo di ciascuna PAGINA nel calcolo dei punteggi. I caricamenti con valori assoluti più grandi hanno maggiore influenza nel determinare il punteggio del componente principale corrispondente.
Tuttavia, dovrei anche sottolineare la breve venuta dell'utilizzo di PCA per raggruppare le pagine. La ragione di ciò è che i caricamenti danno pesi maggiori alle PAGINE con una variazione maggiore, indipendentemente dal fatto che questa variazione sia effettivamente dovuta al contenuto della PAGINA o ad altri motivi (può essere una variazione tecnica o individuale). I caricamenti non riflettono necessariamente le vere differenze tra i gruppi, che (forse) il tuo interesse principale. MA, questo raggruppamento riflette veramente le differenze nel gruppo supponendo che tutte le pagine abbiano la stessa varianza (non so se questo è un presupposto valido).
Se si dispone di potenti funzionalità informatiche (che possono essere possibili date le dimensioni dei dati), l'utilizzo di modelli gerarchici potrebbe essere una buona idea. In R, può essere fatto usando il pacchetto lme4.
Cosa fare dopo aver ottenuto i punteggi?
Questo è un suggerimento approssimativo e l'analisi dipende molto dall'aspetto dei dati. Inoltre, immagino che questo processo sarebbe altamente impossibile per raggruppare i dati di grandezza che hai.
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()
Spero che questo possa darti un quadro di come sono raggruppati i dati.
Attenzione: questo non è ciò che consiglierei.
La mia raccomandazione:
Problemi come questi sorgono frequentemente nella genomica. Nel tuo caso le pagine corrispondono ai geni e gli individui corrispondono ai pazienti (in pratica gli individui hanno lo stesso significato che nella genomica)
Si desidera raggruppare le pagine in base ai dati.
Puoi usare molti pacchetti di clustering in R e sono stati indicati in altre risposte. Un problema fondamentale con i pacchetti è come hclust è come determinare il numero di cluster. Alcuni dei miei preferiti sono:
- pvclust (Fornisce cluster e fornisce anche un valore p per ciascun cluster. Utilizzando il valore p è possibile determinare i cluster statisticamente significativi. Problema : richiede molta potenza computazionale e non sono sicuro che funzionerà con i dati dei dimensione)
- hopach (ti dà il numero stimato di cluster e i cluster)
- ci sono altri pacchetti disponibili in Bioconductor, si prega di controllare nella vista delle attività.
Puoi anche usare gli algoritmi di clustering come k-mean ecc. Sono sicuro di aver visto un thread in questo forum sul clustering. Le risposte sono state molto dettagliate. Tal Galili mi ha chiesto se ricordo bene.