¿Se deben eliminar las variables altamente correlacionadas antes de hacer PCA?

111

Estoy leyendo un artículo donde el autor descarta varias variables debido a la alta correlación con otras variables antes de hacer PCA. El número total de variables es de alrededor de 20.

¿Esto le da algún beneficio? A mí me parece una sobrecarga, ya que PCA debería manejar esto automáticamente.

tipo 2
fuente
26
Solo una pista. Piense de qué manera cambiarán los resultados de PCA si agrega más y más copias (o copias cercanas) de una de las variables.
ttnphns
@ type2 ¿puede nombrar el periódico que estaba leyendo?
Amatya

Respuestas:

123

Esto expone la sugerencia perspicaz proporcionada en un comentario de @ttnphns.

Junto a variables casi correlacionadas aumenta la contribución de su factor subyacente común a la PCA. Podemos ver esto geométricamente. Considere estos datos en el plano XY, que se muestra como una nube de puntos:

Gráfico de dispersión

Hay poca correlación, una covarianza aproximadamente igual, y los datos están centrados: PCA (sin importar cómo se realice) informaría dos componentes aproximadamente iguales.

Agreguemos ahora una tercera variable igual a más una pequeña cantidad de error aleatorio. La matriz de correlación de muestra esto con los pequeños coeficientes fuera de la diagonal, excepto entre las filas y columnas segunda y tercera ( y ):Y ( X , Y , Z ) Y ZZY(X,Y,Z)YZ

(1)-0.0344018-0,046076-0.03440181)0.941829-0,0460760.9418291))

Geométricamente, hemos desplazado todos los puntos originales casi verticalmente, levantando la imagen anterior directamente del plano de la página. Esta nube de puntos pseudo 3D intenta ilustrar el levantamiento con una vista en perspectiva lateral (basada en un conjunto de datos diferente, aunque generado de la misma manera que antes):

Trama 3D

Los puntos se encuentran originalmente en el plano azul y se elevan a los puntos rojos. El eje original apunta a la derecha. La inclinación resultante también extiende los puntos a lo largo de las direcciones YZ, duplicando así su contribución a la varianza. En consecuencia, un PCA de estos nuevos datos aún identificaría dos componentes principales principales, pero ahora uno de ellos tendrá el doble de varianza que el otro.Y

Esta expectativa geométrica se confirma con algunas simulaciones R. Para esto, repetí el procedimiento de "levantamiento" creando copias casi colineales de la segunda variable una segunda, tercera, cuarta y quinta vez, nombrándolas a . Aquí hay una matriz de diagrama de dispersión que muestra cómo esas últimas cuatro variables están bien correlacionadas:X 5X2X5 5

Matriz de diagrama de dispersión

El PCA se realiza utilizando correlaciones (aunque en realidad no importa para estos datos), utilizando las dos primeras variables, luego tres, ... y finalmente cinco. Muestro los resultados usando gráficas de las contribuciones de los componentes principales a la varianza total.

Resultados de PCA

Inicialmente, con dos variables casi sin correlación, las contribuciones son casi iguales (esquina superior izquierda). Después de agregar una variable correlacionada con la segunda, exactamente como en la ilustración geométrica, todavía hay solo dos componentes principales, uno ahora dos veces más grande que el otro. (Un tercer componente refleja la falta de correlación perfecta; mide el "grosor" de la nube en forma de panqueque en el diagrama de dispersión 3D.) Después de agregar otra variable correlacionada ( ), el primer componente ahora es aproximadamente tres cuartos del total ; después de agregar un quinto, el primer componente es casi cuatro quintos del total. En los cuatro casos, los componentes después del segundo probablemente serían considerados intrascendentes por la mayoría de los procedimientos de diagnóstico de PCA; en el último casoX4 4Un componente principal que vale la pena considerar.

Ahora podemos ver que puede haber mérito en descartar variables que se piensa que miden el mismo aspecto subyacente (pero "latente") de una colección de variables , porque incluir las variables casi redundantes puede hacer que el PCA enfatice demasiado su contribución. No hay nada matemáticamente correcto (o incorrecto) sobre tal procedimiento; Es una decisión basada en los objetivos analíticos y el conocimiento de los datos. Pero debe quedar muy claro que dejar de lado las variables que se sabe que están fuertemente correlacionadas con otras puede tener un efecto sustancial en los resultados de la PCA.


Aquí está el Rcódigo.

n.cases <- 240               # Number of points.
n.vars <- 4                  # Number of mutually correlated variables.
set.seed(26)                 # Make these results reproducible.
eps <- rnorm(n.vars, 0, 1/4) # Make "1/4" smaller to *increase* the correlations.
x <- matrix(rnorm(n.cases * (n.vars+2)), nrow=n.cases)
beta <- rbind(c(1,rep(0, n.vars)), c(0,rep(1, n.vars)), cbind(rep(0,n.vars), diag(eps)))
y <- x%*%beta                # The variables.
cor(y)                       # Verify their correlations are as intended.
plot(data.frame(y))          # Show the scatterplot matrix.

