Quelle est la différence entre les «chargements» et les «chargements de corrélation» dans PCA et PLS?

11

Une chose courante à faire lors de l'analyse des composants principaux (ACP) est de tracer deux chargements l'un contre l'autre pour étudier les relations entre les variables. Dans le document accompagnant le package PLS R pour effectuer la régression des composants principaux et la régression PLS, il existe un graphique différent, appelé graphique des charges de corrélation (voir figure 7 et page 15 du document). Le chargement de corrélation , comme il est expliqué, est la corrélation entre les scores (de l'ACP ou du PLS) et les données réellement observées.

Il me semble que les chargements et les chargements de corrélation sont assez similaires, sauf qu'ils sont mis à l'échelle un peu différemment. Un exemple reproductible dans R, avec l'ensemble de données intégré mtcars, est le suivant:

data(mtcars)
pca <- prcomp(mtcars, center=TRUE, scale=TRUE)

#loading plot
plot(pca$rotation[,1], pca$rotation[,2],
     xlim=c(-1,1), ylim=c(-1,1),
     main='Loadings for PC1 vs. PC2')

#correlation loading plot
correlationloadings <- cor(mtcars, pca$x)
plot(correlationloadings[,1], correlationloadings[,2],
     xlim=c(-1,1), ylim=c(-1,1),
     main='Correlation Loadings for PC1 vs. PC2')

zone de chargement correlationloadinsplot

Quelle est la différence d'interprétation de ces graphiques? Et quelle intrigue (le cas échéant) est préférable d'utiliser dans la pratique?

user1593755
la source
pour une meilleure vue du pca, utilisez le biplot (pca), il vous montre le chargement et les scores du pca et ainsi vous pouvez mieux l'interpréter.
Paul
6
R prcomple paquet appelle imprudemment des vecteurs propres "chargements". Je conseille de garder ces termes séparés. Les chargements sont des vecteurs propres mis à l'échelle aux valeurs propres respectives.
ttnphns
1
Expliquer la géométrie d'un tracé de chargement: stats.stackexchange.com/a/119758/3277
ttnphns

Réponses:

13

Attention: Rutilise le terme "chargements" de manière confuse. Je l'explique ci-dessous.

Considérez l'ensemble de données avec des variables (centrées) dans les colonnes et points de données dans les lignes. L'exécution de l'ACP de cet ensemble de données équivaut à une décomposition en valeurs singulières . Les colonnes de sont des composants principaux ("scores" PC) et les colonnes de sont des axes principaux. La matrice de covariance est donnée par , donc les axes principaux sont des vecteurs propres de la matrice de covariance.XNX=USVUSV1N1XX=VS2N1VV

Les "chargements" sont définis comme des colonnes de , c'est-à-dire que ce sont des vecteurs propres mis à l'échelle par les racines carrées des valeurs propres respectives. Ils sont différents des vecteurs propres! Voir ma réponse ici pour la motivation.L=VSN1

En utilisant ce formalisme, nous pouvons calculer la matrice de covariance croisée entre les variables originales et les PC standardisés: c'est-à dire qu'il est donné par des chargements. La matrice de corrélation croisée entre les variables originales et les PC est donnée par la même expression divisée par les écarts-types des variables originales (par définition de la corrélation). Si les variables d'origine ont été normalisées avant d'effectuer l'ACP (c'est-à-dire que l'ACP a été réalisée sur la matrice de corrélation), elles sont toutes égales à . Dans ce dernier cas, la matrice de corrélation croisée est à nouveau donnée simplement par .

1N1X(N1U)=1N1VSUU=1N1VS=L,
1L

Pour dissiper la confusion terminologique: ce que le package R appelle des "chargements" sont des axes principaux, et ce qu'il appelle des "chargements de corrélation" sont (pour PCA fait sur la matrice de corrélation) en fait des chargements. Comme vous vous en êtes rendu compte, ils ne diffèrent que par la mise à l'échelle. Ce qui vaut mieux tracer, dépend de ce que vous voulez voir. Prenons un exemple simple suivant:

Biplots

