03 de Marzo del 2022 | Jhonatan Montilla

Análisis de Componenetes Principales (PCA)

Hay mucho más en el análisis de componentes principales, más allá del contenido de este artículo, por lo que la única manera de apreciar verdaderamente la belleza de este es experimentarlo por usted mismo. Por lo tanto, vamos a compartir algunos fragmentos de código aquí para cualquiera que quiera probarlo.

Primero se cargaran las librerías necesarias y crearemos algunos datos sintéticos para las pruebas.

Los datos parecen estar listos para en análisis con PCA. Vamos a intentar reducir su dimensionalidad, afortunadamente para nosotros, la librería de Python, Sklearn hace que el análisis de componentes principales sea muy fácil de ejecutar, aunque tome varias palabras explicar el análisis con PCA, con dicha librería solo necesitamos 3 líneas para ejecutarlo.

Hay un par de partes móviles aquí. Cuando ajustamos nuestros datos a la función PCA de Sklearn, hace todo el trabajo pesado para devolvernos un modelo PCA y los datos transformados.

El modelo nos da acceso a multitud de atributos como valores propios, vectores propios, media de los datos originales, varianza explicada y la lista continúa. Estos son increíblemente perspicaces si queremos entender qué ha hecho el PCA con nuestros datos.

Un atributo que nos gustaría resaltar es el pca.explained_varianceratio que nos dice la proporción de varianza explicada por cada componente principal. Podríamos visualizar esto con un Screen Plot.

El gráfico nos informa que usar 2 componentes principales en lugar de 3 está bien porque éstos pueden capturar más del 90% de la varianza.

Además de esto, también podemos ver las combinaciones de variables que creó cada componente principal con pca.components_**2. Vamos a crear un mapa de calor para mostrar esto.

En nuestro ejemplo, podemos observar que PCA1 está compuesto por un 34% de x0, un 30% de x1 y un 36% de x2. PCA2 está dominado principalmente por x1.

Sklearn pone a disposición muchos más atributos útiles. Para aquellos que estén interesados, recomendamos echar un vistazo a la sección de atributos de PCA en la documentación de Sklearn.

Ahora que entendemos un poco mejor los componentes principales, podemos tomar una decisión final sobre la cantidad de componentes principales que queremos conservar. En este caso, creemos que 2 componentes principales son suficientes.

Entonces, podemos volver a ejecutar el modelo PCA, pero esta vez con el argumento n_components = 2, que le dice a PCA que conserve solo los 2 componentes principales principales para nuestro caso de estudio.

Esto nos devolverá un DataFrame con los dos primeros componentes principales. Finalmente, podemos trazar un diagrama de dispersión para visualizar nuestros datos.

Observaciones finales

PCA es un concepto matemáticamente hermoso y espero poder transmitirlo en un tono informal para que no se sienta abrumador. Para aquellos que están ansiosos por ver los detalles esenciales, he adjuntado algunas discusiones/recursos interesantes a continuación para su lectura.