Me pide mi amigo Jesús Lagos que hagamos un vídeo hablando del análisis de componentes principales para un canal que tiene junto a Miguel Angel.
El caso es que llevo muchos años usándolo y lo estudié en la carrera, haciendo varios a mano, como no podía ser de otra manera, pero desde que empecé a usar software estadístico se me habían olvidado los detalles de la matemática subyacente.
Bien, dejando un poco todo eso, el análisis de componentes principales es una técnica de interdependencia que busca describir la relación entre las variables de un conjunto de datos e incluso obtener una reducción de su dimensión (si nos quedamos con k componentes principales siendo k menor que el número de variables del conjunto de datos).
Las componentes son una combinación lineal de las variables tales que, la primera recoge la dirección de la máxima varianza de los datos, la segunda es aquella que siendo ortogonal a la primera recoge la máxima varianza que no ha recogido la primera y así hasta llegar a tantas componentes como variables originales tienes. Visto de esta forma, no se trata más que de un cambio de base elegida de cierta forma y ahí es dónde interviene la diagonalización de matrices.
En el blog de Joaquín Amat, el cual recomiendo encarecidamente, se cuenta todo esto de manera mucho más clara, aquí os lo dejo
Una explicación más algebraica la podemos encontrar en el blog de Carlos
Esta matriz simétrica es justo la materia prima del PCA, diagonalizándola es como encontramos las direcciones de mayor variabilidad y se hace el cambio de base
Con la función eigen obtenemos tanto los valores propios como los vectores propios
Afortunadamente hay funciones y librerías que hacen estas cosas y dan ayudas a la interpretación.
Reducción de dimensionalidad
Ahora si simplemente queremos quedarnos con el mejor resumen de las 4 variables originales nos quedamos solo con primer PC
Mostrar / ocultar código
sort(t(pc_scores)[,1])#> Barcelona Betis Real Madrid Real Sociedad Espanyol #> -3.46460082 -2.69090398 -2.19175378 -1.63031251 -0.96444334 #> Celta Vigo Girona Sevilla Rayo Vallecano Villarreal #> -0.77766939 -0.68429649 -0.20760011 0.01532123 0.13996320 #> Valencia Atlético Madrid Valladolid Athletic Club Levante #> 0.25217154 0.31990099 0.42063611 0.69997361 1.20774846 #> Huesca Alavés Leganés Eibar Getafe #> 1.42757573 1.43582553 1.60505341 1.81794277 3.26946783
Dónde vemos que en un extremo está el Barcelona y en el otro el Getafe, ¿pero como pondera cada variable en esa componente principal? Pues simplemente viendo el primer vector propio (primera columna) se puede ver lo que pesa cada variable.
Asi vemos, que en la primera componente todas las variables tienen coordenada del mismo signo, es decir, se trata de una variable que pondrá en un extremo todos los equipos con alto valor en todas esas variables y en el otro los que tienen bajo valor en ese conjunto de variables.
La segunda PC ya si diferencia entre Creacion_toques y Creacion_toques_z2 con peso positivo vs Creacion_toques en AP y Z1.
Este comportamiento de un PCA es usual y se suele decir que la primera componente recoge el tamaño (equipos con alto valor en la mayoría de variables vs los que tienen bajo valor) y la segunda y siguientes componentes añaden matices.
Para facilitar la interpretación a veces se utiliza otro cambio de base haciendo rotaciones, la más usual es la rotación varimax, para facilitar la interpretación
PCA en R
En R ya hay multitud de funciones y librerías que hacen el pca directamente, por ejemplo princomp y obtenemos lo mismo que antes salvo el signo en alguna componente, lo cual no varía su interpretación
Esta entrada era solo para recordar que podemos obtener un PCA simplemente obteniendo los vectores propios de la matriz de correlaciones, y que aquello que vimos en los primeros cursos de la universidad sirve para algo.