PCA en correlación o covarianza?

153

¿Cuáles son las principales diferencias entre realizar el análisis de componentes principales (PCA) en la matriz de correlación y en la matriz de covarianza? ¿Dan los mismos resultados?

Aleatorio
fuente
2
Una respuesta tardía, pero puede encontrar folletos MUY útiles sobre análisis de datos multivariados "a la francesa" en el departamento de Bioinformática de Lyon. Estos provienen de los autores del paquete R ade4 . Sin embargo, está en francés.
chl
3
Para una discusión adicional, visite stats.stackexchange.com/questions/62677/… .
whuber

Respuestas:

130

Tiende a utilizar la matriz de covarianza cuando las escalas variables son similares y la matriz de correlación cuando las variables están en escalas diferentes.

Usar la matriz de correlación es equivalente a estandarizar cada una de las variables (para significar 0 y la desviación estándar 1). En general, PCA con y sin estandarización dará resultados diferentes. Especialmente cuando las escalas son diferentes.

Como ejemplo, eche un vistazo a este heptathlonconjunto de datos R. Algunas de las variables tienen un valor promedio de aproximadamente 1.8 (el salto de altura), mientras que otras variables (corren 800m) son alrededor de 120.

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

Esto produce:

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

Ahora hagamos PCA en covarianza y correlación:

# 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 sobre correlación o covarianza

Observe que PCA en covarianza está dominado por run800my javelin: PC1 es casi igual a run800m(y explica el de la varianza) y PC2 es casi igual a (juntos explican ). El PCA sobre correlación es mucho más informativo y revela cierta estructura en los datos y las relaciones entre las variables (pero tenga en cuenta que las variaciones explicadas caen a y ).82%97 % 64 % 71 %javelin97%64%71%

Observe también que los individuos periféricos (en este conjunto de datos) son atípicos independientemente de si se utiliza la matriz de covarianza o correlación.

csgillespie
fuente
¿Cuál es la situación si convierto las variables a puntajes z primero?
Jirka-x1
99
@ Jirka-x1 la matriz de covarianza de variables estandarizadas (es decir, puntajes z ) es igual a la matriz de correlación.
Alexis
@ Alexis ¿Por lo tanto, se puede inferir que la matriz de covarianza de las variables estandarizadas es igual a la matriz de correlación de las variables estandarizadas?
jb
1
@JamieBullock (matriz de covarianza) para datos estandarizados = (matriz de correlación). si los datos están estandarizados o no (la correlación es insensible a las transformaciones lineales de los datos. Entonces, por ejemplo, si tiene e y se correlacionan con , entonces si y y también se correlacionan con ). ΣRR=RXYrXYX=aX+bY=aY+b XYrXY
Alexis
Un aviso importante: cuando use la covarianza en su PCA, sus PC no estarán correlacionadas entre sí, lo que no es válido para PCA basado en correlación. Esto es especialmente importante cuando se intenta realizar PCA antes de la regresión en un conjunto multicolineal de variables explicativas. Sin embargo, la teoría detrás de esto no está clara. ¿Alguien podría arrojar algo de luz sobre esta diferencia?
ouranos
54

Bernard Flury, en su excelente libro que presenta el análisis multivariado, describió esto como una anti-propiedad de los componentes principales. En realidad es peor que elegir entre correlación o covarianza. Si cambió las unidades (por ejemplo, galones de estilo estadounidense, pulgadas, etc. y litros de estilo europeo, centímetros) obtendrá proyecciones sustancialmente diferentes de los datos.

El argumento contra el uso automático de matrices de correlación es que es una forma bastante brutal de estandarizar sus datos. El problema con el uso automático de la matriz de covarianza, que es muy evidente con los datos de heptathalon, es que las variables con la varianza más alta dominarán el primer componente principal (la propiedad de maximización de la varianza).

Entonces, el "mejor" método para usar se basa en una elección subjetiva, un pensamiento cuidadoso y cierta experiencia.

Paul Hewson
fuente
46

