Si les physiciens peuvent avoir leur magie de superposition, les statisticiens aussi. Supposons que vous avez beaucoup de points sur trois variables dans trois groupes. Vous devez compter le nombre de points dans chaque groupe. Mais vous ne savez pas de quel groupe provient chaque point. Et, soit dit en passant, chaque groupe a la même moyenne pour toutes les variables. Essayez d’inventer une approche pour le faire avant de lire le reste de cette entrée de blog.
Le regroupement de points est généralement le travail d’analyse par grappes. Les informaticiens ont un nom plus coloré pour cela: apprentissage non supervisé. C'est facile. Vous ne faites que regrouper les données afin que les points proches les uns des autres forment des grappes; assignez chaque point au cluster le plus proche, comptez les points de chaque cluster et vous avez terminé.
Mais ces méthodes de regroupement ne permettent jamais aux groupes de se chevaucher, et encore moins d’avoir les mêmes centres. Un clustering ordinaire ne fera tout simplement pas ce travail.
Avant de résoudre le problème, nous devons d’abord être un peu plus spécifiques sur les données et générer un ensemble de données problématique. Nous aurons les données avec des distributions normales multivariées, et bien que chaque cluster ait la même moyenne, nous les distinguerons en ayant une structure de covariance différente pour chaque groupe. Pour être simple, nous allons générer des données normales multivariées non corrélées, chacun des trois clusters ayant une variance plus grande dans la direction d'un composant qui est unique à ce cluster.

Script JSL pour générer des données
Nous générons donc une table, dans ce cas, avec des variances de 1 pour chaque variable de chaque cluster, sauf que chaque cluster a un composant avec une variance de 4 au lieu d'un. Le résultat est que chaque groupe se démarque dans une direction différente, bien qu'ils aient les mêmes centres. Voici le code JSL que j'ai utilisé pour créer des données:

Contours ellipsoïdaux normaux pour 3 groupes
Et voici une image des contours de la densité normale multivariée qui résulte de ceci:
Notez que les groupes avec les grandes variances X et Y ont 35% des données et le groupe avec la grande variance Z ne contient que 30% des données. Si la méthode estime bien les proportions, le problème est résolu. Nous n'avons pas besoin d'identifier chaque point - nous avons juste besoin d'estimer les proportions, ou de manière équivalente, les chiffres de chaque groupe.
Voici le secret: au lieu de faire le groupe hiérarchique ou k-means habituel, nous faisons des mélanges normaux. C'est-à-dire que nous ajustons les moyennes, les variances, les covariances et les proportions relatives de chaque groupe afin de maximiser la vraisemblance des données. Ceci a été implémenté dans JMP par Chris Gotwalt. Voici les résultats.

Résultats de mélanges normaux
Remarquez comme nous l'avons bien fait. Les proportions sont 0,343, 0,351 et 0,308 pour les trois groupes, très proches des proportions utilisées pour générer les données, 0,35, 0,35, 0,30. Et les moyennes, les écarts-types et les corrélations sont également proches. Problème résolu. Voici une image des données avec les points colorés par l'appartenance au groupe la plus probable.

Points colorés pour le groupe le plus probable
Cette magie est-elle utile? Il s’avère qu’un type de comptage très important est très important pour mesurer la densité d’infection dans les cas de VIH. Il existe un type particulier de globules blancs - un lymphocyte T auxiliaire - qui exprime une protéine appelée CD4. L’infection à VIH est mesurée en partie par le nombre de ces cellules présentes dans les échantillons de sang, par rapport aux autres leucocytes. Il s'avère que vous pouvez identifier différents types de globules blancs en marquant leurs sites de liaison avec différents colorants fluorescents. Ensuite, vous l'envoyez à travers un instrument appelé cytomètre de flux, qui émet un minuscule jet de gouttelettes de liquide contenant les cellules. Plusieurs lasers de différentes longueurs d'onde sont projetés à travers les gouttelettes, et chaque gouttelette est mesurée par sa fluorescence. Le résultat est un énorme ensemble de données, peut-être un demi-million de lignes sur environ 12 mesures d'intensité à différentes longueurs d'onde. Les données ont une ligne pour chaque cellule. Les différentes cellules forment des grappes qui se chevauchent et vous devez compter les cellules de chaque grappe. La pratique actuelle consiste à faire glisser les polygones à la main sur les grappes, en divisant arbitrairement les groupes à l’œil. L'utilisation de mélanges normaux pour le comptage donnerait une méthode beaucoup plus objective et améliorerait la reproductibilité des données. Mais il y a beaucoup de points parasites qui n'appartiennent à aucun cluster. Aucun problème. Les routines de Chris Gotwalt comprennent une méthode (Huber) robuste de gestion des valeurs éloignées. Faire cela en 12 dimensions pour un demi-million de points est actuellement assez coûteux, nous cherchons donc des idées pour accélérer ce processus.
Très bonne magie.
Rob Lake a écrit:
Vous dites "Faire cela en 12 dimensions pour un demi-million de points coûte actuellement assez cher, ..." Qu'est-ce qui coûte cher? La collecte de données ou l'analyse de données?
J'ai quelques idées à partager lorsque vous clarifiez.
À votre santé,
Rob Lake