<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Cet article apparaît dans JMPer Cable, Numéro 30, été 2015 .
par John Sall john.sall , Co-fondateur et vice-président exécutif, SAS
Avec les méthodes multivariées, vous devez faire les choses différemment lorsque vous avez des données volumineuses (plusieurs milliers de colonnes).
Le goulot d'étranglement
Le talon d'Achille des approches traditionnelles pour les données étendues est qu'elles commencent par une matrice de covariance ou de corrélation, qui croît avec le carré du nombre de colonnes. La recherche en génomique, par exemple, a tendance à avoir de nombreuses données:
- Dans une étude de génomique, il existe 10 787 colonnes d’expression génique, mais seulement 230 lignes. Cette matrice de covariance contient plus de 58 millions d'éléments et occupe 465 Mo de mémoire.
- Une autre étude sur laquelle nous travaillons a 49 041 gènes sur 249 personnes, ce qui donne une matrice de covariance qui utilise 9,6 Go de mémoire.
- Une autre étude comporte 1 824 184 colonnes de gènes, ce qui donne une matrice de covariance de 13,3 To. Les ordinateurs n'ont tout simplement pas beaucoup de mémoire - en fait, ils ne disposent pas de beaucoup d'espace disque.
Même si vous avez la mémoire pour ces problèmes étendus, le calcul de la matrice de covariance prendrait beaucoup de temps, de l’ordre de n * p. 2 , où n est le nombre de lignes et p le nombre de colonnes. De plus, la situation est encore pire lorsque vous devez inverser la matrice de covariance, ce qui coûterait environ p 3 . De plus, la matrice de covariance est très singulière car il y a beaucoup moins de lignes que de colonnes dans les données.
On pourrait donc penser que les méthodes multivariées sont impraticables ou impossibles dans ces situations. Heureusement, il existe un autre moyen, qui permet de résoudre de vastes problèmes non seulement de manière pratique, mais aussi assez rapidement tout en donnant les mêmes réponses que celles que vous obtiendriez avec une énorme matrice de covariance.
Le SVD
Le nombre de dimensions effectives dans l'espace hautement multivarié correspond à l'ordre du nombre de lignes, car il est beaucoup plus petit que le nombre de colonnes. Toute la variation de cette matrice large peut être représentée par les composantes principales, celles associées à la variance positive, c'est-à-dire des valeurs propres non nulles. Il existe un autre moyen d’obtenir les composantes principales en utilisant la décomposition en valeurs singulières des données (normalisées). Maintenant que vous êtes dans l’espace des composants principaux, la dimension de ces composants principaux est petite; en fait, tous les calculs sont simplifiés car la matrice de covariance des composantes principales est diagonale, ce qui est trivial à inverser.
Supposons que X soit la matrice n par p de données normalisées, avec p beaucoup plus grand que n, de sorte que la matrice de covariance est le calcul de la matrice p par p X'X / n.
Le SVD exprime tout X en tant que transformation qui est une rotation, une mise à l'échelle, puis une autre rotation:
X = U diag (M) V '
Où U est et n par m matrice de colonnes orthogonales, M est un vecteur de m valeurs singulières positives et V est ap par m matrice de colonnes orthogonales. Il s'avère que si vous aviez pris la décomposition en valeurs propres de la matrice de covariance, ses valeurs propres seraient M 2 et les vecteurs propres seraient V, donc puisque seulement besoin de M et V pour les composantes principales, alors vous pouvez faire la SVD des données, au lieu des valeurs propres de la matrice de covariance, et si p est dans les milliers et n est dans les centaines , c'est beaucoup plus rapide. Les composants principaux ne sont que X * V.
Par exemple, sur un problème avec 10 787 colonnes et 230 lignes, les composants principaux de la matrice de corrélation prennent 81 minutes, mais avec la SVD, il ne prend que 7,5 secondes, soit plus de 600 fois plus rapidement. Je l'ai essayé sur un ensemble de données génomiques comportant 1 824 184 colonnes sur 249 lignes. J'ai pu créer les principales composantes de ces données à l'aide de JMP 12 sur mon Mac Pro à 6 cœurs en seulement 94 minutes. Le faire autrement aurait été clairement impossible.
Analyse discriminante
Avec l'analyse discriminante, la tâche principale consiste à calculer la distance entre chaque point et la moyenne (multivariée) de chaque groupe. Cependant, cette distance n'est pas la simple distance euclidienne, mais une forme multivariée de la distance - la distance de Mahalanobis, qui utilise la matrice de covariance inverse.
Mais pensons aux données normalisées - les composantes principales sont les mêmes données, mais tournées sous différents angles. La différence est que les données d'origine peuvent avoir 10 000 colonnes, mais les composants principaux n'en ont que quelques centaines, dans le cas large. Donc, si nous voulons mesurer des distances entre des points ou entre un point et une moyenne multivariée ( centroïde ), alors nous pouvons le faire dans beaucoup moins de dimensions. De plus, les coordonnées principales ne sont pas corrélées, ce qui signifie que la matrice au milieu des calculs de distance de Mahalanobis est diagonale. La distance est donc simplement une somme de carrés de distances de coordonnées individuelles.
Nous prenons les principales composantes des données centrées sur la moyenne par groupe. Ensuite, nous rajoutons la moyenne à ces nouvelles données à dimension réduite. La moyenne transformée n'est que la transformation en composantes principales de la moyenne du groupe d'origine.
Exemple
Il existe un ensemble de données sur l’expression du génome du cancer du sein qui est un point de référence utilisé par le Microarray Quality Consortium avec 230 lignes et 10 787 expressions géniques. Une analyse discriminante utilisant la méthode linéaire large ne prend que 5,6 secondes (sur Mac Pro) et produit un taux d'erreur de classification croisée de seulement 13,7% dans la catégorie la plus difficile à classer, ER_status (Figure 1). Ce taux de classification erronée est proche du meilleur résultat obtenu pour ce problème, étant donné que les autres méthodes sont coûteuses.

Figure 1 Analyse discriminante large dans la plate-forme Composants principaux
Jusqu'à présent, nous avons implémenté des options hautement multivariées basées sur la SVD dans Discriminant, Composantes principales, Cluster hiérarchique, ainsi qu'une forme d'imputation des valeurs manquantes. Nous essayons de l'utiliser davantage et d'explorer d'autres méthodes similaires utiles dans les analyses hautement multivariées. Une grande partie du battage publicitaire autour du «Big Data» concerne un grand nombre de lignes, mais un grand nombre de colonnes est également de plus en plus important.