PCA em correlação ou covariância?


153

Quais são as principais diferenças entre realizar a análise de componentes principais (PCA) na matriz de correlação e na matriz de covariância? Eles dão os mesmos resultados?


2
Uma resposta tardia, mas você pode encontrar folhetos MUITO úteis na análise de dados multivariada "à la française" no departamento de Bioinformática de Lyon. Estes vêm dos autores do pacote R ade4 . É em francês, no entanto.
chl

3
Para discussões adicionais, visite stats.stackexchange.com/questions/62677/… .
whuber

Respostas:


130

Você tende a usar a matriz de covariância quando as escalas de variáveis ​​são semelhantes e a matriz de correlação quando as variáveis ​​estão em escalas diferentes.

O uso da matriz de correlação equivale a padronizar cada uma das variáveis ​​(média 0 e desvio padrão 1). Em geral, o PCA com e sem padronização fornecerá resultados diferentes. Especialmente quando as escalas são diferentes.

Como um exemplo, dê uma olhada neste heptathlonconjunto de dados R. Algumas das variáveis ​​têm um valor médio de cerca de 1,8 (salto em altura), enquanto outras (corridas 800m) são cerca de 120.

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

Isso gera:

                   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
...

Agora vamos fazer o PCA em covariância e correlação:

# 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 na correlação ou covariância

Observe que o PCA na covariância é dominado por run800me javelin: PC1 é quase igual a run800m(e explica da variação) e PC2 é quase igual a (juntos eles explicam ). O PCA na correlação é muito mais informativo e revela alguma estrutura nos dados e relacionamentos entre variáveis ​​(mas observe que as variações explicadas caem para e ).82%javelin97%64 % 71 %64%71%

Observe também que os indivíduos periféricos ( neste conjunto de dados) são discrepantes, independentemente de a matriz de covariância ou correlação ser usada.


Qual é a situação, se eu converter as variáveis ​​em z-scores primeiro?
Jirka-x1

9
@ Jirka-x1 a matriz de covariância de variáveis ​​padronizadas (isto é, escores z ) é igual à matriz de correlação.
Alexis2

@ Alexis Portanto, pode-se inferir que a matriz de covariância de variáveis ​​padronizadas é igual à matriz de correlação de variáveis ​​padronizadas?
jb

1
@JamieBullock (matriz de covariância) para dados padronizados = (matriz de correlação). independentemente de os dados serem padronizados (a correlação é insensível às transformações lineares dos dados. Por exemplo, se você tem e e eles se correlacionam com , se e e também se correlacionam com ). R R = R X Y r X Y X = a X + b Y = a Y + b X Y r X YΣRR=RXYrXYX=aX+bY=aY+b XYrXY
Alexis

Um aviso importante: ao usar a covariância em seu PCA, seus PCs não serão correlacionados entre si, o que não é válido para o PCA baseado em correlação. Isso é especialmente importante quando se pretende executar PCA antes da regressão em um conjunto multicolinear de variáveis ​​explicativas. No entanto, a teoria por trás disso não é clara. Alguém poderia lançar alguma luz sobre essa diferença?
Ouranos #

54

Bernard Flury, em seu excelente livro que introduz a análise multivariada, descreveu isso como uma antipropriedade dos componentes principais. Na verdade, é pior do que escolher entre correlação ou covariância. Se você alterou as unidades (por exemplo, galões no estilo dos EUA, polegadas, etc. e litros no estilo da UE, centímetros), obterá projeções substancialmente diferentes dos dados.

O argumento contra o uso automático de matrizes de correlação é que é uma maneira bastante brutal de padronizar seus dados. O problema com o uso automático da matriz de covariância, que é muito aparente com os dados do heptathalon, é que as variáveis ​​com a variação mais alta dominam o primeiro componente principal (a propriedade de maximização da variação).

Portanto, o "melhor" método a ser usado é baseado em uma escolha subjetiva, em um pensamento cuidadoso e em alguma experiência.


46

