Proportion de la variance expliquée de l'ACP et de l'ADL

8

J'ai quelques questions de base concernant l'ACP (analyse en composantes principales) et LDA (analyse discriminante linéaire):

  1. Dans l'ACP, il existe un moyen de calculer la proportion de la variance expliquée. Est-il également possible pour LDA? Si c'est le cas, comment?

  2. La sortie «Proportion de trace» de la ldafonction (dans la bibliothèque R MASS) est-elle équivalente à la «proportion de variance expliquée»?

wrek
la source
1
Votre première question peut être un double de stats.stackexchange.com/questions/22569 , où vous pouvez trouver des réponses. Vraisemblablement "LDA" signifie Analyse Discriminante Linéaire (il a aussi d'autres significations statistiques, c'est pourquoi nous essayons d' étendre les acronymes ).
whuber
1
Dans un sens, un discriminant explique une variabilité en p. le composant le fait, la valeur propre en étant le montant. Cependant, la "variabilité" dans la LDA est d'un type spécial - c'est le rapport de la variabilité inter-classe à la variabilité intra-classe. Chaque discriminant essaie d'expliquer autant que possible ce ratio. Lire la suite
ttnphns
Merci pour l'explication. Par conséquent, si dans les axes des composants PC, je les nomme «PC (X% de la variance expliquée)», quel serait le bon terme à court terme lorsque j'étiquette les LD. Merci encore.
wrek
Avec LDA, la formulation correcte sera "LD (X% de la variance inter-groupe expliquée)".
ttnphns
Merci encore pour la grande aide et la patience. BTW comment puis-je accéder à la proportion de trace (LD1, LD2) car je souhaite les enregistrer dans deux variables distinctes?
wrek

Réponses:

10

Je vais d'abord fournir une explication verbale, puis une explication plus technique. Ma réponse se compose de quatre observations:

  1. Comme @ttnphns l'a expliqué dans les commentaires ci-dessus, dans l'ACP, chaque composante principale présente une certaine variance, qui, ensemble, représente jusqu'à 100% de la variance totale. Pour chaque composante principale, un rapport de sa variance à la variance totale est appelé «proportion de la variance expliquée». C'est très bien connu.

  2. D'un autre côté, dans la LDA, chaque "composante discriminante" a une certaine "discrimination" (j'ai inventé ces termes!) Qui lui est associée, et elles totalisent toutes jusqu'à 100% de la "discrimination totale". Ainsi, pour chaque "composante discriminante", on peut définir "la proportion de discriminabilité expliquée". Je suppose que la "proportion de trace" à laquelle vous faites référence est exactement cela (voir ci-dessous). C'est moins bien connu, mais toujours banal.

  3. Pourtant, on peut regarder la variance de chaque composante discriminante et calculer la "proportion de variance" de chacun d'eux. Il s’avère qu’ils s’ajouteront à quelque chose de moins de 100%. Je ne pense pas avoir jamais vu ce sujet discuté nulle part, ce qui est la principale raison pour laquelle je veux fournir cette longue réponse.

  4. On peut aussi aller un peu plus loin et calculer la quantité de variance que chaque composante LDA "explique"; cela va être plus que sa propre variance.


