209 votos

¿PCA sobre correlación o covarianza?

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

2 votos

Una respuesta tardía, pero puede encontrar folletos MUY útiles sobre el análisis de datos multivariados "à la française" en el Departamento de Bioinformática de Lyon. Estos provienen de los autores de la R ade4 paquete. Sin embargo, está en francés.

5 votos

Para más información, visite stats.stackexchange.com/questions/62677/ .

174voto

Eggs McLaren Puntos 945

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

La utilización de la matriz de correlación equivale a estandarizar cada una de las variables (a media 0 y desviación estándar 1). En general, el ACP con y sin estandarización dará resultados diferentes. Especialmente cuando las escalas son diferentes.

A modo de ejemplo, vea esta R heptathlon conjunto de datos. Algunas de las variables tienen un valor medio de aproximadamente 1,8 (el salto de altura), mientras que otras variables (correr 800 metros) rondan los 120.

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

Estas salidas:

                   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 el PCA sobre la covarianza y sobre la 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 on correlation or covariance

Obsérvese que el ACP sobre la covarianza está dominado por run800m y javelin : PC1 es casi igual a run800m (y explica $82\%$ de la varianza) y PC2 es casi igual a javelin (juntos explican $97\%$ ). El PCA sobre la correlación es mucho más informativo y revela cierta estructura en los datos y las relaciones entre las variables (pero nótese que las varianzas explicadas caen a $64\%$ y $71\%$ ).

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

0 votos

¿Cuál es la situación si primero convierto las variables en puntuaciones z?

15 votos

@Jirka-x1 la matriz de covarianza de las variables estandarizadas (es decir z puntuaciones) es igual a la matriz de correlación.

0 votos

@Alexis ¿Se puede deducir entonces que la matriz de covarianza de las variables estandarizadas es igual a la matriz de correlación de las variables estandarizadas?

62voto

jhornnes Puntos 1211

Bernard Flury, en su excelente libro de introducción al análisis multivariante, describió esto como una antipropiedad de los componentes principales. En realidad es peor que elegir entre correlación o covarianza. Si se cambian las unidades (por ejemplo, galones, pulgadas, etc. al estilo de EE.UU. y litros, centímetros al estilo de la UE) se obtendrán proyecciones de los datos sustancialmente diferentes.

El argumento en contra del uso automático de las matrices de correlación es que es una forma bastante brutal de normalizar los datos. El problema de utilizar automáticamente la matriz de covarianza, que es muy evidente con esos datos del heptathalon, es que las variables con la mayor varianza dominarán el primer componente principal (la propiedad de maximización de la varianza).

Así que el "mejor" método a utilizar se basa en una elección subjetiva, una cuidadosa reflexión y algo de experiencia.

2 votos

"Si se cambian las unidades (por ejemplo, galones, pulgadas, etc. al estilo de EE.UU. y litros, centímetros al estilo de la UE) se obtendrán proyecciones de los datos sustancialmente diferentes". Esto es falso si se utiliza la matriz de correlación $\mathbf{R}$ y trivialmente fácil de demostrar. Cuando se utiliza la matriz de covarianza, también es cierto sólo para los valores propios, pero no para los vectores propios.

56voto

lep Puntos 131

DATOS NO TRANSFORMADOS (EN BRUTO): Si usted tiene variables con escalas muy variadas para los datos crudos, no transformados, es decir, la ingesta calórica por día, la expresión génica, ELISA/Luminex en unidades de ug/dl, ng/dl, basado en varios órdenes de magnitud de la expresión de la proteína, a continuación, utilizar la correlación como una entrada a 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 una escala similares, o si está trabajando con rendimientos de activos de renta variable logarítmica, entonces el uso de la correlación arrojará una enorme cantidad de información.

En realidad no es necesario pensar en la diferencia de utilizar la matriz de correlación $\mathbf{R}$ o la matriz de covarianza $\mathbf{C}$ como entrada al PCA, sino que se miran los valores diagonales de $\mathbf{C}$ y $\mathbf{R}$ . Se puede observar una variación de $100$ para una variable, y $10$ en otro -- que están en la diagonal de $\mathbf{C}$ . Pero al mirar las correlaciones, la diagonal contiene todos los unos, por lo que la varianza de cada variable se cambia esencialmente a $1$ al utilizar el $\mathbf{R}$ matriz.

DATOS TRANSFORMADOS: Si los datos han sido transformados a través de la normalización, los percentiles o la estandarización de la media a cero (es decir, $Z$ -scores), de modo que el rango y la escala de todas las variables continuas sea el mismo, entonces se podría utilizar la matriz de covarianza $\mathbf{C}$ sin ningún problema. (la correlación significará que las variables se estandarizan en cero). Recuerde, sin embargo, que estas transformaciones no eliminarán la asimetría (es decir, las colas izquierda o derecha en los histogramas) en sus variables antes de ejecutar el PCA . El análisis PCA típico no implica la eliminación de la asimetría; sin embargo, algunos lectores pueden necesitar eliminar la asimetría para cumplir con las estrictas restricciones de normalidad.