DADOS NÃO TRANSFORMADOS (RAW): se você tiver variáveis ​​com escalas amplamente variadas para dados brutos não transformados, ou seja, ingestão calórica por dia, expressão gênica, ELISA / Luminex em unidades de ug / dl, ng / dl, com base em várias ordens de magnitude da expressão da proteína, use a correlação como uma entrada para o PCA. No entanto, se todos os seus dados forem baseados, por exemplo, na expressão de genes da mesma plataforma com escala e escala semelhantes, ou se você estiver trabalhando com retornos de ativos de patrimônio de log, o uso da correlação gerará uma quantidade enorme de informações.

Na verdade, você não precisa pensar na diferença de usar a matriz de correlação ou matriz de covariância como uma entrada para o PCA; em vez disso, observe os valores diagonais de e . Você pode observar uma variação de para uma variável e em outra - que estão na diagonal de . Porém, ao observar as correlações, a diagonal contém todas, portanto a variação de cada variável é essencialmente alterada para conforme você usa a matriz .RCCR10010C1R

DADOS TRANSFORMADOS: se os dados tiverem sido transformados por normalização, percentis ou padronização média-zero (ou seja, escores), para que o intervalo e a escala de todas as variáveis ​​contínuas sejam os mesmos, você poderá usar a matriz Covariance sem problemas. (a correlação significará zero variáveis ​​padronizadas). Lembre-se, no entanto, de que essas transformações não removerão a assimetria (ou seja, caudas esquerda ou direita nos histogramas) em suas variáveis antes de executar o PCA . A análise típica do PCA não envolve a remoção da assimetria; no entanto, alguns leitores podem precisar remover a assimetria para atender a rígidas restrições de normalidade.ZC

Em resumo, use a matriz de correlação quando o intervalo e a escala dentro da variável diferirem amplamente e use a matriz de covariância para preservar a variação se o intervalo e a escala das variáveis ​​forem semelhantes ou nas mesmas unidades de a medida.RC

Variáveis ​​distorcidas : se alguma das variáveis ​​for distorcida com caudas esquerda ou direita em seus histogramas, ou seja, o teste de normalidade de Shapiro-Wilk ou Lilliefors for significativo , poderá haver alguns problemas se você precisar aplicar a normalidade suposição. Nesse caso, use as pontuações de van der Waerden (transformações) determinadas de cada variável. A pontuação de van der Waerden (VDW) para uma única observação é apenas o mapeamento normal cumulativo inverso (padrão) do valor percentual da observação. Por exemplo, digamos que você tenha observações para uma variável contínua, é possível determinar as pontuações do VDW usando:(P<0.05)n=100

  1. Primeiro, classifique os valores em ordem crescente, depois atribua classificações, para obter classificaçõesRi=1,2,,100.
  2. Em seguida, determine o percentil para cada observação como . pcti=Ri/(n+1)
  3. Uma vez obtidos os valores percentuais, insira-os na função de mapeamento inverso para o CDF da distribuição normal padrão, ou seja, , para obter o escore para cada um, usando . N(0,1)ZZi=Φ1(pcti)

Por exemplo, se você um valor 0,025, obterá . O mesmo vale para um valor de plug-in , você obterá . pcti1.96=Φ1(0.025)pcti=0.9751.96=Φ1(0.975)

O uso de pontuações VDW é muito popular na genética, onde muitas variáveis ​​são transformadas em pontuações VDW e depois inseridas em análises. A vantagem de usar as pontuações do VDW é que a distorção e os efeitos externos são removidos dos dados e podem ser usados ​​se o objetivo é realizar uma análise sob as restrições da normalidade - e todas as variáveis ​​precisam ser puramente padrão normal distribuídas sem distorção ou outliers.


7
Essa é de longe a resposta mais sensata aqui, pois na verdade fornece uma visão adequada de que a covariância vence quando apropriado. Muitas respostas aqui e em outros lugares mencionam o habitual "depende" sem realmente fornecer uma base sólida para o porquê de alguém preferir a covariância, se possível . Aqui o lep faz: a covariância não elimina nenhuma das informações que a correlação faz. O exemplo de dados de estoque é bom: é claro que estoques beta altos terão cargas mais altas, mas provavelmente devem , assim como qualquer aspecto de qualquer análise mais volátil é geralmente mais interessante (dentro do razoável).
Thomas Browne

