PCA sur la corrélation ou la covariance?


153

Quelles sont les principales différences entre effectuer une analyse en composantes principales (ACP) sur la matrice de corrélation et sur la matrice de covariance? Est-ce qu'ils donnent les mêmes résultats?


2
Une réponse tardive, mais vous trouverez peut-être des documents très utiles sur l'analyse de données multivariées "à la française" au département de bioinformatique de Lyon. Ceux-ci proviennent des auteurs du paquet R ade4 . C'est en français, cependant.
chl

3
Pour plus d'informations, consultez la page stats.stackexchange.com/questions/62677/… .
whuber

Réponses:


130

Vous avez tendance à utiliser la matrice de covariance lorsque les échelles de variable sont similaires et la matrice de corrélation lorsque les variables sont à différentes échelles.

L'utilisation de la matrice de corrélation équivaut à la normalisation de chacune des variables (moyenne égale à 0 et écart type 1). En général, une ACP avec et sans standardisation donnera des résultats différents. Surtout quand les échelles sont différentes.

À titre d'exemple, jetez un coup d'œil à cet heptathlonensemble de données R. Certaines des variables ont une valeur moyenne d’environ 1,8 (le saut en hauteur), alors que d’autres (parcours 800 m) sont d’environ 120.

library(HSAUR)
heptathlon[,-8]      # look at heptathlon data (excluding 'score' variable)

Cela génère:

                   hurdles highjump  shot run200m longjump javelin run800m
Joyner-Kersee (USA)   12.69     1.86 15.80   22.56     7.27   45.66  128.51
John (GDR)            12.85     1.80 16.23   23.65     6.71   42.56  126.12
Behmer (GDR)          13.20     1.83 14.20   23.10     6.68   44.54  124.20
Sablovskaite (URS)    13.61     1.80 15.23   23.92     6.25   42.78  132.24
Choubenkova (URS)     13.51     1.74 14.76   23.93     6.32   47.46  127.90
...

Parlons maintenant de la covariance et de la corrélation:

# scale=T bases the PCA on the correlation matrix
hep.PC.cor = prcomp(heptathlon[,-8], scale=TRUE)
hep.PC.cov = prcomp(heptathlon[,-8], scale=FALSE)

biplot(hep.PC.cov)
biplot(hep.PC.cor)  

PCA sur la corrélation ou la covariance

Notez que PCA sur la covariance est dominé par run800met javelin: PC1 est presque égal à run800m(et explique de la variance) et PC2 est presque égal à (ensemble, ils expliquent ). PCA sur la corrélation est beaucoup plus informatif et révèle une certaine structure dans les données et les relations entre les variables (mais notez que les variances expliquées tombent à et ).82%97 % 64 % 71 %javelin97%64%71%

Notez également que les individus éloignés (dans cet ensemble de données) sont des éléments aberrants, que la matrice de covariance ou de corrélation soit utilisée ou non.


Quelle est la situation si je convertis d'abord les variables en z-scores?
Jirka-x1,

9
@ Jirka-x1 la matrice de covariance des variables standardisées (ie z scores) est égale à la matrice de corrélation.
Alexis

@Alexis Peut-on donc en déduire que la matrice de covariance des variables standardisées est égale à la matrice de corrélation des variables standardisées?
jb