DATOS NO TRANSFORMADOS (SIN PROCESAR): si tiene variables con escalas muy variables para datos sin procesar, sin transformar, es decir, ingesta calórica por día, expresión génica, ELISA / Luminex en unidades de ug / dl, ng / dl, en función de varios órdenes de magnitud de la expresión de proteínas, luego use la correlación como entrada para PCA. Sin embargo, si todos sus datos se basan, por ejemplo, en la expresión génica de la misma plataforma con un rango y escala similares, o si está trabajando con retornos de activos de patrimonio logarítmico, entonces el uso de la correlación arrojará una enorme cantidad de información.

En realidad, no necesita pensar en la diferencia de usar la matriz de correlación o la matriz de covarianza como una entrada para PCA, sino más bien, observe los valores diagonales de y . Puede observar una varianza de para una variable y en otra, que están en la diagonal de . Pero cuando se observan las correlaciones, la diagonal contiene todas, por lo que la varianza de cada variable cambia esencialmente a medida que utiliza la matriz .RCCR10010C1R

DATOS TRANSFORMADOS: Si los datos se han transformado a través de la normalización, los percentiles o la estandarización de media cero (es decir, puntajes ), de modo que el rango y la escala de todas las variables continuas sean las mismas, entonces podría usar la matriz de covarianza sin ningún problema. (la correlación significará cero-estandarizar variables). Sin embargo, recuerde que estas transformaciones no eliminarán el sesgo (es decir, las colas izquierda o derecha en los histogramas) en sus variables antes de ejecutar PCA . El análisis típico de PCA no implica la eliminación de la asimetría; sin embargo, algunos lectores pueden necesitar eliminar la asimetría para cumplir con estrictas restricciones de normalidad.ZC

En resumen, use la matriz de correlación cuando el rango y la escala dentro de las variables difieran ampliamente, y use la matriz de covarianza para preservar la varianza si el rango y la escala de las variables son similares o están en las mismas unidades de medida.RC

VARIABLES CON SKEWED: Si alguna de las variables está sesgada con colas izquierda o derecha en sus histogramas, es decir, la prueba de normalidad de Shapiro-Wilk o Lilliefors es significativa , entonces puede haber algunos problemas si necesita aplicar la normalidad suposición. En este caso, use los puntajes de van der Waerden (transformaciones) determinados a partir de cada variable. El puntaje de van der Waerden (VDW) para una sola observación es simplemente el mapeo normal acumulativo inverso (estándar) del valor de percentil de la observación. Por ejemplo, supongamos que tiene observaciones para una variable continua, puede determinar los puntajes VDW usando:(P<0.05)n=100

  1. Primero, clasifique los valores en orden ascendente, luego asigne rangos, para obtener rangos deRi=1,2,,100.
  2. Luego, determine el percentil para cada observación como . pcti=Ri/(n+1)
  3. Una vez que se obtienen los valores de percentil, ingréselos en la función de mapeo inverso para el CDF de la distribución normal estándar, es decir, , para obtener el puntaje para cada uno, usando . N(0,1)ZZi=Φ1(pcti)

Por ejemplo, si conecta un valor de 0.025, obtendrá . Lo mismo ocurre con un valor de complemento de , obtendrá . pcti1.96=Φ1(0.025)pcti=0.9751.96=Φ1(0.975)

El uso de puntajes VDW es muy popular en genética, donde muchas variables se transforman en puntajes VDW y luego se ingresan en los análisis. La ventaja de usar los puntajes VDW es que la asimetría y los efectos atípicos se eliminan de los datos, y se pueden usar si el objetivo es realizar un análisis bajo las restricciones de la normalidad, y cada variable debe ser puramente normal distribuida sin asimetría. o valores atípicos.