3
É claro que o problema em questão deve ser analisado para determinar se a variação mais alta é ou não uma faceta interessante da análise. Caso contrário, é claro que a correlação é melhor, e isso definitivamente vale se as unidades forem diferentes.
Thomas Browne

Ótima resposta +1. Eu acho que mais um exemplo pode estar aplicando o PCA à análise da estrutura a termo sobre rendimentos de títulos em finanças. As variações de rendimentos em vencimentos variados variam, mas, como todos são rendimentos, as escalas variáveis ​​normalmente não são inaceitavelmente amplas. De fato, mais / menos volatilidade de certo rendimento de maturidade fornece informações ricas.
Nicholas

11

Uma resposta comum é sugerir que a covariância é usada quando as variáveis ​​estão na mesma escala e a correlação quando as escalas são diferentes. No entanto, isso só é verdade quando a escala das variáveis ​​não é um fator. Caso contrário, por que alguém faria covariância em PCA? Seria mais seguro sempre executar a correlação PCA.

Imagine que suas variáveis ​​tenham unidades de medida diferentes, como metros e quilogramas. Não importa se você usa metros ou centímetros nesse caso, para poder argumentar que a matriz de correlação deve ser usada.

Considere agora a população de pessoas em diferentes estados. As unidades de medida são as mesmas - contagens (número) de pessoas. Agora, as escalas podem ser diferentes: a DC possui 600K e CA - 38M. Devemos usar a matriz de correlação aqui? Depende. Em algumas aplicações, queremos ajustar o tamanho do estado. O uso da matriz de covariância é uma maneira de criar fatores responsáveis ​​pelo tamanho do estado.

Portanto, minha resposta é usar a matriz de covariância quando a variação da variável original é importante e usar a correlação quando não é.


2

Pessoalmente, acho muito valioso discutir essas opções à luz do modelo de análise de componentes principais de máxima verossimilhança (MLPCA) [1,2]. No MLPCA, aplica-se uma escala (ou mesmo uma rotação), de modo que os erros de medição nas variáveis ​​medidas sejam independentes e distribuídos de acordo com a distribuição normal padrão. Esse escalonamento também é conhecido como escalonamento de máxima verossimilhança (MALS) [3]. Em alguns casos, o modelo PCA e o parâmetro que define a escala / rotação do MALS podem ser estimados em conjunto [4].

Para interpretar o PCA baseado em correlação e covariância, pode-se argumentar que:

  1. O PCA baseado em covariância é equivalente ao MLPCA sempre que a matriz de variância-covariância dos erros de medição é assumida na diagonal com elementos iguais em sua diagonal. O parâmetro de variação do erro de medição pode então ser estimado aplicando o modelo probabilístico de análise de componentes principais (PPCA) [5]. Considero isso uma suposição razoável em vários casos que estudei, especificamente quando todas as medições são do mesmo tipo de variável (por exemplo, todos os fluxos, todas as temperaturas, todas as concentrações ou todas as medidas de absorvância). De fato, pode ser seguro supor que os erros de medição para essas variáveis ​​sejam distribuídos de forma independente e idêntica.
  2. O PCA baseado em correlação é equivalente ao MLPCA sempre que a matriz de variância-covariância dos erros de medição é assumida na diagonal com cada elemento na diagonal proporcional à variância geral da variável medida correspondente. Embora esse seja um método popular, eu pessoalmente considero a suposição de proporcionalidade irracional na maioria dos casos que estudo. Como conseqüência, isso significa que não posso interpretar o PCA baseado em correlação como um modelo MLPCA. Nos casos em que (1) as suposições implícitas do PCA baseado em covariância não se aplicam e (2) uma interpretação da MLPCA é valiosa, eu recomendo usar um dos métodos da MLPCA [1-4].
  3. O PCA baseado em correlação e covariância produzirá exatamente os mesmos resultados - a partir de um multiplicador escalar - quando as variações individuais de cada variável forem todas exatamente iguais. Quando essas variações individuais são semelhantes, mas não iguais, os dois métodos produzirão resultados semelhantes.