# Perform PCA on the first 2, 3, 4, ..., n.vars+1 variables.
p <- lapply(2:dim(beta)[2], function(k) prcomp(y[, 1:k], scale=TRUE))

# Print summaries and display plots.
tmp <- lapply(p, summary)
par(mfrow=c(2,2))
tmp <- lapply(p, plot)
whuber
fuente
55
+1, hermosas figuras. ¿Qué usaste para los 2 mejores? El primero parece que está dibujado a mano.
Gung
14
TEX
2
Eso es muy esclarecedor, whuber. Aprendí algo nuevo.
Spacey
77
@whuber es como el estadístico más moderno: utiliza tramas XKCD como un profesional.
Cam.Davidson.Pilon
2
@logan En otras palabras, no. Permítame dirigir su atención a una oración al final de esta publicación: "No hay nada matemáticamente correcto (o incorrecto) sobre tal procedimiento; es una decisión basada en los objetivos analíticos y el conocimiento de los datos".
whuber
43

Ilustraré aún más el mismo proceso y la misma idea que @whuber, pero con los gráficos de carga, porque las cargas son la esencia de los resultados de PCA.

X1X2X3X2X4 4X5 5

Las gráficas de cargas de los primeros 2 componentes principales se van. Los picos rojos en las gráficas cuentan las correlaciones entre las variables, de modo que en el grupo de varios picos es donde se encuentra un grupo de variables estrechamente correlacionadas. Los componentes son las líneas grises; La "fuerza" relativa de un componente (su magnitud de valor propio relativo) viene dada por el peso de la línea.

ingrese la descripción de la imagen aquí

Se pueden observar dos efectos de agregar las "copias":

  1. El Componente 1 se vuelve más y más fuerte, y el Componente 2 cada vez más débil.
  2. X1X2X3X2

No reanudaré la moraleja porque @whuber ya lo hizo.


r=0 0r=0,62r=0,77

X1X2r=0 0 X1X2las líneas mismas podrían elegirse como componentes.] Las coordenadas de los puntos de datos (200 sujetos) en un componente son puntajes de componentes, y su suma de cuadrados divididos por 200-1 es el valor propio del componente .

rX1X2(pero agregar una tercera variable puede desviarlo de todos modos). El ángulo (coseno) entre un vector variable y una línea componente es la correlación entre ellos, y debido a que los vectores son de longitud unitaria y los componentes son ortogonales, esto no es más que las coordenadas, la carga . La suma de las cargas al cuadrado sobre el componente es su valor propio (el componente solo se orienta en este espacio temático para maximizarlo)

ingrese la descripción de la imagen aquí


Adición 2. En adición anterior estaba hablando acerca de "espacio de las variables" y "espacio sujeto" como si fueran incompatibles entre sí como el agua y el aceite. Tuve que reconsiderarlo y puedo decir que, al menos cuando hablamos de PCA , ambos espacios son isomórficos al final, y por esa virtud podemos mostrar correctamente todos los detalles de PCA: puntos de datos, ejes variables, ejes componentes, variables como puntos, - en un solo biplot sin distorsión.

A continuación se muestran el diagrama de dispersión (espacio variable) y el gráfico de carga (espacio componente, que es el espacio sujeto por su origen genético). Todo lo que podría mostrarse en uno, también podría mostrarse en el otro. Las imágenes son idénticas , solo giran 45 grados (y se reflejan, en este caso particular) entre sí. Eso era un PCA de variables V1 y V2 (estandarizado, por lo que fue r que fue analizado). Las líneas negras en las imágenes son las variables como ejes; las líneas verde / amarilla son los componentes como ejes; los puntos azules son la nube de datos (sujetos); Los puntos rojos son las variables que se muestran como puntos (vectores).

ingrese la descripción de la imagen aquí

