Realicé el análisis de componentes principales (PCA) con R usando dos funciones diferentes ( prcomp
y princomp
) y observé que las puntuaciones de PCA diferían en el signo. ¿Cómo puede ser?
Considera esto:
set.seed(999)
prcomp(data.frame(1:10,rnorm(10)))$x
PC1 PC2
[1,] -4.508620 -0.2567655
[2,] -3.373772 -1.1369417
[3,] -2.679669 1.0903445
[4,] -1.615837 0.7108631
[5,] -0.548879 0.3093389
[6,] 0.481756 0.1639112
[7,] 1.656178 -0.9952875
[8,] 2.560345 -0.2490548
[9,] 3.508442 0.1874520
[10,] 4.520055 0.1761397
set.seed(999)
princomp(data.frame(1:10,rnorm(10)))$scores
Comp.1 Comp.2
[1,] 4.508620 0.2567655
[2,] 3.373772 1.1369417
[3,] 2.679669 -1.0903445
[4,] 1.615837 -0.7108631
[5,] 0.548879 -0.3093389
[6,] -0.481756 -0.1639112
[7,] -1.656178 0.9952875
[8,] -2.560345 0.2490548
[9,] -3.508442 -0.1874520
[10,] -4.520055 -0.1761397
¿Por qué los signos ( +/-
) difieren para los dos análisis? Si estuviera usando componentes principales PC1
y PC2
como predictores en una regresión, es decir lm(y ~ PC1 + PC2)
, ¡esto cambiaría completamente mi comprensión del efecto de las dos variables y
dependiendo del método que utilicé! ¿Cómo podría decir que PC1
tiene, por ejemplo, un efecto positivo y
y PC2
tiene, por ejemplo, un efecto negativo y
?
Además: si el signo de los componentes de PCA no tiene sentido, ¿esto también es cierto para el análisis factorial (FA)? ¿Es aceptable voltear (revertir) el signo de las puntuaciones individuales de los componentes PCA / FA (o de las cargas, como una columna de matriz de carga)?
fuente
Respuestas:
PCA es una simple transformación matemática. Si cambia los signos de los componentes, no cambia la varianza contenida en el primer componente. Además, cuando cambia los signos, los pesos (
prcomp( ... )$rotation
) también cambian el signo, por lo que la interpretación se mantiene exactamente igual:muestra
y
pca2$loadings
mostrarEntonces, ¿por qué la interpretación sigue siendo la misma?
Realiza la regresión PCA del
y
componente 1. En la primera versión (prcomp
), digamos que el coeficiente es positivo: cuanto mayor es el componente 1, mayor es la y. ¿Qué significa cuando se trata de las variables originales? Como el peso de la variable 1 (1:10
en a) es positivo, eso muestra que cuanto mayor es la variable 1, mayor es la y.Ahora use la segunda versión (
princomp
). Dado que el componente ha cambiado el signo, cuanto mayor es y, menor es el componente 1: el coeficiente de y <sobre PC1 ahora es negativo. Pero también lo es la carga de la variable 1; eso significa que, cuanto mayor sea la variable 1, cuanto menor sea el componente 1, mayor y - la interpretación es la misma.Posiblemente, la forma más fácil de ver eso es usar un biplot.
muestra
El mismo biplot para la segunda variante muestra
Como puede ver, las imágenes se giran 180 °. Sin embargo, la relación entre los pesos / cargas (las flechas rojas) y los puntos de datos (los puntos negros) es exactamente la misma; por lo tanto, la interpretación de los componentes no cambia.
fuente
princomp
. Entonces, durante la proyección, mis datos proyectados también se voltean en algunas de las dimensiones. Mi objetivo es hacer una clasificación de los coeficientes. ¿La señal todavía no importa aquí?Esta pregunta se hace mucho en este foro, por lo que me gustaría complementar la excelente respuesta de @ enero con consideraciones un poco más generales.
La conclusión es que para cada componente PCA o FA, el signo de sus puntajes y de sus cargas es arbitrario y sin sentido. Se puede voltear, pero solo si el signo de los puntajes y las cargas se invierte al mismo tiempo.
fuente
princomp
. Entonces, durante la proyección, mis datos proyectados también se voltean en algunas de las dimensiones. Mi objetivo es hacer una clasificación de los coeficientes. ¿La señal todavía no importa aquí?fuente