146 votos

¿Hay que eliminar las variables altamente correlacionadas antes de hacer el ACP?

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

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

29 votos

Sólo una pista. Piense en cómo cambiarán los resultados del PCA si se añaden más y más copias (o casi copias) de una de las variables.

3 votos

@type2 ¿puede nombrar el artículo que estaba leyendo?

156voto

jldugger Puntos 7490

Esto amplía la perspicaz pista proporcionada en un comentario de @ttnphns.

La adición de variables casi correlacionadas aumenta la contribución de su factor subyacente común al ACP. Podemos ver esto geométricamente. Consideremos estos datos en el plano XY, mostrados como una nube de puntos:

Scatterplot

Hay poca correlación, una covarianza aproximadamente igual y los datos están centrados: El ACP (no importa cómo se lleve a cabo) informaría de dos componentes aproximadamente iguales.

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

$$\left( \begin{array}{ccc} 1. & -0.0344018 & -0.046076 \\ -0.0344018 & 1. & 0.941829 \\ -0.046076 & 0.941829 & 1. \end{array} \right)$$

Geométricamente, hemos desplazado todos los puntos originales casi verticalmente, levantando la imagen anterior justo fuera del plano de la página. Esta pseudo-nube de puntos 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):

3D plot

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

Esta expectativa geométrica se confirma con algunas simulaciones en R . Para ello, repetí el procedimiento de "elevación" creando copias casi colineales de la segunda variable una segunda, tercera, cuarta y quinta vez, denominándolas $X_2$ a través de $X_5$ . Aquí hay una matriz de dispersión que muestra cómo esas últimas cuatro variables están bien correlacionadas:

Scatterplot matrix

El ACP se realiza mediante correlaciones (aunque realmente no importa para estos datos), utilizando primero dos variables, luego tres, ..., y finalmente cinco. Muestro los resultados mediante gráficos de las contribuciones de los componentes principales a la varianza total.

PCA results

Inicialmente, con dos variables casi no correlacionadas, las contribuciones son casi iguales (esquina superior izquierda). Después de añadir una variable correlacionada con la segunda -exactamente como en la ilustración geométrica-, siguen existiendo sólo dos componentes principales, uno de los cuales duplica el tamaño del otro. (Un tercer componente refleja la falta de correlación perfecta; mide el "grosor" de la nube en forma de panqueque en el gráfico de dispersión 3D). Tras añadir otra variable correlacionada ( $X_4$ ), el primer componente es ahora unas tres cuartas partes del total; después de añadir una quinta parte, el primer componente es casi cuatro quintas partes del total. En los cuatro casos, la mayoría de los procedimientos de diagnóstico del ACP consideran que los componentes posteriores al segundo no tienen importancia; en el último caso, es posible que algunos procedimientos concluyan que sólo hay un componente principal que vale la pena considerar.

Ahora podemos ver que puede ser conveniente descartar las variables que se cree que miden el mismo aspecto subyacente (pero "latente") de un conjunto de variables porque la inclusión de las variables casi redundantes puede hacer que el ACP enfatice demasiado su contribución. No hay nada matemáticamente No hay nada correcto (o incorrecto) en ese 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 del ACP.


Aquí está el R có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)

6 votos

+1, hermosas figuras. ¿Qué usaste para las 2 primeras? La 1ª parece dibujada a mano.

17 votos

@gung He utilizado una variante del código en mathematica.stackexchange.com/questions/11350/xkcd-style-graphs para la primera cifra. Hace tiempo que se sabe que añadir un poco de temblor aleatorio al texto o a una imagen puede hacer que parezca más cálido y accesible. ( $\TeX$ se construyó originalmente en Metafont que Donald Knuth diseñó tras un profundo estudio de la tipografía; incluyó esta variación incorporada). Para algunos gráficos, como el pseudo gráfico de dispersión en 3D de la segunda figura, la técnica del jittering aporta poco o distrae, por lo que no la utilicé allí.

2 votos

Eso es muy esclarecedor, Whuber. He aprendido algo nuevo.

52voto

Uri Puntos 111

Además ilustrar el mismo proceso e idea que hizo @whuber, pero con los gráficos de carga, - porque las cargas son la esencia de los resultados del PCA.

Aquí hay tres 3 análisis. En el primero, tenemos dos variables, $X_1$ y $X_2$ (en este ejemplo, no se correlacionan). En el segundo, añadimos $X_3$ que es casi una copia de $X_2$ y, por lo tanto, está fuertemente correlacionada con ella. En la tercera, todavía añadimos de forma similar 2 "copias" más de ella: $X_4$ y $X_5$ .

