Positionner les flèches sur un biplot PCA

18

Je cherche à implémenter un biplot pour l'analyse des composants principaux (PCA) en JavaScript. Ma question est, comment puis-je déterminer les coordonnées des flèches à partir de la sortie de la décomposition vectorielle singulière (SVD) de la matrice de données?U,V,D

Voici un exemple de biplot produit par R:

biplot(prcomp(iris[,1:4]))

Biplot du jeu de données Iris

J'ai essayé de le rechercher dans l'article Wikipedia sur biplot mais ce n'est pas très utile. Ou correct. Je ne sais pas lequel.

ktdrv
la source
3
Biplot est un nuage de points de superposition montrant à la fois les valeurs U et les valeurs V. Ou UD et V. Ou U et VD '. Ou UD et VD '. En termes de PCA, UD sont appelés scores bruts des composants principaux et VD 'sont appelés chargements de composants variables.
ttnphns
2
Notez également que l'échelle des coordonnées dépend de la façon dont vous normalisez initialement les données. Dans PCA, par exemple, on divise normalement les données par sqrt (r) ou sqrt (r-1) [r est le nombre de lignes]. Mais dans le vrai "biplot" au sens étroit du mot, on divise normalement les données par sqrt (rc) [c est le nombre de colonnes] puis
dénormalise les
Pourquoi les données doivent-elles être mises à l'échelle par ? 1n1
ktdrv
1
@ttnphns: Suite à vos commentaires ci-dessus, j'ai écrit une réponse à cette question, dans le but de fournir quelque chose comme un aperçu des normalisations de biplot PCA. Cependant, ma connaissance de ce sujet est purement théorique et je pense que vous avez beaucoup plus d'expérience pratique avec les biplots que moi. Je serais donc reconnaissant pour tout commentaire.
amibe dit Réintégrer Monica
1
Une des raisons de mettre en œuvre des choses, @Aleksandr, est de savoir exactement ce qui se fait. Comme vous pouvez le voir, il n'est pas si facile de comprendre ce qui se passe exactement quand on s'exécute biplot(). Aussi, pourquoi s'embêter avec l'intégration R-JS pour quelque chose qui ne nécessite que quelques lignes de code.
amibe dit Réintégrer Monica

Réponses:

40

Il existe de nombreuses façons différentes de produire un biplot PCA et il n'y a donc pas de réponse unique à votre question. Voici un bref aperçu.