ttnphns
fuente
1
+1 ilustración interesante. Por cierto, su segunda observación es un artefacto de los datos: la orientación cambió porque en el primer caso la correlación fue perfecta, dando un espacio propio bidimensional. (Esto es extremadamente raro en datos reales; generalmente significa que se cometió un error en la base de datos y una variable es una reexpresión lineal de otra.) El software era libre de elegir arbitrariamente cualquier base ortogonal para ese espacio. Solo la menor cantidad de correlación habría eliminado esta degeneración. Creo, por lo tanto, que sobre interpretas este fenómeno de reorientación.
whuber
@whuber, tal vez no te entiendo. ¿Qué correlación "perfecta"? r bw X1 y X2 fueron 0,003; y podría haber sido cualquiera, por ejemplo .503. Ese sería el cos del ángulo de los dos vectores rojos en la gráfica. Cualquiera sea la r , la primera PC siempre es la bisectriz, mientras que solo 2 variables están en análisis. Supongo que su nota se The software was free to choose any orthogonal basis for that space, arbitrarilyaplica a la nube redonda en el espacio variable (es decir, el diagrama de dispersión de datos, como la primera imagen en su respuesta), pero la gráfica de carga es el espacio sujeto donde las variables, no los casos, son puntos (vectores).
ttnphns
1
R5 5
Usé correlaciones (observe la matriz y el hecho de que los vectores rojos son esencialmente de la misma longitud). Sí, el espacio de sujeto es un diagrama de dispersión tupsy-torvey con n ejes (sujetos) y p puntos (variables). Por supuesto, todas las dimensiones np son redundantes y cualquier conjunto de variables p se puede trazar en el espacio sujeto p-dimensional, ¡pero esto no lo convierte en un espacio variable! Solo agregaré una foto a mi respuesta.
ttnphns
55
+1, gracias por la contribución adicional, @ttnphns. Esto está pasando de lo que originalmente pensé que era una pregunta bastante simple en un hilo fabulosamente informativo.
Gung
4

Sin los detalles de su trabajo, conjeturaría que este descarte de variables altamente correlacionadas se realizó simplemente para ahorrar energía computacional o carga de trabajo. No puedo ver una razón por la cual PCA 'se rompería' para variables altamente correlacionadas. Proyectar datos de nuevo en las bases encontradas por PCA tiene el efecto de blanquear los datos (o descorrelacionarlos). Ese es todo el punto detrás de PCA.

Spacey
fuente
44
¿Leíste la pista de @ttnphns? PCA presta atención no solo a los vectores propios (que usted discute) sino también a los valores propios (que ignora). Esto es crítico, porque los valores propios se usan para determinar qué componentes retener y cuáles descartar.
whuber
2
@whuber Sí ... sí, creo que lo entiendo ahora. Entonces, esencialmente, las variables más correlacionadas enfatizarán en exceso los vectores propios particulares (direcciones), y si hay muchas variables correlacionadas, entonces habría muchas direcciones 'falsas' más enfatizadas, que ahogarían un vector / dirección 'original' que podría han sido vistos de otra manera fácilmente. ¿Te estoy entendiendo bien?
Spacey
2
Eso está muy cerca, Mohammad. La realidad es que un conjunto de variables correlacionadas podría "cargarse" en varios componentes principales (vectores propios), por lo que incluir muchas variables de dicho conjunto pesará diferencialmente varios vectores propios y, por lo tanto, también cambiará las direcciones de todos los vectores propios.
whuber
1

Según tengo entendido, las variables correlacionadas están bien, porque PCA genera vectores que son ortogonales.

Un montón
fuente
55
Tiene razón, pero ¿le importaría explicar por qué la ortogonalidad tiene alguna relación con el hecho de descartar o no las variables de antemano?
whuber
-1

Bueno, depende de tu algoritmo. Las variables altamente correlacionadas pueden significar una matriz mal condicionada. Si usa un algoritmo sensible a eso, podría tener sentido. Pero me atrevo a decir que la mayoría de los algoritmos modernos utilizados para generar valores y vectores propios son sólidos para esto. Intente eliminar las variables altamente correlacionadas. ¿Los valores propios y el vector propio cambian mucho? Si lo hacen, entonces el mal acondicionamiento podría ser la respuesta. Debido a que las variables altamente correlacionadas no agregan información, la descomposición de PCA no debería cambiar

Juancentro
fuente
44
Por desgracia, el PCA hace cambiar: es casi seguro.
whuber
1
@whuber Wow, gran cantidad de respuestas y muy informativo. Perdón por mi comentario, estaba totalmente equivocado. Culpa mía. Respuesta muy informativa por cierto
Juancentro
44
Aprendo más de respuestas totalmente incorrectas, Juancentro, especialmente la mía, que afortunadamente rara vez sale en público :-). Tuve pensamientos similares a los tuyos hasta que @ttnphns dejó un comentario.
whuber
-1

Depende del método de selección de componentes principal que utilice, ¿no?

Tiendo a usar cualquier componente principal con un valor propio> 1. Por lo tanto, no me afectaría.

Y de los ejemplos anteriores, incluso el método de diagrama de pantalla generalmente elegiría el correcto. SI GUARDAS TODO ANTES DEL CODO. Sin embargo, si simplemente eligió el componente principal con el valor propio "dominante", sería desviado. ¡Pero esa no es la forma correcta de usar un diagrama de pantalla!

Chris Howden
fuente
55
Bienvenido al sitio, Chris. Desafortunadamente, ninguno de estos procedimientos ad-hoc es particularmente defendible. Tenga en cuenta que en el primer caso no se podía cambiar la forma de sus datos en todo e ir desde la selección de todas ellas a la selección de ninguno de ellos (justo al multiplicar todo por una constante).
cardenal