Le sous-graphique de gauche montre un ensemble de données 2D normalisé (chaque variable a une variance d'unité), étiré le long de la diagonale principale. Le sous-intrigue du milieu est un biplot : c'est un nuage de points de PC1 vs PC2 (dans ce cas, simplement le jeu de données pivoté de 45 degrés) avec des lignes de tracées en haut comme vecteurs. Notez que les vecteurs et sont distants de 90 degrés; ils vous indiquent l'orientation des axes d'origine. La sous-intrigue de droite est la même bi-intrigue, mais maintenant les vecteurs montrent des lignes de . Notez que maintenant les vecteurs et ont un angle aigu entre eux; ils vous indiquent combien de variables d'origine sont corrélées avec les PC, et et x y L x y x yVxyLxyxysont beaucoup plus corrélés avec PC1 qu'avec PC2. Je suppose que la plupart des gens préfèrent le plus souvent voir le bon type de biplot.

Notez que dans les deux cas, les vecteurs et ont une longueur unitaire. Cela s'est produit uniquement parce que le jeu de données était 2D au départ; dans le cas où il y a plus de variables, les vecteurs individuels peuvent avoir une longueur inférieure à , mais ils ne peuvent jamais atteindre en dehors du cercle unitaire. Preuve de ce fait je pars comme exercice.y 1xy1

Prenons maintenant un autre regard sur l' ensemble de données mtcars . Voici un biplot de l'ACP réalisé sur matrice de corrélation:

mtcars pca biplot

Les lignes noires sont tracées en utilisant , les lignes rouges sont tracées en utilisant .LVL

Et voici un biplot de l'ACP réalisé sur la matrice de covariance:

mtcars pca biplot

Ici, j'ai mis à l'échelle tous les vecteurs et le cercle unitaire de , car sinon, il ne serait pas visible (c'est une astuce couramment utilisée). Encore une fois, les lignes noires montrent les lignes de et les lignes rouges montrent les corrélations entre les variables et les PC (qui ne sont plus données par , voir ci-dessus). Notez que seules deux lignes noires sont visibles; c'est parce que deux variables ont une variance très élevée et dominent l' ensemble de données mtcars . D'un autre côté, toutes les lignes rouges sont visibles. Les deux représentations véhiculent des informations utiles.V L100VL

PS Il existe de nombreuses variantes de biplots PCA, voir ma réponse ici pour plus d'explications et un aperçu: Positionnement des flèches sur un biplot PCA . Le plus joli biplot jamais publié sur CrossValidated peut être trouvé ici .

amibe dit réintégrer Monica
la source
2
Bien que ce soit une très bonne réponse (+1), elle a juste une faiblesse didactique, en ce sens qu'elle place initialement les variables dans les lignes de X, pas dans les colonnes de X comme cela se fait traditionnellement dans les ensembles / exemples statistiques. En raison de cette transposition, les vecteurs U deviennent dans la réponse des variables et V des cas. La plupart des gens qui connaissent PCA sont habitués à la disposition opposée; donc ça gêne un peu la perception.
ttnphns
1
Je pourrais recommander de souligner verbalement la "morale" de la différence entre les "axes biplot" et les "chargements biplot" sur le scan. Dans le premier, la variabilité (= échelle, = magnidute, = inertie, = masse) n'est pas présentée: elle est stockée en valeurs propres. Dans le second, il a été entièrement abandonné aux vecteurs propres représentant des variables; grâce à cette "relance", les variables deviennent un nuage de données significatif de deux points, ou vecteurs, avec des longueurs spécifiques à partir de l'origine et de l'angle spécifique. C'est ainsi que nous nous retrouvons «soudainement» dans l' espace sujet .
ttnphns
Merci @ttnphns, les deux bons points. Concernant les lignes / colonnes de : en fait, je préfère la mise en page que j'ai utilisée. Un point de données unique est généralement écrit sous la forme d'un vecteur de colonne . Une matrice agissant sur elle serait écrite comme . Si maintenant est une collection de vecteurs de colonnes empilés, alors je peux écrire , ce qui est pratique. Si, à la place, a des échantillons dans les lignes, comme vous le préconisez, alors j'aurais besoin d'écrire , ce qui semble bizarre. Mais j'avoue que de nombreux manuels utilisent cette convention (je ne sais pas pourquoi). x U U x X U X X X UXxUUxXUXXXU
amoeba dit Reinstate Monica
1
C'est, bien sûr, une question de goût. N'oubliez pas, cependant, que la grande majorité des programmes statistiques présentent des feuilles de calcul sous forme de cases X variables. Par tradition donc, l'algèbre linéaire dans la plupart des textes d'analyse statistique fait de la casse un vecteur ligne. Peut-être qu'en apprentissage automatique, c'est différent?
ttnphns
1
@user_anon Non, cette réponse considère l'APC standard, sans aucune rotation de facteur.
amibe dit Réintégrer Monica