A continuación, los gráficos de las cargas de los dos primeros componentes principales. Los picos rojos en los gráficos indican las correlaciones entre las variables, de modo que el grupo de varios picos es donde se encuentra un grupo de variables fuertemente correlacionadas. Los componentes son las líneas grises; la "fuerza" relativa de un componente (su magnitud relativa de valor propio) viene dada por el peso de la línea.

enter image description here

Se pueden observar dos efectos de la adición de las "copias":

  1. El componente 1 se hace cada vez más fuerte, y el componente 2 cada vez más débil. y más débil.
  2. Cambio de orientación de los componentes: al principio, el componente 1 iba en el centro entre $X_1$ y $X_2$ ; ya que añadimos $X_3$ a $X_2$ El componente 1 se reorientó inmediatamente para seguir el grupo emergente de variables; y puede estar seguro de que después de que de añadir dos variables más al grupo, el componente 1 se Componente 1 a ese grupo de variables estrechamente correlacionadas se volvió más indiscutible.

No voy a retomar la moraleja porque @whuber ya lo hizo.


Adición . A continuación, algunas imágenes en respuesta a los comentarios de @whuber. Se trata de una distinción entre el "espacio variable" y el "espacio del sujeto" y cómo los componentes se orientan aquí y allá. Se presentan tres ACP bivariados: la primera fila analiza $r=0$ La segunda fila analiza $r=0.62$ y tercera fila $r=0.77$ . La columna de la izquierda son gráficos de dispersión (de datos estandarizados) y la columna de la derecha son gráficos de carga.

En un gráfico de dispersión, la correlación entre $X_1$ y $X_2$ se traduce en la oblongación de la nube. El ángulo (su coseno) entre una línea componente y una línea variable es el correspondiente vector propio elemento. Los vectores propios son idénticos en los tres análisis (por lo que los ángulos en los 3 gráficos son los mismos). [Pero, es cierto, que con $r=0$ exactamente Los vectores propios (y por tanto los ángulos) son teóricamente arbitrarios; dado que la nube es perfectamente "redonda", cualquier par de líneas ortogonales que pasen por el origen podrían servir como las dos componentes, - incluso $X_1$ y $X_2$ las propias líneas podrían ser elegidas como componentes]. Las coordenadas de los puntos de datos (200 sujetos) en un componente son las puntuaciones de los componentes, y su suma de cuadrados dividida por 200-1 es la valor propio .

En un gráfico de carga, los puntos (vectores) son variables; se extienden por el espacio que es bidimensional (porque tenemos 2 puntos + el origen) pero que en realidad es un "espacio de sujetos" reducido de 200 dimensiones (número de sujetos). Aquí el ángulo (coseno) entre los vectores rojos es $r$ . Los vectores son iguales, de longitud unitaria, porque los datos han sido estandarizados. La primera componente es un eje de dimensión en este espacio que se precipita hacia la acumulación total de los puntos; en el caso de sólo 2 variables es siempre la bisectriz entre $X_1$ y $X_2$ (pero añadir una tercera variable puede desviarla de todos modos). El ángulo (coseno) entre un vector variable y una línea componente es la correlación entre ellos, y como los vectores son de longitud unitaria y las componentes son ortogonales, esto no es más que las coordenadas, el Cargando . La suma de las cargas al cuadrado en el componente es su valor propio (el componente sólo se orienta en este espacio temático para maximizarlo)

enter image description here


Adición2. En Adición Antes hablaba del "espacio variable" y del "espacio del sujeto" como si fueran incompatibles entre sí, como el agua y el aceite. Tuve que reconsiderarlo y puedo decir que - en menos cuando hablamos de PCA - ambos espacios son isomorfos al final, y por esa virtud podemos mostrar correctamente todos los detalles del PCA - puntos de datos, ejes de variables, ejes de componentes, variables como puntos, - en un único biplot no distorsionado.

A continuación se muestran el diagrama de dispersión (espacio de la variable) y el diagrama de carga (espacio del componente, que es el espacio del sujeto por su origen genético). Todo lo que puede mostrarse en uno, también puede mostrarse en el otro. Los gráficos son idénticos Sólo que girados 45 grados (y reflejados, en este caso concreto) entre sí. Se trataba de un ACP de las variables v1 y v2 (estandarizadas, por lo que se r que se analizó). Las líneas negras de las imágenes son las variables como ejes; las líneas verdes/amarillas son los componentes como ejes; los puntos azules son la nube de datos (sujetos); los puntos rojos son las variables mostradas como puntos (vectores).

enter image description here

1 votos

