¿Cuál es la diferencia entre "cargas" y "cargas de correlación" en PCA y PLS?

11

Una cosa común que se debe hacer al hacer el Análisis de componentes principales (PCA) es trazar dos cargas entre sí para investigar las relaciones entre las variables. En el documento que acompaña al paquete PLS R para hacer la regresión de componentes principales y la regresión PLS, hay un gráfico diferente, llamado gráfico de cargas de correlación (consulte la figura 7 y la página 15 en el documento). La carga de correlación , como se explica, es la correlación entre los puntajes (del PCA o PLS) y los datos reales observados.

Me parece que las cargas y las cargas de correlación son bastante similares, excepto que su escala es un poco diferente. Un ejemplo reproducible en R, con el conjunto de datos integrado mtcars es el siguiente:

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')

diagrama de carga correlationloadinsplot

¿Cuál es la diferencia en la interpretación de estas tramas? ¿Y qué trama (si hay alguna) es la mejor para usar en la práctica?

usuario1593755
fuente
para una mejor vista de la pca, use biplot (pca), le muestra la carga y las puntuaciones de la pca y así puede interpretarla mejor.
Paul
66
R prcompEl paquete llama imprudentemente a los vectores propios "cargas". Me consejos para mantener estos términos se separan. Las cargas son vectores propios escalados a los valores propios respectivos.
ttnphns
1
Explicando la geometría de un diagrama de carga: stats.stackexchange.com/a/119758/3277
ttnphns

Respuestas:

13

Advertencia: Rutiliza el término "cargas" de manera confusa. Lo explico a continuación.

Considere el conjunto de datos con variables (centradas) en columnas y puntos de datos en filas. Realizar PCA de este conjunto de datos equivale a una descomposición de valores singulares . Las columnas de son componentes principales ("puntajes" de PC) y las columnas de son ejes principales. La matriz de covarianza está dada por , por lo que los ejes principales son vectores propios de la matriz de covarianza.XNX=USVUSV1N1XX=VS2N1VV

Las "cargas" se definen como columnas de , es decir, son vectores propios escalados por las raíces cuadradas de los respectivos valores propios. ¡Son diferentes de los vectores propios! Vea mi respuesta aquí para la motivación.L=VSN1

Usando este formalismo, podemos calcular la matriz de covarianza cruzada entre las variables originales y las PC estandarizadas: es decir, está dado por cargas. La matriz de correlación cruzada entre variables originales y PC está dada por la misma expresión dividida por las desviaciones estándar de las variables originales (por definición de correlación). Si las variables originales se estandarizaron antes de realizar PCA (es decir, PCA se realizó en la matriz de correlación), todas son iguales a . En este último caso, la matriz de correlación cruzada nuevamente viene dada simplemente por .

1N1X(N1U)=1N1VSUU=1N1VS=L,
1L

Para aclarar la confusión terminológica: lo que el paquete R llama "cargas" son ejes principales, y lo que llama "cargas de correlación" son (para PCA realizadas en la matriz de correlación) de hecho cargas. Como te diste cuenta, solo difieren en la escala. Lo que es mejor trazar, depende de lo que quieras ver. Considere un siguiente ejemplo simple:

Biplots

La subparcela izquierda muestra un conjunto de datos 2D estandarizado (cada variable tiene varianza unitaria), estirada a lo largo de la diagonal principal. La subtrama intermedia es un biplot : es un diagrama de dispersión de PC1 frente a PC2 (en este caso, simplemente el conjunto de datos girado 45 grados) con filas de trazadas en la parte superior como vectores. Tenga en cuenta que y vectores son separados 90 grados; Te dicen cómo están orientados los ejes originales. La subtrama derecha es el mismo biplot, pero ahora los vectores muestran filas de . Tenga en cuenta que ahora los vectores e tienen un ángulo agudo entre ellos; te dicen cuántas variables originales están correlacionadas con las PC, y tanto como x y L x y x yVxyLxyxyson mucho más fuertes correlacionados con PC1 que con PC2. Yo supongo que la mayoría de la gente lo más a menudo prefieren ver el tipo de biplots.