Laisser T être une matrice de diffusion totale des données (c'est-à-dire une matrice de covariance mais sans normalisation par le nombre de points de données), W être la matrice de dispersion intra-classe, et Bêtre une matrice de dispersion entre classes. Voir ici pour les définitions . Idéalement,T=W+B.

PCA effectue la décomposition propre de T, prend ses vecteurs propres unitaires comme axes principaux et les projections des données sur les vecteurs propres comme composants principaux. La variance de chaque composante principale est donnée par la valeur propre correspondante. Toutes les valeurs propres deT (qui est symétrique et positif-défini) sont positifs et s’additionnent à la tr(T), connue sous le nom de variance totale .

LDA effectue la décomposition propre de W-1B, prend ses vecteurs propres non orthogonaux (!) comme axes discriminants et ses projections sur les vecteurs propres comme composants discriminants (terme inventé). Pour chaque composante discriminante, nous pouvons calculer un rapport de variance inter-classeB et variance intra-classe W, c.-à-d. rapport signal / bruit B/W. Il s'avère qu'elle sera donnée par la valeur propre correspondante deW-1B(Lemme 1, voir ci-dessous). Toutes les valeurs propres deW-1B sont positifs (lemme 2) donc résumer à un nombre positif tr(W-1B)que l'on peut appeler rapport signal / bruit total . Chaque composant discriminant en contient une certaine proportion, et c'est, je crois, ce à quoi se réfère la "proportion de trace". Voir cette réponse par @ttnphns pour une discussion similaire .

Fait intéressant, les variances de toutes les composantes discriminantes s’ajouteront à quelque chose de plus petit que la variance totale (même si le nombre K des classes de l'ensemble de données est supérieure au nombre Ndes dimensions; car il n'y a queK-1 axes discriminants, ils ne serviront même pas de base au cas où K-1<N). Il s'agit d'une observation non triviale (lemme 4) qui découle du fait que toutes les composantes discriminantes ont une corrélation nulle (lemme 3). Ce qui signifie que nous pouvons calculer la proportion habituelle de variance pour chaque composante discriminante, mais leur somme sera inférieure à 100%.

Cependant, j'hésite à qualifier ces variances de composantes de «variances expliquées» (appelons-les plutôt «variances capturées»). Pour chaque composante LDA, on peut calculer la quantité de variance qu'elle peut expliquer dans les données en régressant les données sur cette composante; cette valeur sera en général plus grande que la variance "capturée" de cette composante. S'il y a suffisamment de composants, alors leur variance expliquée doit être de 100%. Voir ma réponse ici pour savoir comment calculer une telle variance expliquée dans un cas général: Analyse en composantes principales "en arrière": quelle est la variance des données expliquée par une combinaison linéaire donnée des variables?

Voici une illustration utilisant l'ensemble de données Iris (uniquement les mesures sépales!): PCA et LDA des mesures sépales de l'ensemble de données Iris Les lignes pleines minces montrent les axes PCA (ils sont orthogonaux), les lignes épaisses en pointillés montrent les axes LDA (non orthogonaux). Proportions de variance expliquées par les axes PCA:79% et 21%. Proportions du rapport signal / bruit des axes LDA:96% et 4%. Proportions de variance captées par les axes LDA:48% et 26% (c'est-à-dire seulement 74%ensemble). Proportions de variance expliquées par les axes LDA:65% et 35%.

Axe LDA 1Axe LDA 2Axe PCA 1Axe PCA 2Variance capturée48%26%79%21%Écart expliqué65%35%79%21%Rapport signal sur bruit96%4%--

Lemme 1. Vecteurs propresv de W-1B (ou, de manière équivalente, des vecteurs propres généralisés du problème des valeurs propres généralisées Bv=λWv) sont des points stationnaires du quotient de Rayleigh

vBvvWv=BW
(différencier ce dernier pour le voir), les valeurs correspondantes du quotient de Rayleigh fournissant les valeurs propres λ, QED.

Lemme 2. Valeurs propres deW-1B=W-1/2W-1/2B sont les mêmes que les valeurs propres de W-1/2BW-1/2(en effet, ces deux matrices sont similaires ). Cette dernière est symétrique positive définie, donc toutes ses valeurs propres sont positives.

Lemme 3. Notez que la covariance / corrélation entre les composantes discriminantes est nulle. En effet, différents vecteurs propresv1 et v2 du problème généralisé des valeurs propres Bv=λWv sont les deux B- et W-orthogonal ( voir par exemple ici ), et sont doncT-orthogonal aussi (car T=W+B), ce qui signifie qu'ils ont une covariance nulle: v1Tv2=0.

Lemme 4. Les axes discriminants forment une base non orthogonaleV, dans lequel la matrice de covariance VTVest diagonale. Dans ce cas, on peut prouver que

tr(VTV)<tr(T),
QED.
amibe
la source
1
+1. Beaucoup de choses que vous discutez ici ont été couvertes, un peu plus compressées, dans ma réponse . J'ai ajouté un lien vers votre réponse actuelle dans le corps de celle-ci.
ttnphns du
1
@ttnphns: Je me souviens de votre réponse (elle a mon +1 d'il y a longtemps), mais je n'y ai pas regardé en écrivant cette réponse, donc beaucoup de choses sont en effet présentées de manière très similaire, peut-être trop. La principale raison pour laquelle j'ai écrit cette réponse, cependant, était de discuter de la "variance expliquée" (au sens PCA) des composants LDA. Je ne sais pas à quel point c'est utile dans la pratique, mais je me posais souvent des questions à ce sujet auparavant, et j'ai récemment lutté pendant un certain temps pour prouver l'inégalité du lemme 4 qui a finalement été prouvée pour moi sur Math.SE.
amoeba
Notez que la diagonale de VTV est λ+1, le dénominateur pour calculer les corrélations canoniques.
ttnphns
@ttnphns: Hmmm ... Je pense que pour chaque vecteur propre v,
B/W=vBvvWv=λ
et
B/T=vBvvTv=vBv(vBv+vWv)=λλ+1,
comme vous le dites dans votre réponse liée. Mais la valeur devTv (en dehors de tout rapport) ne peut pas vraiment être exprimé avec λseulement.
amoeba
Il me semble que le vecteur propre d'un discriminant donné contient des informations sur B/Wpour ce discriminant; lorsque nous l'étalonnons avecTqui conserve les covariances entre les variables, on peut arriver à la valeur propre du discriminant. Ainsi, les informations surB/West stocké dans des vecteurs propres, et il est "normalisé" à la forme correspondant à aucune corrélation entre les variables.
ttnphns