11 votos

¿Por qué los eigenvectores de PCA son ortogonales pero correlacionados?

He visto algunos excelentes posts explicando el PCA y por qué bajo este enfoque los eigenvectores de una matriz de correlación (simétrica) son ortogonales. También entiendo las maneras de demostrar que tales vectores son ortogonales entre sí (por ejemplo, tomando el producto cruz de la matriz de estos eigenvectores resultará en una matriz con entradas fuera de la diagonal que son cero).

Mi primera pregunta es, cuando miras las correlaciones de los eigenvectores de un PCA, ¿por qué las entradas fuera de la diagonal de la matriz de correlación no son cero (es decir, cómo pueden los eigenvectores estar correlacionados si son ortogonales)?

Esta pregunta no es directamente sobre el PCA, pero la puse en este contexto ya que es cómo me encontré con el problema. Estoy usando R y específicamente el paquete psych para correr el PCA.

Si ayuda tener un ejemplo, este post en StackOverflow tiene uno que es muy conveniente y relacionado (también en R). En este post, el autor de la mejor respuesta muestra que las cargas del PCA (eigenvectores) son ortogonales usando Congruencia de Factores o productos cruzados. En su ejemplo, la matriz L es la matriz de cargas del PCA. Lo único que no está en este enlace es que cor(L) producirá la salida sobre la que estoy preguntando mostrando las correlaciones no-cero entre los eigenvectores.

Estoy especialmente confundido acerca de cómo los vectores ortogonales pueden estar correlacionados después de leer este post, que parece probar que la ortogonalidad es equivalente a la falta de correlación: ¿Por qué son ortogonales los eigenvectores del PCA y cuál es la relación con los puntajes del PCA siendo no correlacionados?

Mi segunda pregunta es: cuando los eigenvectores del PCA son usados para calcular los puntajes del PCA, los puntajes mismos son no correlacionados (como esperaba)... ¿hay una conexión con mi primera pregunta sobre esto, por qué los eigenvectores están correlacionados pero no los puntajes?

1 votos

Parece que estás calculando la matriz de correlación de los eigenvectores. Los eigenvectores son ortogonales, lo que implica que los productos punto entre ellos son cero, no las correlaciones. Lo que debe ser no correlacionado son las proyecciones de los datos sobre los eigenvectores, no los eigenvectores en sí mismos.

1 votos

Los eigenvectores son simplemente cantidades fijas, no variables aleatorias. No tiene sentido hablar de correlaciones entre ellos porque no fluctúan.

3 votos

La clave es que los autovectores no tienen media cero (por ejemplo, es completamente posible que todos los elementos de un autovector sean positivos). Por lo tanto, el hecho de que sean ortogonales no implica que sus elementos no estén correlacionados (para calcular la correlación necesitamos restar las medias).

5voto

ExabytE Puntos 24

Sea $X$ un vector aleatorio $X=(x_1,x_2,\cdots,x_d)^T$ con valor esperado $\mu$ y varianza $\Sigma$. Estamos buscando vectores ordenados $u_i$, que maximicen la varianza de $u_i^TX$. Básicamente estamos resolviendo $$\max\limits_{u_i} Var(u_i^TX)$$ $$s.t. \quad u_i^T u_i=1.$$ Debido a que solo nos interesa la dirección de tales vectores, asumimos adicionalmente que la longitud de los vectores es unitaria $u_i^T u_i=1$. Los vectores $u_i$ en realidad no son aleatorios (porque estamos trabajando teóricamente ahora, en realidad estamos reemplazando la matriz de covarianza $\Sigma$ desconocida y la media desconocida $\mu$ con la matriz de covarianza muestral empírica y la media respectivamente, @whuber estaba explicando esto desde una perspectiva diferente) por lo que $$Var(u_i^TX)=u_i^T\Sigma u_i.$$ El problema de optimización se puede resolver trivialmente utilizando la función de Lagrange $$L(u_i,\lambda_i):=u_i^T \Sigma u_i -\lambda_i(u_i^Tu_i-1).$$ A partir de ahí obtenemos la condición necesaria para los extremos restringidos $$ \frac{\partial L(u_i,\lambda_i)}{\partial u_i} = 2\Sigma u_i -2\lambda_i u_i=0,$$ que se puede reducir a $$\Sigma u_i =\lambda_i u_i,$$ que es por definición el problema de los valores y vectores propios. Debido a que $\Sigma$ es una matriz simétrica y semidefinida positiva, se aplica el teorema espectral y podemos encontrar una base ortonormal que satisface $\Sigma=Q\Lambda Q^{-1}=Q\Lambda Q^T$, donde $Q$ está formado por eigenvectores ortogonales y $\Lambda$ es una matriz diagonal con eigenvalores que son todos reales.