Nótese que en ambos casos las dos y vectores tienen unidad de longitud. Esto sucedió solo porque el conjunto de datos era 2D para comenzar; en caso de que haya más variables, los vectores individuales pueden tener una longitud inferior a , pero nunca pueden alcanzar fuera del círculo unitario. Prueba de este hecho lo dejo como ejercicio.y 1xy1

Veamos ahora otra vez el conjunto de datos mtcars . Aquí hay un biplot del PCA realizado en la matriz de correlación:

mtcars pca biplot

Las líneas negras se trazan usando , las líneas rojas se trazan usando .LVL

Y aquí hay un biplot del PCA realizado en la matriz de covarianza:

mtcars pca biplot

Aquí escalé todos los vectores y el círculo unitario en , porque de lo contrario no sería visible (es un truco de uso común). Nuevamente, las líneas negras muestran filas de , y las líneas rojas muestran correlaciones entre variables y PC (que ya no son dadas por , ver arriba). Tenga en cuenta que solo dos líneas negras son visibles; Esto se debe a que dos variables tienen una varianza muy alta y dominan el conjunto de datos mtcars . Por otro lado, se pueden ver todas las líneas rojas. Ambas representaciones transmiten información útil.V L100VL

PD Hay muchas variantes diferentes de biplots PCA, vea mi respuesta aquí para obtener más explicaciones y una descripción general: Posicionar las flechas en un biplot PCA . El biplot más bonito jamás publicado en CrossValidated se puede encontrar aquí .

ameba dice reinstalar Monica
fuente
2
Aunque esta es una muy buena respuesta (+1), tiene una debilidad didáctica, ya que inicialmente coloca las variables en filas de X, no en columnas de X, como tradicionalmente iría en conjuntos de datos / ejemplos estadísticos. Debido a esa transposición, los vectores U se convierten en la respuesta para ser sobre variables y V sobre casos. La mayoría de las personas que conocen PCA están acostumbradas al diseño opuesto; entonces dificulta la percepción, un poco.
ttnphns
1
Podría recomendar enfatizar verbalmente la "moraleja" de la diferencia entre el "eje biplot" y el "biplot de carga" en el escaneo. En el primero, la variabilidad (= escala, = magnidute, = inercia, = masa) no se presenta: se almacena en valores propios. En el segundo, se entregó completamente a los vectores propios que representan variables; en virtud de ese "revivir" las variables se convierten en una nube de datos significativa de dos puntos, o vectores, con longitudes específicas desde el origen y ángulo específico. Así es como "de repente" nos encontramos en el espacio temático .
ttnphns
Gracias @ttnphns, ambos buenos puntos. Con respecto a las filas / columnas de : de hecho, prefiero el diseño que utilicé. Un único punto de datos generalmente se escribe como un vector de columna . Una matriz actúe sobre ella se escribiría como . Si ahora es una colección de vectores de columna apilados, entonces puedo escribir , lo cual es conveniente. Si, en cambio, tiene muestras en filas, como usted defiende, entonces necesitaría escribir , lo que se ve raro. Pero admito que muchos libros de texto usan esta convención (no estoy seguro de por qué). x U U x X U X X X UXxUUxXUXXXU
ameba dice Reinstate Monica
1
Esto es, por supuesto, una cuestión de gustos. Tenga en cuenta, sin embargo, que la gran mayoría de los programas estadísticos muestran hojas de cálculo de datos como cases X variables. Por tradición, entonces, el álgebra lineal en la mayoría de los textos de análisis estadísticos hace del caso un vector fila. ¿Quizás en el aprendizaje automático es diferente?
ttnphns
1
@user_anon No, esta respuesta considera PCA estándar, sin ningún factor de rotación.
ameba dice Reinstate Monica