Como já foi enfatizado acima, a escolha final depende das suposições que você está fazendo. Além disso, a utilidade de qualquer modelo específico depende também do contexto e da finalidade da sua análise. Para citar George EP Box: "Todos os modelos estão errados, mas alguns são úteis".

[1] Wentzell, PD, Andrews, DT, Hamilton, DC, Faber, K. e Kowalski, BR (1997). Análise do componente principal de máxima verossimilhança. Journal of Chemometrics, 11 (4), 339-366.

[2] Wentzell, PD, e Lohnes, MT (1999). Análise de componentes principais de máxima verossimilhança com erros de medição correlacionados: considerações teóricas e práticas. Chemometrics and Intelligent Laboratory Systems, 45 (1-2), 65-85.

[3] Hoefsloot, HC, Verouden, MP, Westerhuis, JA, e Smilde, AK (2006). Escala de máxima verossimilhança (MALS). Journal of Chemometrics, 20 (3‐4), 120-127.

[4] Narasimhan, S., e Shah, SL (2008). Identificação do modelo e estimativa da matriz de covariância de erros a partir de dados ruidosos usando PCA. Prática de Engenharia de Controle, 16 (1), 146-155.

[5] Tipping, ME, e Bishop, CM (1999). Análise probabilística de componentes principais. Jornal da Sociedade Estatística Real: Série B (Metodologia Estatística), 61 (3), 611-622.


-1

Direto e simples: se as escalas forem semelhantes, use cov-PCA; se não, use corr-PCA; caso contrário, é melhor você ter uma defesa para não. Em caso de dúvida, use um teste F para a igualdade das variações (ANOVA). Se falhar no teste F, use corr; caso contrário, use cov.


2
-1. Não vejo por que executar um teste F pode ser relevante aqui. O PCA é um método exploratório, não confirmatório (como são os testes estatísticos).
Ameba

-5

Os argumentos baseados na escala (para variáveis ​​expressas nas mesmas unidades físicas) parecem bastante fracos. Imagine um conjunto de variáveis ​​(sem dimensão) cujos desvios padrão variam entre 0,001 e 0,1. Comparado a um valor padronizado de 1, ambos parecem ser 'pequenos' e níveis comparáveis ​​de flutuações. No entanto, quando você os expressa em decibéis, isso gera um intervalo de -60 dB contra -10 e 0 dB, respectivamente. Então isso provavelmente seria classificado como uma 'grande variedade' - especialmente se você incluir um desvio padrão próximo a 0, ou seja, menos infinito dB.

Minha sugestão seria fazer AMB um PCA baseado em correlação e covariância. Se os dois fornecerem os mesmos PCs (ou muito semelhantes, o que isso possa significar), você pode ter certeza de que tem uma resposta significativa. Se eles fornecem PCs amplamente diferentes, não usam o PCA, porque duas respostas diferentes para um problema não são uma maneira sensata de resolver perguntas.


9
(-1) Obter "duas respostas diferentes para o mesmo problema" geralmente significa que você está se esquecendo sem pensar, sem pensar em qual técnica é apropriada para seus objetivos analíticos. Isso não significa que uma ou (como você declara) ambas as técnicas não são sensatas, mas apenas que pelo menos uma pode não ser apropriada para o problema ou para os dados. Além disso, em muitos casos, você pode prever que o PCA baseado em covariância e o PCA baseado em correlação devem fornecer respostas diferentes. Afinal, eles estão medindo diferentes aspectos dos dados. Fazer as duas coisas por padrão não faria sentido.
whuber

Na verdade, é muito razoável obter 2 respostas diferentes ao usar o PCA com correlação e covariância. No caso de ações, é uma questão de se você deve tomar betas (ou desvio padrão) em conta
Juancentro
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.