1
@JamieBullock (matrice de covariance) pour les données normalisées = (matrice de corrélation). si les données sont standardisées ou non (la corrélation est insensible aux transformations linéaires des données. Ainsi, par exemple, si vous avez et et qu'ils sont en corrélation avec , alors si et et également en corrélation avec ). ΣRR=RXYrXYX=aX+bY=aY+b XYrXY
Alexis

Une remarque importante: lorsque vous utilisez la covariance dans votre PCA, vos PC ne seront pas corrélés entre eux, ce qui n'est pas le cas pour une ACP basée sur la corrélation. Cela est particulièrement important lorsque vous souhaitez effectuer une ACP avant la régression dans un ensemble multicolinéaire de variables explicatives. Cependant, la théorie derrière ceci n'est pas claire. Quelqu'un pourrait-il nous éclairer sur cette différence?
ouranos

54

Bernard Flury, dans son excellent livre introduisant l'analyse multivariée, a décrit cela comme une anti-propriété des composants principaux. C'est en fait pire que de choisir entre corrélation ou covariance. Si vous avez changé les unités (par exemple, gallons de style américain, pouces, etc. et litres de style européen, centimètres), vous obtiendrez des projections de données sensiblement différentes.

L'argument contre l'utilisation automatique de matrices de corrélation est qu'il s'agit d'un moyen assez brutal de normaliser vos données. Le problème avec l’utilisation automatique de la matrice de covariance, qui est très évident avec ces données heptathalon, est que les variables avec la variance la plus élevée dominent la première composante principale (la propriété maximisant la variance).

La "meilleure" méthode à utiliser repose donc sur un choix subjectif, une réflexion approfondie et une certaine expérience.


46

DONNÉES NON TRANSFORMÉES (RAW): Si vous disposez de variables avec des échelles très variables pour les données brutes non transformées, c’est-à-dire, apport calorique par jour, expression génique, ELISA / Luminex en unités de ug / dl, ng / dl, en fonction de plusieurs ordres de valeurs. magnitude de l’expression des protéines, puis utilise la corrélation comme entrée de la PCA. Cependant, si toutes vos données sont basées, par exemple, sur l'expression génique de la même plate-forme avec une étendue et une échelle similaires, ou si vous travaillez avec des rendements d'actifs logaraires, l'utilisation de la corrélation produira une énorme quantité d'informations.

En fait, vous n'avez pas besoin de penser à la différence d'utiliser la matrice de corrélation ou la matrice de covariance comme entrée de la CPA, mais regardez plutôt les valeurs diagonales de et . Vous pouvez observer une variance de pour une variable et de pour une autre - qui sont sur la diagonale de . Toutefois, lorsque vous examinez les corrélations, la diagonale en contient toutes des unités, de sorte que la variance de chaque variable est essentiellement remplacée par lorsque vous utilisez la matrice .RCCR10010C1R

TRANSFORME DES DONNÉES: Si les données ont été transformées par la normalisation, percentiles, ou moyenne zéro normalisation (c. -scores), de sorte que la portée et l' échelle de toutes les variables continues est la même, alors vous pouvez utiliser la matrice de covariance sans aucun problème. (corrélation signifiera zéro standardiser les variables). Rappelez-vous toutefois que ces transformations ne suppriment pas l'asymétrie (c'est-à-dire les queues gauche ou droite dans les histogrammes) de vos variables avant l'exécution de PCA . Une analyse PCA typique n’implique pas la suppression de l’asymétrie; Cependant, certains lecteurs peuvent avoir besoin de supprimer l'asymétrie pour répondre à de strictes contraintes de normalité.ZC

En résumé, utilisez la matrice de corrélation lorsque la plage et l’échelle d’une variable diffèrent considérablement et utilisez la matrice de covariance pour préserver la variance si la plage et l’échelle des variables sont similaires ou dans les mêmes unités de valeur. mesure.RC

VARIABLES CACHÉES: Si l'une des variables est asymétrique avec une queue gauche ou droite dans son histogramme, c'est-à-dire que le test de normalité de Shapiro-Wilk ou de Lilliefors est significatif , il peut alors y avoir des problèmes si vous devez appliquer la normalité supposition. Dans ce cas, utilisez les scores de van der Waerden (transformés) déterminés à partir de chaque variable. Le score de van der Waerden (VDW) pour une seule observation est simplement la cartographie normale cumulative inverse (standard) de la valeur de centile de l'observation. Par exemple, supposons que vous avez observations pour une variable continue, vous pouvez déterminer les scores VDW en utilisant:(P<0.05)n=100

  1. Commencez par trier les valeurs par ordre croissant, puis assignez des rangs pour obtenir les rangsRi=1,2,,100.
  2. Ensuite, déterminez le centile pour chaque observation sous la forme . pcti=Ri/(n+1)
  3. Une fois que les valeurs en centiles sont obtenues, saisissez-les dans la fonction de mappage inverse pour le CDF de la distribution normale standard, c'est-à-dire , afin d'obtenir le score pour chacune, en utilisant . N(0,1)ZZi=Φ1(pcti)

Par exemple, si vous connectez une valeur de 0.025, vous obtiendrez . Il en va de même pour une valeur de plugin de , vous obtiendrez . pcti1.96=Φ1(0.025)pcti=0.9751.96=Φ1(0.975)

L'utilisation des scores VDW est très populaire en génétique, où de nombreuses variables sont transformées en scores VDW, puis intégrées dans des analyses. L'avantage d'utiliser les scores VDW est que les effets d'asymétrie et de valeurs aberrantes sont supprimés des données et peuvent être utilisés si l'objectif est d'effectuer une analyse sous les contraintes de la normalité - et chaque variable doit être purement standard distribuée et normale sans asymétrie. ou des valeurs aberrantes.


7
C’est de loin la réponse la plus sensée, car elle donne en réalité l’avis que la covariance gagne le cas échéant. Trop de réponses ici et ailleurs mentionnent l'habituel "ça dépend" sans pour autant donner une base solide sur la raison pour laquelle on devrait préférer la covariance si possible . Ici le lep fait: la covariance ne jette aucune information sur la corrélation. L’exemple de données sur les actions est un bon exemple: les actions à bêta élevé auront des charges plus élevées, mais elles devraient probablement , comme toute facette de toute analyse plus volatile est généralement plus intéressante (dans des limites raisonnables).
Thomas Browne

3
Bien entendu, le problème à résoudre doit être analysé pour savoir si une variance plus élevée constitue une facette intéressante de l'analyse. Si ce n'est pas le cas, alors, bien sûr, la corrélation est meilleure et elle est valable si les unités sont différentes.
Thomas Browne

Super réponse +1. J'imagine qu'un autre exemple pourrait être l'application de l'APC à l'analyse de la structure par termes des rendements obligataires en finance. Les variances des rendements sur des échéances variées varient, mais étant donné qu’ils sont tous des rendements, les échelles variables n’ont normalement pas une largeur inacceptable. En effet, la volatilité plus ou moins grande de certains rendements à terme fournit elle-même une information riche.
Nicholas

11

Une réponse courante consiste à suggérer que la covariance est utilisée lorsque les variables sont sur la même échelle et la corrélation lorsque leurs échelles sont différentes. Cependant, cela n’est vrai que lorsque l’échelle des variables n’est pas un facteur. Sinon, pourquoi quelqu'un ferait-il jamais une covariance PCA? Il serait plus sûr de toujours effectuer une ACP par corrélation.

Imaginez que vos variables aient différentes unités de mesure, telles que les mètres et les kilogrammes. Peu importe que vous utilisiez des mètres ou des centimètres dans ce cas, vous pouvez donc faire valoir que la matrice de corrélation devrait être utilisée.

Considérons maintenant la population de différents états. Les unités de mesure sont les mêmes - nombre (nombre) de personnes. Maintenant, les échelles pourraient être différentes: DC a 600K et CA - 38M personnes. Devrions-nous utiliser la matrice de corrélation ici? Ça dépend. Dans certaines applications, nous souhaitons ajuster la taille de l'état. L'utilisation de la matrice de covariance est un moyen de créer des facteurs qui tiennent compte de la taille de l'État.

Par conséquent, ma réponse est d'utiliser la matrice de covariance lorsque la variance de la variable d'origine est importante et d'utiliser la corrélation lorsque ce n'est pas le cas.


2

Je trouve personnellement très utile de discuter de ces options à la lumière du modèle d'analyse en composantes principales du maximum de vraisemblance (MLPCA) [1,2]. En MLPCA, on applique une mise à l'échelle (ou même une rotation) telle que les erreurs de mesure dans les variables mesurées soient indépendantes et réparties selon la distribution normale standard. Cette mise à l'échelle est également connue sous le nom de mise à l'échelle du maximum de vraisemblance (MALS) [3]. Dans certains cas, le modèle PCA et le paramètre définissant la mise à l'échelle / rotation du MALS peuvent être estimés ensemble [4].

Pour interpréter une ACP basée sur la corrélation et la covariance, on peut alors avancer que:

  1. La PCA basée sur la covariance est équivalente à la MLPCA chaque fois que la matrice de variance-covariance des erreurs de mesure est supposée diagonale avec des éléments égaux sur sa diagonale. Le paramètre de variance d'erreur de mesure peut ensuite être estimé en appliquant le modèle d'analyse probabiliste en composantes principales (PPCA) [5]. Je trouve cette hypothèse raisonnable dans plusieurs cas que j’ai étudiés, en particulier lorsque toutes les mesures sont du même type de variable (par exemple, tous les débits, toutes les températures, toutes les concentrations ou toutes les mesures d’absorbance). En effet, on peut sans risque supposer que les erreurs de mesure de telles variables sont distribuées de manière indépendante et identique.
  2. La CPA basée sur la corrélation est équivalente à la MLPCA chaque fois que la matrice de variance-covariance des erreurs de mesure est supposée diagonale avec chaque élément de la diagonale proportionnelle à la variance globale de la variable mesurée correspondante. Bien que cette méthode soit populaire, j’ai personnellement trouvé l’hypothèse de proportionnalité déraisonnable dans la plupart des cas que j’étudie. En conséquence, cela signifie que je ne peux pas interpréter l'ACP basée sur la corrélation comme un modèle MLPCA. Dans les cas où (1) les hypothèses implicites d'une ACP basée sur la covariance ne s'appliquent pas et (2) une interprétation MLPCA est utile, je recommande d'utiliser l'une des méthodes MLPCA à la place [1-4].
  3. La PCA basée sur la corrélation et la covariance produira exactement les mêmes résultats - à partir d'un multiplicateur scalaire - lorsque les variances individuelles de chaque variable sont toutes exactement égales les unes aux autres. Lorsque ces variances individuelles sont similaires mais ne sont pas identiques, les deux méthodes produiront des résultats similaires.

Comme souligné plus haut, le choix ultime dépend des hypothèses que vous avancez. De plus, l'utilité d'un modèle particulier dépend également du contexte et du but de votre analyse. Pour citer George EP Box: "Tous les modèles ont tort, mais certains sont utiles".

[1] Wentzell, PD, Andrews, DT, Hamilton, DC, Faber, K. et Kowalski, BR (1997). Analyse en composantes principales du maximum de vraisemblance. Journal of Chemometrics, 11 (4), 339-366.

[2] Wentzell, PD et Lohnes, MT (1999). Analyse en composantes principales du maximum de vraisemblance avec erreurs de mesure corrélées: considérations théoriques et pratiques. Chemometrics and Intelligent Laboratory Systems, 45 (1-2), 65-85.

[3] Hoefsloot, HC, Verouden, député, Westerhuis, JA et Smilde, AK (2006). Mise à l'échelle de vraisemblance maximale (MALS). Journal of Chemometrics, 20 (3‐4), 120-127.

[4] Narasimhan, S. et Shah, SL (2008). Identification de modèle et estimation de la matrice de covariance d'erreur à partir de données bruitées à l'aide de PCA. Techniques de contrôle, 16 (1), 146-155.

[5] Tipping, ME et Bishop, CM (1999). Analyse probabiliste en composantes principales. Journal de la Société royale de statistique: Série B (Méthodologie statistique), 61 (3), 611-622.


-1

Droit et simple: si les balances sont similaires, utilisez cov-PCA, sinon corr-PCA; sinon, il vaut mieux avoir une défense pour ne pas. En cas de doute, utilisez un test F pour l’égalité des variances (ANOVA). Si le test F échoue, utilisez corr; sinon, utilisez cov.


2
-1. Je ne vois pas pourquoi l'exécution d'un test F pourrait être pertinente ici. La PCA est une méthode exploratoire, pas une méthode de confirmation (comme le sont les tests statistiques).
amibe

-5

Les arguments basés sur l'échelle (pour les variables exprimées dans les mêmes unités physiques) semblent plutôt faibles. Imaginez un ensemble de variables (sans dimension) dont les écarts-types varient entre 0,001 et 0,1. Comparées à une valeur standardisée de 1, elles semblent toutes les deux être de «faibles» et comparables niveaux de fluctuations. Cependant, lorsque vous les exprimez en décibels, cela donne une plage de -60 dB contre -10 et 0 dB, respectivement. Ceci serait alors probablement classé dans la catégorie "grande plage", en particulier si vous incluez un écart type proche de 0, c'est-à-dire moins l'infini dB.

Ma suggestion serait de faire À LA FOIS une ACP basée sur la corrélation et la covariance. Si les deux donnent le même (ou très semblable, quoi que cela puisse dire), vous pouvez être rassuré que vous avez une réponse qui a du sens. S'ils donnent des PC très différents, n'utilisez pas PCA, car deux réponses différentes à un problème ne constituent pas un moyen judicieux de résoudre des questions.


9
(-1) Obtenir «deux réponses différentes au même problème» signifie souvent que vous vous en sortez aveuglément sans penser à la technique appropriée à vos objectifs analytiques. Cela ne signifie pas qu’une ou (comme vous le dites) les deux techniques ne sont pas judicieuses, mais qu’au moins une peut ne pas être appropriée au problème ou aux données. En outre, dans de nombreux cas , vous pouvez prévoir que l' APC à base de covariance et PCA corrélation basée devraient donner des réponses différentes. Après tout, ils mesurent différents aspects des données. Faire les deux par défaut n'aurait aucun sens.
whuber

En fait, il est très raisonnable d’obtenir 2 réponses différentes lorsqu’on utilise PCA avec corrélation et covariance. Dans le cas des actions, la question est de savoir si vous devez prendre en compte les bêtas (ou les écarts types)
Juancentro
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.