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')
¿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?
fuente
R
prcomp
El 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.Respuestas:
Advertencia:
R
utiliza 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.X N X=USV⊤ US V 1N−1X⊤X=VS2N−1V⊤ V
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=VSN−1√
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 .
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:
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 yV x y L x y x y son 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 1x y 1
Veamos ahora otra vez el conjunto de datos mtcars . Aquí hay un biplot del PCA realizado en la matriz de correlación:
Las líneas negras se trazan usando , las líneas rojas se trazan usando .LV L
Y aquí hay un biplot del PCA realizado en la matriz de covarianza:
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 L100 V L
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í .
fuente
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?