Ahora podemos mostrar que $$cov(u_i^TX,u_j^TX)=u_i^T\Sigma u_j=\lambda_j u_i^Tu_j=0, \quad \forall j \neq i.$$ Trivialmente para $i=j: \quad cov(u_i^TX,u_j^TX)=\lambda_i.$ Entonces no son los eigenvectores, sino las proyecciones las que son no correlacionadas.

0voto

user144600 Puntos 106

Tenga en cuenta que L es la matriz de cargas, también conocidos como los autovectores en sí mismos. Esta no es la matriz de datos de PCA. Los autovectores están destinados a proporcionar ortogonalidad pero no $cov=0$. Por ejemplo, tome la matriz:

> X <- iris
> X$Species <- as.numeric(X$Species)
> head(X)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2       1
2          4.9         3.0          1.4         0.2       1
3          4.7         3.2          1.3         0.2       1
4          4.6         3.1          1.5         0.2       1
5          5.0         3.6          1.4         0.2       1
6          5.4         3.9          1.7         0.4       1

En PCA, no solo se obtienen los autovectores de la matriz de covarianza/correlación (dependiendo del método) sino que también son ortonormales (es decir, $\left \| u_j \right \|=1$ para cada autovector $u_j$), por lo que tenemos:

> prcomp(X)$rotation
                     PC1         PC2        PC3         PC4        PC5
Sepal.Length  0.33402494 -0.68852577  0.4414776 -0.43312829  0.1784853
Sepal.Width  -0.08034626 -0.68474905 -0.6114140  0.30348725 -0.2423462
Petal.Length  0.80059273  0.09713877  0.1466787  0.49080356 -0.2953177
Petal.Width   0.33657862  0.06894557 -0.4202025  0.06667133  0.8372253
Species       0.35740442  0.20703034 -0.4828930 -0.68917499 -0.3482135

y

> cor(prcomp(X)$rotation)
            PC1         PC2         PC3          PC4          PC5
PC1  1.00000000  0.62712979  0.57079328  0.147574029 -0.072934736
PC2  0.62712979  1.00000000 -0.22763304 -0.058852698  0.029086459
PC3  0.57079328 -0.22763304  1.00000000 -0.053565825  0.026473556
PC4  0.14757403 -0.05885270 -0.05356582  1.000000000  0.006844526
PC5 -0.07293474  0.02908646  0.02647356  0.006844526  1.000000000

pero tenga en cuenta que los datos PCA son

> head(prcomp(X)$x)
           PC1        PC2          PC3          PC4          PC5
[1,] -2.865415 -0.2962946 -0.041870662 -0.078464301 -0.032047052
[2,] -2.892047  0.1837851  0.175540800 -0.143582265  0.053428970
[3,] -3.054980  0.1748266 -0.049705391 -0.045339514 -0.001205543
[4,] -2.920230  0.3315818 -0.003376012  0.065785303 -0.053882996
[5,] -2.906852 -0.2959169 -0.147159821 -0.004802747 -0.074130194
[6,] -2.489852 -0.7338212 -0.194029844  0.073567444  0.003409809

y su correlación es

> round(cor(prcomp(X)$x),14)
    PC1 PC2 PC3 PC4 PC5
PC1   1   0   0   0   0
PC2   0   1   0   0   0
PC3   0   0   1   0   0
PC4   0   0   0   1   0
PC5   0   0   0   0   1

0voto

user103292 Puntos 6

Un ejemplo más simple de cómo esto no es una contradicción:

Supongamos que $A$ y $B$ son vectores aleatorios en $\mathbb{R}^2$ cuya distribución está dada por:

$$ \mathbb{P}\left(A = \begin{bmatrix} +1 \cr 0 \end{bmatrix}, \:B = \begin{bmatrix} 0 \cr +1 \end{bmatrix}\right) = \frac12\\ \mathbb{P}\left(A = \begin{bmatrix} 0 \cr +1 \end{bmatrix}, \:B = \begin{bmatrix} -1 \cr 0 \end{bmatrix} \right) = \frac12\\ $$

Entonces, $B$ siempre es igual a $A$ rotado 90 grados en sentido antihorario. Luego, $A$ y $B$ son siempre ortogonales, pero no son no correlacionados.

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