18 votos

¿Por qué los componentes principales del ACP (vectores propios de la matriz de covarianza) son mutuamente ortogonales?

¿Por qué los componentes principales del ACP son mutuamente ortogonales? Sé que el PCA puede calcularse mediante eig(cov(X)) donde X está centrado. Pero no veo por qué los vectores propios deben ser ortogonales.

17voto

Silverfish Puntos 6909

La matriz de covarianza es simétrica. Si una matriz $A$ es simétrica y tiene dos vectores propios $u$ y $v$ considera $Au = \lambda u$ y $Av = \mu v$ .

Entonces por simetría (y escribiendo $'$ para transponer):

$$u'Av = u'A'v = (Au)'v = \lambda u'v$$

Más directamente:

$$u'Av = u'(\mu v) = \mu u'v$$

Como son iguales obtenemos $(\lambda - \mu)u'v =0$ . Así que $u'v = 0$ y los dos vectores son ortogonales, o $\lambda - \mu = 0$ y los dos valores propios son iguales. En este último caso, el espacio propio de ese valor propio repetido puede contener vectores propios que sean no ortogonal. Así que tu instinto de preguntarte por qué los vectores propios tienen que ser ortogonales era bueno; ¡si hay valores propios repetidos puede que no lo sean! ¿Y si la covarianza de la muestra es la matriz de identidad? Ésta tiene valores propios repetidos $1$ y cualquier dos vectores distintos de cero son vectores propios, ortogonales o no. (Pensar en estos casos especiales suele ser una buena forma de detectar contraejemplos).

Si una matriz simétrica tiene un valor propio repetido, podemos elija para elegir vectores propios ortogonales de su espacio propio. Eso es lo que queremos hacer en PCA, porque encontrar componentes ortogonales es el objetivo del ejercicio . Por supuesto, es poco probable que la matriz de covarianza de la muestra tenga valores propios repetidos (de ser así, bastaría una pequeña perturbación de los datos para que fueran desiguales), pero debemos tener cuidado al definir nuestro algoritmo para que elija realmente vectores propios ortogonales. (Tenga en cuenta que que y en qué orden, es arbitrario. Piense en la matriz identidad y en todos sus posibles conjuntos ortogonales de vectores propios. Se trata de una generalización de la elección arbitraria entre $v$ y $-v$ para un valor propio único. El resultado de dos implementaciones diferentes de PCA puede parecer bastante diferente).

Para ver por qué está garantizado que puede crear nuestra aplicación de eig(cov(X)) en otras palabras, por qué siempre hay "suficientes" vectores ortogonales que podemos elegir de ese espacio propio, tienes que entender por qué las multiplicidades geométricas y algebraicas son iguales para las matrices simétricas. Si el valor propio aparece dos veces, podemos elegir dos vectores propios ortogonales; si aparece tres veces, podemos elegir tres, y así sucesivamente. Se plantean varios enfoques en este hilo de intercambio de pilas de matemáticas pero el método habitual es a través del Descomposición de Schur . El resultado que buscas está probablemente demostrado en tu libro de texto de álgebra lineal como el "teorema espectral" (aunque ese La frase también puede referirse a varios resultados más generales ) o quizás con un nombre más específico como "descomposición simétrica de valores propios". Las matrices simétricas tienen varias propiedades interesantes que vale la pena conocer, por ejemplo sus valores propios son reales por lo que podemos encontrar vectores propios reales, con implicaciones obvias para el ACP.

Por fin, cómo ¿podemos escribir una aplicación que lo consiga? Consideraré dos implementaciones de PCA en R . Podemos ver el código para princomp : mira methods(princomp) entonces getAnywhere(princomp.default) y observamos edc <- eigen(cv, symmetric = TRUE) . Así que eigen utilizará rutinas LAPACK para matrices simétricas . Comprobación de la Guía del usuario de LAPACK (3ª edición) para " problemas propios simétricos "vemos que primero se descompone $A = QTQ'$ donde $T$ es tridiagonal simétrica y $Q$ es ortogonal, entonces descompone $T = S \Lambda S'$ donde $\Lambda$ es diagonal y $S$ ortogonal. Entonces escribiendo $Z = QS$ hemos diagonalizado $A = Z \Lambda Z'$ . Aquí $\Lambda$ es el vector de valores propios (de $T$ y también de $A$ - funcionan igual) y puesto que $Z$ es el producto de dos matrices ortogonales también es ortogonal. Los vectores propios calculados son las columnas de $Z$ por lo que podemos ver que LAPACK garantiza que serán ortonormales (si quieres saber exactamente cómo son los vectores ortogonales de $T$ mediante un procedimiento de representaciones relativamente sólidas, consulte la documentación de DSYEVR ). Así que ese es un enfoque, pero por razones numéricas sería mejor hacer un descomposición de valores singulares . Si miras bajo el capó de otra función PCA en R verás que así es como prcomp funciona. R utiliza un grupo diferente de rutinas LAPACK para resolver este problema.

4voto

user42170 Puntos 11

Creo que podría ser útil alejarse de las matemáticas y pensar en el objetivo del PCA. En mi opinión, el ACP se utiliza para representar conjuntos de datos de grandes dimensiones (muchas variables) de la forma más clara posible, es decir, de la forma que revele la mayor parte posible de la estructura de datos subyacente.

Por poner un ejemplo, consideremos un conjunto de datos con 3 variables: altura, peso y edad de las personas. Si tienes estos datos, podrías crear 3 gráficos de dispersión bidimensionales separados, Altura vs. Peso, Peso vs. Edad, y Edad vs. Altura--y si los graficaras, todos se verían como 'cuadrados' con base=eje X y eje Y=eje Y.

Pero si sospecha que existe una relación interesante entre las 3 variables, probablemente querrá crear un gráfico tridimensional de los datos, con los ejes X, Y y Z, lo que crearía un gráfico "cúbico" tridimensional. Este gráfico podría revelar una relación interesante que le gustaría comunicar a la gente. Pero, por supuesto, no puede imprimir un gráfico tridimensional, así que tiene que proyectar los datos en un trozo de papel bidimensional, lo que significa que tiene que elegir 2 dimensiones a las que dar prioridad, a expensas de la tercera (que sería ortogonal al trozo de papel en el que está imprimiendo).

Podría intentar incluir la 3ª dimensión visualmente con el uso de códigos de colores o burbujas de distintos tamaños para los puntos. O bien, puede girar el gráfico (mentalmente o con un programa informático) hasta encontrar una nueva proyección que exprese la mayor cantidad posible de información tridimensional en el espacio bidimensional: piense visualmente en girar el "cubo" hasta que la relación de datos subyacente que desea mostrar sea lo más clara posible para imprimirla en papel. Al girar el "cubo" 3D en el espacio 2D, se crean nuevos ejes sintéticos, y estos nuevos ejes sintéticos son ortogonales entre sí y corresponden a la longitud y anchura del papel en el que se está imprimiendo. Si te desplazas a lo largo de estos nuevos ejes sintéticos, te estás moviendo a través de múltiples dimensiones de los datos originales (altura, peso y edad) al mismo tiempo, pero puedes desplazarte a lo largo del nuevo eje X sintético (la anchura del papel) sin moverte a lo largo del eje Y sintético.

Podemos pensar en esto visualmente, porque nuestros cerebros entienden los espacios tridimensionales, pero las cosas se vuelven rápidamente problemáticas si hablamos de conjuntos de datos de dimensiones superiores. No podemos imaginar "hipercubos" de 9 dimensiones (al menos yo no puedo), pero a menudo tenemos que tratar con conjuntos de datos que contienen muchas variables. Podemos utilizar software (o matemáticas agotadoras) para "rotar" los datos de 9 dimensiones a través del espacio, hasta que encontremos la nueva proyección que represente la mayor parte posible de la estructura de datos de mayor dimensión, para imprimir en una página 2D.

Esto es exactamente lo que hace el PCA. Para simplificar, consideremos el ejemplo anterior del conjunto de datos tridimensionales representado en un espacio cúbico: veríamos algo parecido a una nube de puntos. PCA simplemente rota esa nube hasta que encuentra la línea recta "más larga" posible a través de esa nube - la dirección de esta línea se convierte en PC1. A continuación, con PC1 fija, la nube de puntos de datos se gira de nuevo, a lo largo de PC1, hasta que se encuentra el siguiente eje ortogonal 'más largo', que es PC2. Entonces se puede imprimir un nuevo gráfico 2D (PC1 vs. PC2) que capture la mayor parte posible de la estructura de datos 3D. Y, por supuesto, puede seguir y encontrar PC3, PC4 y así sucesivamente, si ayuda a entender los datos.

A continuación, los resultados del ACP le indicarán qué parte de la varianza de los datos explican los nuevos componentes principales sintéticos, y si los ejes del ACP capturan más varianza de los datos de la que cabría esperar por azar, podemos deducir que existe una relación significativa entre las variables medidas originales.

En mi opinión, toda la discusión sobre los vectores propios y el álgebra matricial no viene al caso (y además, no tengo mucha inclinación matemática): los ejes ortogonales son una parte inherente de este tipo de álgebra matricial. Por lo tanto, citar los fundamentos matemáticos de los ejes ortogonales no explica realmente por qué utilizamos este enfoque para el ACP. Utilizamos esta álgebra matricial en el análisis estadístico porque nos ayuda a revelar características importantes de las estructuras de datos que nos interesan.

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