Nous supposons que la matrice de données a points de données en lignes et est centrée (c'est-à-dire que les moyennes des colonnes sont toutes nulles). Pour l'instant, nous ne supposons pas qu'il était standardisé, c'est-à-dire que nous considérons l'ACP sur la matrice de covariance (pas sur la matrice de corrélation). PCA équivaut à une décomposition en valeur singulière vous pouvez voir ma réponse ici pour plus de détails: Relation entre SVD et PCA. Comment utiliser SVD pour effectuer PCA?XX = U S V ,n

X=USV,

Dans un biplot PCA, deux premières composantes principales sont tracées comme un nuage de points, c'est-à-dire que la première colonne de est tracée contre sa deuxième colonne. Mais la normalisation peut être différente; par exemple, on peut utiliser:U

  1. Colonnes de : ce sont les principales composantes mises à l'échelle de la somme unitaire des carrés;U
  2. Colonnes de : ce sont des composantes principales standardisées (variance unitaire);n1U
  3. Colonnes de : ce sont des composantes principales "brutes" (projections sur directions principales).US

De plus, les variables d'origine sont tracées sous forme de flèches; ie les coordonnées d'un - ième point d' extrémité flèche sont données par la valeur -ième dans la première et la seconde colonne de . Mais encore une fois, on peut choisir différentes normalisations, par exemple:i i V(x,y)iiV

  1. Colonnes de : Je ne sais pas ce que pourrait être une interprétation ici;VS
  2. Colonnes de : ce sont des chargements;VS/n1
  3. Colonnes de : ce sont des axes principaux (alias directions principales, alias vecteurs propres).V

Voici à quoi tout cela ressemble pour l'ensemble de données Fisher Iris:

Biotracs de Fisher Iris, ACP sur la covariance

La combinaison de n'importe quelle sous-intrigue par le haut avec n'importe quelle sous-intrigue par le bas constituerait normalisations possibles. Mais selon la définition originale d'un biplot introduite dans Gabriel, 1971, L'affichage graphique biplot des matrices avec application à l'analyse des composants principaux (cet article a 2k citations, soit dit en passant), les matrices utilisées pour le biplot devraient, lorsqu'elles sont multipliées ensemble, approximatives (c'est tout le point). Ainsi, un "biplot approprié" peut utiliser par exemple et . Par conséquent, seulement trois des sont des "parcelles appropriées": à savoir une combinaison de toute sous-parcelle du dessus avec celle directement en dessous.X U S α β V S ( 1 - α ) / β 99XUSαβVS(1α)/β9

[Quelle que soit la combinaison utilisée, il peut être nécessaire de mettre à l'échelle les flèches selon un facteur constant arbitraire afin que les flèches et les points de données apparaissent à peu près sur la même échelle.]

L'utilisation des chargements, c'est-à-dire , pour les flèches a un grand avantage en ce qu'elles ont des interprétations utiles (voir aussi ici à propos des chargements). La longueur des flèches de chargement se rapproche de l'écart-type des variables d'origine (la longueur au carré se rapproche de la variance), les produits scalaires entre deux flèches se rapprochent de la covariance entre elles et les cosinus des angles entre les flèches correspondent approximativement aux corrélations entre les variables d'origine. Pour faire un "bon biplot", il faut choisir , c'est-à-dire des PC standardisés, pour les points de données. Gabriel (1971) appelle cela "biplot PCA" et écrit que UVS/n1Un1

Ce [choix particulier] est susceptible de fournir une aide graphique très utile pour interpréter les matrices multivariées d'observations, à condition, bien sûr, que celles-ci puissent être adéquatement estimées au rang deux.

L'utilisation de et permet une bonne interprétation: les flèches sont des projections des vecteurs de base d'origine sur le plan PC, voir cette illustration par @ hxd1011 .VUSV

On peut même choisir de tracer les PC bruts avec les chargements. Ceci est un "biplot incorrect", mais a été par exemple réalisé par @vqv sur le biplot le plus élégant que j'ai jamais vu: Visualiser un million, édition PCA - il montre PCA de l'ensemble de données sur le vin.US

Le chiffre que vous avez publié (résultat par défaut de la biplotfonction R ) est un "biplot approprié" avec et . La fonction met à l'échelle deux sous-parcelles de telle sorte qu'elles s'étendent sur la même zone. Malheureusement, la fonction fait un choix étrange de réduire toutes les flèches vers le bas par un facteur de et d'afficher les étiquettes de texte là où les extrémités des flèches auraient dû être. ( De plus, ne reçoit pas l'échelle correctement et se termine fait en traçant des scores avec la somme des carrés, au lieu de Voir cette enquête détaillée par @AntoniParellada:. Les flèches des variables sous - jacentes dans PCA biplot en R . )UVSbiplot0.8biplotn/(n1)1

PCA sur matrice de corrélation

Si nous supposons en outre que la matrice de données a été normalisée de sorte que les écarts-types des colonnes soient tous égaux à , alors nous effectuons l'ACP sur la matrice de corrélation. Voici à quoi ressemble la même figure:X1

Biotracs de Fisher Iris, PCA sur les corrélations

Ici, les chargements sont encore plus attractifs, car (en plus des propriétés mentionnées ci-dessus), ils donnent exactement (et non approximativement) des coefficients de corrélation entre les variables originales et les PC. Les corrélations sont toutes inférieures à et les flèches de chargement doivent se trouver à l'intérieur d'un "cercle de corrélation" de rayon , qui est parfois également tracé sur un biplot (je l'ai tracé sur le sous-plot correspondant ci-dessus). Notez que le biplot par @vqv (lié ci-dessus) a été fait pour une PCA sur matrice de corrélation, et arbore également un cercle de corrélation.1R=1


Lectures complémentaires:

amibe dit réintégrer Monica
la source
1
+6, cela mérite plus de 3 votes positifs.
gung - Reinstate Monica
3
Je viens de remarquer que? Ca :: plot.ca a un bon aperçu des différentes normalisations possibles: ils distinguent le principal de la ligne (forme biplot = lignes dans les coords principaux, cols dans les coords standard), col principal (biplot de covariance = cols dans les coords principaux, lignes dans les coords standard), biplot symétrique (lignes et colonnes mises à l'échelle pour avoir des variances égales aux valeurs singulières (racines carrées des valeurs propres)), rowgab et colgab (lignes dans les coords principaux et cols dans les coords standard multipliées par la masse du point correspondant ou vice versa) et rowgreen et colgreen (comme rowgab et colgab mais avec sqrt (masses))
Tom Wenseleers
2
Ces derniers sont également appelés "biplots de contribution"; le livre de M. Greenacre "Biplots en pratique" donne également un bon aperçu de tout cela; ces méthodes de mise à l'échelle s'appliquent à toutes les méthodes basées sur la SVD (c'est-à-dire les biplots CA, les biplots PCA, les biplots LDA, etc.); pour un exemple de fonctionnement, voir le code source ca ::: plot.ca et l'argument "map"
Tom Wenseleers
1
n1
1
@AntoniParellada J'ai édité et inséré quelques liens.
amibe dit Réintégrer Monica