<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Questo articolo appare in Cavo JMPer, Numero 30, estate 2015 .
di John Sall john.sall , Co-fondatore e vicepresidente esecutivo, SAS
Con i metodi multivariati, devi fare le cose diversamente quando hai dati ampi (molte migliaia di colonne).
Il collo di bottiglia
Il tallone d'Achille per gli approcci tradizionali per i dati ampi è che iniziano con una matrice di covarianza o di correlazione, che cresce con il quadrato del numero di colonne. La ricerca sulla genomica, ad esempio, tende ad avere ampi dati:
- In uno studio di genomica ci sono 10.787 colonne di espressione genica, sebbene ci siano solo 230 righe. Quella matrice di covarianza ha più di 58 milioni di elementi e occupa 465 MB di memoria.
- Un altro studio con cui lavoriamo ha 49.041 geni su 249 individui, il che si traduce in una matrice di covarianza che utilizza 9,6 GB di memoria.
- Ancora un altro studio ha 1.824.184 colonne genetiche, producendo una matrice di covarianza di 13,3 TB. I computer non hanno molta memoria - in effetti, non hanno molto spazio su disco.
Anche se hai la memoria per questi ampi problemi, ci vorrebbe molto tempo per calcolare la matrice di covarianza, nell'ordine di n * p 2 , dove n è il numero di righe e p è il numero di colonne. Inoltre, diventa ancora peggiore quando si deve invertire la matrice di covarianza, che costerebbe nell'ordine di p 3 . Inoltre, la matrice di covarianza è molto singolare, poiché ci sono molte meno righe rispetto alle colonne nei dati.
Quindi penseresti che i metodi multivariati siano poco pratici o impossibili per queste situazioni. Fortunatamente, c'è un altro modo, uno che rende ampi problemi non solo pratici, ma ragionevolmente veloci, pur fornendo le stesse risposte che otterresti con un'enorme matrice di covarianza.
L'SVD
Il numero di dimensioni efficaci nello spazio altamente multivariato è nell'ordine del numero di righe, poiché è molto più piccolo del numero di colonne. Tutta la variazione in quella matrice ampia può essere rappresentata dalle componenti principali, quelle associate alla varianza positiva, cioè gli autovalori diversi da zero. C'è un altro modo per ottenere i componenti principali usando la decomposizione del valore singolare dei dati (standardizzati). Ora che ci si trova nello spazio componente principale, la dimensione di questi componenti principali è piccola; infatti, tutti i calcoli semplificano perché la matrice di covarianza delle componenti principali è diagonale, che è banale da invertire.
Supponiamo che X sia la matrice n di p di dati standardizzati, con p molto maggiore di n, quindi la matrice di covarianza è il calcolo della matrice p per p X'X / n.
L'SVD esprime qualsiasi X come una trasformazione che è una rotazione, un ridimensionamento e quindi un'altra rotazione:
X = U diag (M) V '
Dove U è e n di m matrice di colonne ortogonali, M è un vettore di m singoli valori positivi, e V è ap di m matrice di colonne ortogonali. Si scopre che se aveste preso la scomposizione dell'autovalore della matrice di covarianza, che gli autovalori di esso sarebbero M 2 e gli autovettori sarebbero V, quindi dato che servono solo M e V per i componenti principali, allora si può fare SVD dei dati, invece degli autovalori della matrice di covarianza, e se p è in migliaia e n è nelle centinaia questo è molto più veloce I componenti principali sono solo X * V.
Ad esempio, in un problema con 10.787 colonne e 230 righe, i componenti principali attraverso la matrice di correlazione impiegano 81 minuti, ma con SVD richiede solo 7,5 secondi, oltre 600 volte più veloce. Ho provato su un set di dati di genomica con 1.824.184 colonne su 249 righe. Sono stato in grado di eseguire i componenti principali di tali dati utilizzando JMP 12 sul mio Mac Pro a 6 core in soli 94 minuti. Farlo in un altro modo sarebbe stato chiaramente impossibile.
Analisi discriminante
Con l'analisi discriminante, il compito principale è calcolare la distanza da ciascun punto alla media (multivariata) di ciascun gruppo. Tuttavia, quella distanza non è la semplice distanza euclidea, ma una forma multivariata della distanza - la distanza di Mahalanobis, che usa la matrice di covarianza inversa.
Ma pensate ai dati standardizzati - i componenti principali sono gli stessi dati, ma ruotati attraverso vari angoli. La differenza è che i dati originali possono avere 10.000 colonne, ma i componenti principali hanno solo poche centinaia, nel caso dei dati ampi. Quindi se vogliamo misurare le distanze tra i punti o tra un punto e una media multivariata ( baricentro ), quindi possiamo farlo in molte meno dimensioni. Non solo, ma le coordinate principali non sono correlate, il che significa che la matrice nel mezzo dei calcoli della distanza di Mahalanobis è diagonale, quindi la distanza è solo una somma di quadrati di distanze coordinate individuali.
Prendiamo le componenti principali dei dati centrati sulla media per gruppo. Quindi aggiungiamo il significato a questi nuovi dati di dimensioni ridotte. La media trasformata è solo la trasformazione delle componenti principali dei mezzi del gruppo originale.
Esempio
Esiste una serie di dati sull'espressione del genoma del carcinoma mammario che è un punto di riferimento utilizzato dal Consorzio Microarray Quality con 230 righe e 10.787 espressioni geniche. Un'analisi discriminante che utilizza il metodo lineare largo impiega solo 5,6 secondi (su Mac Pro) e produce un tasso di errata classificazione di convalida incrociata di solo il 13,7% nella categoria più difficile da classificare, ER_status (Figura 1). Questo tasso di errata classificazione è vicino al migliore raggiunto per questo problema, dato che gli altri metodi sono costosi.

Figura 1 Ampia analisi discriminante nella piattaforma Principal Components
Finora abbiamo implementato opzioni altamente multivariate basate su SVD in Discriminant, Principal Components, Hierarchical Cluster e una forma di imputazione del valore mancante. Stiamo sperimentando l'utilizzo ulteriore e anche nell'esplorazione di altri metodi simili utili in analisi altamente multivariate. Gran parte del clamore intorno ai "Big Data" riguarda un numero elevato di righe, ma anche un numero elevato di colonne è sempre più importante.