JoleT
fuente
77
Esta es, con mucho, la respuesta más sensata aquí, ya que en realidad da una visión adecuada de que la covarianza gana cuando es apropiado. Demasiadas respuestas aquí y en otros lugares mencionan el habitual "depende" sin dar una base sólida de por qué uno debería preferir la covarianza si es posible . Aquí lep sí: la covarianza no arroja nada de la información que sí hace la correlación. El ejemplo de datos de existencias es bueno: las existencias altas de beta, por supuesto, tendrán mayores cargas, pero probablemente deberían , al igual que cualquier faceta de cualquier análisis que sea más volátil, generalmente es más interesante (dentro de lo razonable).
Thomas Browne
3
Por supuesto, el problema en cuestión debe analizarse para determinar si una mayor varianza es una faceta interesante del análisis. Si no es así, entonces, por supuesto, Correl es mejor, y eso definitivamente vale si las unidades son diferentes.
Thomas Browne
Gran respuesta +1. Supongo que un ejemplo más podría ser la aplicación de PCA para el análisis de la estructura a plazo sobre los rendimientos de los bonos en las finanzas. Las variaciones de los rendimientos en los diversos vencimientos varían, pero dado que todos son rendimientos, las escalas variables normalmente no son inaceptablemente amplias. De hecho, más / menos volatilidad de cierto rendimiento de vencimiento en sí mismo proporciona información rica.
Nicholas
11

Una respuesta común es sugerir que la covarianza se usa cuando las variables están en la misma escala y la correlación cuando sus escalas son diferentes. Sin embargo, esto solo es cierto cuando la escala de las variables no es un factor. De lo contrario, ¿por qué alguien haría una PCA de covarianza? Sería más seguro realizar siempre la correlación PCA.

Imagine que sus variables tienen diferentes unidades de medida, como metros y kilogramos. No debería importar si usa metros o centímetros en este caso, por lo que podría argumentar que se debe usar la matriz de correlación.

Considere ahora la población de personas en diferentes estados. Las unidades de medida son las mismas: recuentos (número) de personas. Ahora, las escalas podrían ser diferentes: DC tiene 600K y CA - 38M de personas. ¿Deberíamos usar la matriz de correlación aquí? Depende. En algunas aplicaciones, queremos ajustar el tamaño del estado. Usar la matriz de covarianza es una forma de construir factores que tengan en cuenta el tamaño del estado.

Por lo tanto, mi respuesta es usar una matriz de covarianza cuando la varianza de la variable original es importante, y usar correlación cuando no lo es.

Aksakal
fuente
2

Personalmente, considero muy valioso discutir estas opciones a la luz del modelo de análisis de componentes principales de máxima probabilidad (MLPCA) [1,2]. En MLPCA se aplica una escala (o incluso una rotación) de modo que los errores de medición en las variables medidas son independientes y se distribuyen de acuerdo con la distribución normal estándar. Esta escala también se conoce como escala de máxima verosimilitud (MALS) [3]. En algunos casos, el modelo PCA y el parámetro que define la escala / rotación MALS se pueden estimar juntos [4].

Para interpretar la PCA basada en correlación y en covarianza, se puede argumentar que:

  1. El PCA basado en covarianza es equivalente a MLPCA siempre que la matriz de varianza-covarianza de los errores de medición se asume diagonalmente con elementos iguales en su diagonal. El parámetro de varianza del error de medición se puede estimar aplicando el modelo de análisis probabilístico de componentes principales (PPCA) [5]. Considero que es una suposición razonable en varios casos que he estudiado, específicamente cuando todas las mediciones son del mismo tipo de variable (por ejemplo, todos los flujos, todas las temperaturas, todas las concentraciones o todas las mediciones de absorbancia). De hecho, puede ser seguro asumir que los errores de medición para tales variables se distribuyen de forma independiente e idéntica.
  2. La PCA basada en correlación es equivalente a MLPCA siempre que la matriz de varianza-covarianza de los errores de medición se asume diagonalmente con cada elemento en la diagonal proporcional a la varianza general de la variable medida correspondiente. Si bien este es un método popular, personalmente considero que el supuesto de proporcionalidad no es razonable en la mayoría de los casos que estudio. Como consecuencia, esto significa que no puedo interpretar la PCA basada en correlación como un modelo MLPCA. En los casos en que (1) los supuestos implícitos de PCA basado en covarianza no se aplican y (2) una interpretación MLPCA es valiosa, recomiendo utilizar uno de los métodos MLPCA en su lugar [1-4].
  3. El PCA basado en correlación y en covarianza producirá exactamente los mismos resultados, además de un multiplicador escalar, cuando las varianzas individuales para cada variable son exactamente iguales entre sí. Cuando estas variaciones individuales son similares pero no iguales, ambos métodos producirán resultados similares.

