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')
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?
la source
R
prcomp
le 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.Réponses:
Attention:
R
utilise 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.X N X=USV⊤ US V 1N−1X⊤X=VS2N−1V⊤ V
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=VSN−1√
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 .
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:
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 yV x y L x y x y sont 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 1x y 1
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:
Les lignes noires sont tracées en utilisant , les lignes rouges sont tracées en utilisant .LV L
Et voici un biplot de l'ACP réalisé sur la matrice de covariance:
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 L100 V L
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 .
la source
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?