En resumen, utilice la matriz de correlación $\mathbf{R}$ cuando el rango y la escala dentro de las variables difieren ampliamente, y utilizar la matriz de covarianza $\mathbf{C}$ para preservar la varianza si el rango y la escala de las variables es similar o en las mismas unidades de medida.

VARIABLES ASIMÉTRICAS: Si alguna de las variables está sesgada con colas izquierdas o derechas en sus histogramas, es decir, la prueba de normalidad de Shapiro-Wilk o Lilliefors es significativa $(P<0.05)$ entonces puede haber algunos problemas si necesita aplicar el supuesto de normalidad. En este caso, utilice las puntuaciones de van der Waerden (transformaciones) determinadas de cada variable. La puntuación de van der Waerden (VDW) para una sola observación no es más que el mapa normal acumulativo inverso (estándar) del valor del percentil de la observación. Por ejemplo, supongamos que tenemos $n=100$ observaciones para una variable continua, puede determinar las puntuaciones VDW utilizando:

  1. En primer lugar, ordene los valores en orden ascendente y, a continuación, asigne rangos, de modo que obtendrá rangos de $R_i=1,2,\ldots,100.$
  2. A continuación, determine el percentil de cada observación como $pct_i=R_i/(n+1)$ .
  3. Una vez obtenidos los valores de los percentiles, introdúzcalos en la función de asignación inversa para la FCD de la distribución normal estándar, es decir $N(0,1)$ para obtener el $Z$ -para cada uno, utilizando $Z_i=\Phi^{-1}(pct_i)$ .

Por ejemplo, si se conecta un $pct_i$ valor 0,025, obtendrá $-1.96=\Phi^{-1}(0.025)$ . Lo mismo ocurre con un valor de plugin de $pct_i=0.975$ , obtendrá $1.96=\Phi^{-1}(0.975)$ .

El uso de las puntuaciones VDW es muy popular en genética, donde muchas variables se transforman en puntuaciones VDW y luego se introducen en los análisis. La ventaja de utilizar las puntuaciones VDW es que los efectos de asimetría y de valores atípicos se eliminan de los datos, y pueden utilizarse si el objetivo es realizar un análisis bajo las restricciones de la normalidad, y cada variable debe tener una distribución puramente normal, sin asimetría ni valores atípicos.

7 votos

Esta es, con mucho, la respuesta más sensata en este caso, ya que realmente da una visión adecuada de que la covarianza gana cuando es apropiada. Demasiadas respuestas aquí y en otros lugares mencionan el habitual "depende" sin dar realmente una base sólida de por qué uno debería preferir la covarianza si es posible . En este caso, la lep lo hace: la covarianza no excluye la información que la correlación sí. El ejemplo de los datos de las acciones es bueno: las acciones de alta beta tendrán, por supuesto, cargas más altas, pero probablemente debe Como cualquier faceta de cualquier análisis que sea más volátil suele ser más interesante (dentro de lo razonable).

4 votos

Por supuesto, hay que analizar el problema en cuestión para ver si la mayor varianza es o no una faceta interesante del análisis. Si no lo es, entonces, por supuesto, la correlación es mejor, y eso es definitivamente válido si las unidades son diferentes.

0 votos

Gran respuesta +1. Supongo que un ejemplo más podría ser la aplicación del ACP al análisis de la estructura temporal de los rendimientos de los bonos en las finanzas. Las varianzas de los rendimientos de distintos vencimientos varían, pero como todos son rendimientos, las escalas de variación no suelen ser inaceptablemente amplias. De hecho, la mayor o menor volatilidad del rendimiento de un determinado vencimiento proporciona en sí misma una rica información.

33voto

Aksakal Puntos 11351

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

Imagina que tus variables tienen diferentes unidades de medida, como metros y kilogramos. En este caso no debería importar si se utilizan metros o centímetros, por lo que se podría argumentar que se debería utilizar la matriz de correlación.

Considere ahora la población de personas en diferentes estados. Las unidades de medida son las mismas: el número de personas. Ahora bien, las escalas pueden ser diferentes: DC tiene 600K y CA - 38M personas. ¿Debemos utilizar la matriz de correlación? Depende. En algunas aplicaciones queremos ajustar el tamaño del estado. El uso de 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 utilizar la matriz de covarianza cuando la varianza de la variable original es importante, y utilizar la correlación cuando no lo es.

-2voto

Bear Leg Puntos 1

Directo y simple: si las escalas son similares, use cov-PCA, si no, use corr-PCA; de lo contrario, más vale que tenga una defensa para no hacerlo. En caso de duda, utilice una prueba F para la igualdad de las varianzas (ANOVA). Si falla la prueba F, use corr; de lo contrario, use cov.

2 votos

-1. No veo por qué ejecutar una prueba F podría ser relevante aquí. El ACP es un método exploratorio, no confirmatorio (como las pruebas estadísticas).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X