Como ya se destacó anteriormente, la elección final depende de los supuestos que esté haciendo. Además, la utilidad de cualquier modelo en particular depende también del contexto y el propósito de su análisis. Para citar a George EP Box: "Todos los modelos están equivocados, pero algunos son útiles".

[1] Wentzell, PD, Andrews, DT, Hamilton, DC, Faber, K. y Kowalski, BR (1997). Análisis de máxima probabilidad del componente principal. Journal of Chemometrics, 11 (4), 339-366.

[2] Wentzell, PD y Lohnes, MT (1999). Análisis de máxima probabilidad del componente principal con errores de medición correlacionados: consideraciones teóricas y prácticas. Quimiometría y sistemas inteligentes de laboratorio, 45 (1-2), 65-85.

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

[4] Narasimhan, S. y Shah, SL (2008). Identificación del modelo y estimación de matriz de covarianza de error a partir de datos ruidosos utilizando PCA. Práctica de ingeniería de control, 16 (1), 146-155.

[5] Tipping, ME y Bishop, CM (1999). Análisis probabilístico de componentes principales. Revista de la Royal Statistical Society: Serie B (Metodología estadística), 61 (3), 611-622.

Kris Villez
fuente
-1

Recto y simple: si las escalas son similares, use cov-PCA; si no, use corr-PCA; de lo contrario, es mejor tener una defensa para no. En caso de duda, utilice una prueba F para la igualdad de las variaciones (ANOVA). Si no pasa la prueba F, use corr; de lo contrario, use cov.

Pierna de oso
fuente
2
-1. No veo por qué ejecutar una prueba F podría ser relevante aquí. La PCA es un método exploratorio, no confirmatorio (como lo son las pruebas estadísticas).
ameba
-5

Los argumentos basados ​​en la escala (para variables expresadas en las mismas unidades físicas) parecen bastante débiles. Imagine un conjunto de variables (adimensionales) cuyas desviaciones estándar varían entre 0.001 y 0.1. En comparación con un valor estandarizado de 1, ambos parecen ser niveles de fluctuaciones "pequeños" y comparables. Sin embargo, cuando los expresa en decibelios, esto proporciona un rango de -60 dB contra -10 y 0 dB, respectivamente. Entonces esto probablemente se clasificaría como un 'rango grande', especialmente si se incluye una desviación estándar cercana a 0, es decir, menos dB infinito.

Mi sugerencia sería hacer AMBOS un PCA basado en correlación y covarianza. Si los dos dan las mismas (o muy similares, lo que sea que esto signifique) PC, entonces puede estar seguro de que tiene una respuesta que es significativa. Si dan PC muy diferentes, no use PCA, porque dos respuestas diferentes a un problema no son una forma sensata de resolver preguntas.

Lucozade
fuente
99
(-1) Obtener "dos respuestas diferentes para el mismo problema" a menudo solo significa que estás atacando sin pensar sin pensar en qué técnica es apropiada para tus objetivos analíticos. No significa que una o (como usted dice) ambas técnicas no sean razonables, sino que al menos una podría no ser apropiada para el problema o los datos. Además, en muchos casos puede anticipar que la PCA basada en covarianza y la PCA basada en correlación deberían dar diferentes respuestas. Después de todo, están midiendo diferentes aspectos de los datos. Hacer ambas cosas por defecto no tendría sentido.
whuber
En realidad, es muy razonable obtener 2 respuestas diferentes cuando se usa PCA con correlación y covarianza. En el caso de las acciones, se trata de si debe tener en cuenta las betas (o la desviación estándar)
Juancentro