+1 ilustración interesante. Por cierto, tu segunda observación es un artefacto de los datos: la orientación cambió porque en el primer caso la correlación era perfecto, dando un espacio eigénico bidimensional. (Esto es extremadamente raro en los datos reales; suele significar que se cometió un error en la base de datos y que una variable es una reexpresión lineal de otra). El programa informático era libre de elegir cualquier base ortogonal para ese espacio, arbitrariamente. Una mínima correlación habría eliminado esta degeneración. Creo, por tanto, que sobreinterpretas este fenómeno de reorientación.

0 votos

@whuber, tal vez no te entiendo. ¿Qué correlación "perfecta"? r entre X1 y X2 fue de 0,003; y podría haber sido cualquiera, por ejemplo 0,503. Ese sería el porque del ángulo entre los dos vectores rojos en el gráfico. Cualquiera que sea el r El 1er PC es siempre la bisectriz cuando sólo hay 2 variables en el análisis. Supongo que su nota The software was free to choose any orthogonal basis for that space, arbitrarily se aplica a la nube redonda en espacio variable (es decir, gráfico de dispersión de datos, como la primera imagen de su respuesta), pero el gráfico de carga es espacio temático donde las variables, no los casos, son puntos (vectores).

1 votos

Lo siento; quise decir perfecto falta de correlación. En sus análisis, ¿utilizó la covarianza o la correlación o estandarizó de otro modo las filas o columnas de datos? (Tal vez lo entienda mal, pero no encuentro que su distinción entre espacios "sujeto" y "variable" tenga sentido en este contexto: tanto los vectores base originales como los datos son elementos de, digamos, $\mathbb{R}^5$ el "gráfico de carga" es una proyección sobre el subespacio generado por los dos primeros PC. Creo que la mayoría de la gente consideraría que el espacio "sujeto" tiene 240 dimensiones en mi simulación: No lo he ilustrado con un gráfico de dispersión)

4voto

piCookie Puntos 3048

Sin los detalles de su documento, conjeturo que este descarte de variables altamente correlacionadas se hizo simplemente para ahorrar potencia de cálculo o carga de trabajo. No veo la razón por la que el ACP se "rompe" con las variables altamente correlacionadas. Proyectar los datos de vuelta a las bases encontradas por el PCA tiene el efecto de blanquear los datos, (o descorrelacionarlos). Ese es el objetivo de PCA.

4 votos

¿Has leído la pista de @ttnphns? El PCA no sólo presta atención a los vectores propios (que tú comentas) sino también a los valores propios (que tú ignoras). Esto es fundamental, porque los valores propios se utilizan para determinar qué componentes se conservan y cuáles se eliminan.

3 votos

@whuber Sí ... sí creo que lo entiendo ahora. Así que esencialmente, más variables correlacionadas sobre-enfatizarán eigenvectores particulares, (direcciones), y si hay muchas variables correlacionadas, entonces habría muchas más direcciones 'falsas' sobre-enfatizadas, que ahogan un eigenvector/dirección 'original' que de otra manera habría sido fácilmente visto. ¿Le he entendido bien?

3 votos

Eso está muy cerca, Mohammad. La realidad es que un conjunto de variables correlacionadas puede "cargarse" en varios componentes principales (vectores propios), por lo que incluir muchas variables de dicho conjunto ponderará diferencialmente varios eigenvectores - y por lo tanto cambiar las direcciones de todos los eigenvectores, también.

1voto

ændrük Puntos 158

A mi entender, las variables correlacionadas están bien, porque el PCA produce vectores que son ortogonales.

6 votos

Tienes razón, pero ¿te importaría explicar por qué la ortogonalidad tiene alguna relación con el hecho de descartar o no las variables por adelantado?

-2voto

CAFxX Puntos 165

Bueno, depende de su algoritmo. Las variables altamente correlacionadas pueden significar una matriz mal condicionada. Si usas un algoritmo que es sensible a eso puede tener sentido. Pero me atrevo a decir que la mayoría de los algoritmos modernos utilizados para sacar valores y vectores propios son robustos a esto. Intenta eliminar las variables altamente correlacionadas. ¿Cambian mucho los valores y vectores propios? Si lo hacen, entonces el mal condicionamiento podría ser la respuesta. Dado que las variables altamente correlacionadas no añaden información, la descomposición del ACP no debería cambiar

4 votos

Por desgracia, el PCA hace cambio: está casi garantizado.

1 votos

@whuber Wow, gran cantidad de respuestas, y muy informativo. Perdón por mi comentario, estaba totalmente equivocado. Mi error. Respuesta muy informativa BTW

4 votos

De lo que más aprendo es de las respuestas totalmente erróneas, Juancentro sobre todo de las mías, que afortunadamente rara vez salen a la luz pública :-). Tenía pensamientos similares a los tuyos hasta que @ttnphns dejó un comentario.

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