Índice de Contenidos

  1. Introducción
  2. Reducción de la dimensionalidad vs Selección de Variables
  3. Aplicaciones de las técnicas de reducción de la dimensionalidad
  4. Método de Análisis de Componentes Principales para reducción de dimensionalidad en conjuntos de datos.
    1. ¿Qué son los componentes principales?
    2. Un ejemplo gráfico
  5. El algebra lineal detrás del Análisis de Componentes Principales
    1. Eigenvectors (Vectores Propios)
    2. Eigenvalues (Valores Propios)
  6. Cálculo (algebraico) de las componentes principales
  7. Algunos temas importantes al calcular PCA
    1. Escalado de variables
    2. Reproducibilidad de las componentes
    3. Influencia de outliers
  8. Proporción de la varianza explicada
  9. ¿Cuál es el número óptimo de componentes principales?

La reducción de la dimensionalidad empleando el Análisis de Componentes Principales (PCA)

Hace unos días publiqué un artículo sobre los 4 problemas básicos que intenta resolver el Aprendizaje Automático. En dicho artículo se exponía una matriz en la que se podía ver como las técnicas de reducción de la dimensionalidad se emplean para la predicción de variables cuantitativas continuas en entornos no supervisados.

Figura 1. Matriz resumen de los problemas que resuelve el Aprendizaje Automático

La reducción de dimensionalidad, como su nombre indica, persigue la reducción de las dimensiones de un conjunto de datos (o dataset). ¡Pero cuidado!

Reducción de la dimensionalidad vs Selección de Variables

Es importante distinguir las técnicas de selección de variables de las técnicas de reducción de la dimensionalidad.

En el primer caso también conseguimos la «reducción» de las dimensiones de un dataset mediante la selección de «las mejores variables» empleando algún método de selección de las mismas (como, por ejemplo, el del Factor de Inflación de Varianza que se explica en este artículo). En la selección de variables, directamente, hay variables que se quitan del conjunto de datos y por ello la dimensionalidad se reduce.

Se puede ver mucho mejor en la figura 2, a continuación:

Figura 2. Ejemplo de Selección de Variables VS Reducción de la Dimensionalidad

En este caso, el dataset original hace referencia a un conjunto de vehículos testados por el Agencia de Certificación Americana para el Medio Ambiente.

Mediante la selección de variables (como se muestra en la flecha de la izquierda), se podría llegar a deducir que, quedándose con las columnas «desplazamiento» y «consumo», se pueden obtener modelos predictores de alto rendimiento. De esta manera se obvia el resto de variables. Por su parte, esas dos columnas que se han seleccionado se pueden seguir entendiendo como lo que son: desplazamiento de los cilíndros dentro del bloque motor y consumo del vehículo en millas por litro de combustible. Por tanto, no hay pérdida de la significancia de las variables.

Las técnicas de reducción de dimensionalidad aplicadas a este dataset, en cambio, producen algo como lo mostrado en la flecha de la derecha: dos columnas (variables) a las que se ha dado el nombre de «x_reducida1» y «x_reducida2». En este ejemplo se empleó el Análisis de Componentes Principales (Principal Component Analysis en inglés) o PCA para reducir el dataset a esas 2 «componentes» llamadas «x_reducida1» y «x_reducida2».

Ambas columnas tienen el objetivo de intentar representar la esencia del conjunto de datos original (con un total de 7 dimensiones) pero en 2 dimensiones.

Aplicaciones de las técnicas de reducción de la dimensionalidad

La principal de las aplicaciones de dichas técnicas de reducción de la dimensionalidad es reducir la complejidad de un conjunto de datos reduciendo el número de columnas (variables independientes) del mismo.

De esta manera se hace más fácil (a veces simplemente posible) su utilización en modelos predictivos o de análisis, así como reduciendo las posibilidades de sobreajuste (el famoso overfitting)

Otros usos posibles son:

  • Visualización de datos: Efectivamente para los seres humanos no es factible la visualización más allá de 3 dimensiones por lo que una reducción de la dimensionalidad puede ayudar en este sentido.
  • Usos específicos en, por ejemplo, motores de recomendación en servicios online.

Sin duda, un ejemplo del que eres testigo todos los días del empleo de técnicas de reducción de la dimensionalidad es lo que le permite a tu dispositivo móvil discernir qué actividad te encuentras realizando.

Figura 3. Tu smartphone emplea técnicas de reducción de la dimensionalidad para conocer qué actividad llevas a cabo.

En la actualidad los teléfonos inteligentes (smartphones) disponen de multitud de sensores que recopilan vectores de algunas decenas de datos (velocidad en horizontal, en vertical, ángulo de posición, cantidad de luz, etc). Por tanto, se trata de multitud de variables de entrada para la toma de decisiones, con lo cuál, se implementan técnicas de la reducción de la dimensionalidad como preproceso a la hora de aplicar un modelo predictivo que esté entrenado en traducir tus movimientos a las diferentes actividades que se señalan en la Figura 3.

Método de Análisis de Componentes Principales para reducción de dimensionalidad en conjuntos de datos.

Comunmente conocido como PCA por sus siglas en inglés, Principal Component Analysis, el PCA es un método que se encarga de encontrar los componentes principales de un conjunto de datos mediante técnicas de factorización matricial. Es decir, es un método estadístico que permite simplificar la complejidad de espacios muestrales con muchas dimensiones a la vez que conserva su información.

Los métodos de factorización matricial son aquellos que descomponen una matriz en un producto de submatrices. Estos detalles de algebra lineal se verán más adelante en el artículo.

Principal Component Analysis (PCA) pertenece a la familia de técnicas conocida como aprendizaje no supervisado (unsupervised learning). En contrapartida existen los métodos de aprendizaje supervisado (supervised learning, descritos en este artículo de introducción al Aprendizaje Automático) que tienen el objetivo de predecir una variable respuesta Y a partir de una serie de predictores. Para ello, se dispone de <em>p características (X_{1}, X_{2}, … X_{p}) y de la variable respuesta Y medidas en n observaciones. En el caso de aprendizaje no supervisado, la variable respuesta Y no se tiene en cuenta ya que el objetivo no es predecir Y sino extraer información empleando los predictores, por ejemplo, para identificar subgrupos. El principal problema al que se enfrentan los métodos de aprendizaje no supervisado es la dificultad para validar los resultados dado que no se dispone de una variable respuesta que permita contrastarlos.

El método de PCA permite por lo tanto “condensar” la información aportada por múltiples variables en solo unas pocas componentes. Esto lo convierte en un método muy útil de aplicar previa utilización de otras técnicas estadísticas tales como regresión, clustering… Aun así no hay que olvidar que sigue siendo necesario disponer del valor de las variables originales para calcular las componentes.

¿Qué son los componentes principales?

Los componentes principales de un conjunto de datos (o de una matriz, que viene a ser lo mismo) son aquellas direcciones en las cuáles la varianza de los elementos del dataset es máxima. Es decir, son aquellas direcciones en las cuales los elementos están más separados los unos de los otros.

Al descomponer el dataset en N componentes principales (donde N es el número de dimensiones que queremos) reducimos la dimensionalidad del dataset pero conservando la mayor varianza posible y por lo tanto conservando la mayor parte de la información en dicho dataset.

Un ejemplo gráfico

Veamos con un ejemplo gráfico en qué consiste dicha detección de los componentes principales de un dataset. Imaginemos el conjunto de datos con variables X1 y X2 representado en la Figura 4:

Figura 4. Representación 2-D del dataset de ejemplo.

Si ahora decidieramos determinar dónde se establece la máxima varianza de este conjunto de datos, visualmente es posible establecer que lo hace de manera paralela a X1 tal y como se muestra en la Figura 5, donde he decidido incluir también la fórmula matemática del cálculo de la varianza.

Figura 5. Dirección de máxima varianza del dataset

Efectivamente se comprueba que ese vector, dibujado en azul, es el vector de máxima varianza en el dataset y separa el conjunto de puntos lo máximo posible. Hemos encontrado, de manera visual y sobre un conjunto de datos «preparado», la primera de las componentes principales de este dataset. Por tanto será posible la reducción de una dimensionalidad 2 a una dimensionalidad 1 tal y como se muestra en la Figura 6.

Figura 6. Reducción de dimensionalidad 2 a 1.

Este es un caso eminentemente didáctico y he hecho coincidir la dirección del vector de componente principal con la dirección del eje X1, por tanto este dataset puede ser eminentemente explicado sólo con la variable X1.

El algebra lineal detrás del Análisis de Componentes Principales

Como hemos visto, el PCA se basa en técnicas de factorización matricial. En esta sección describiré dos de los conceptos matemáticos que se aplican en el PCA: eigenvectors y eigenvalues. También conocidos como vectores propios y valores propios de una matriz.

Eigenvectors (Vectores Propios)

Los eigenvectors son un caso particular de multiplicación entre una matriz y un vector. Observa la siguiente multiplicación:

(1)   \begin{equation*} \begin{pmatrix} 2 & 3\\ 2 & 1 \end{pmatrix} x \begin{pmatrix} 3 \\ 2 \end{pmatrix} = \begin{pmatrix} 12 \\ 8 \end{pmatrix} = 4 x \begin{pmatrix} 3 \\ 2 \end{pmatrix} \end{equation*}

El vector resultante de la multiplicación es un múltiplo entero del vector original. Los eigenvectors de una matriz son todos aquellos vectores que, al multiplicarlos por dicha matriz, resultan en el mismo vector o en un múltiplo entero del mismo. Los eigenvectors tienen una serie de propiedades matemáticas específicas:

  • Los eigenvectors solo existen para matrices cuadradas y no para todas. En el caso de que una matriz n x n tenga eigenvectors, el número de ellos es n.
  • Si se escala un eigenvector antes de multiplicarlo por la matriz, se obtiene un múltiplo del mismo eigenvector. Esto se debe a que si se escala un vector multiplicándolo por cierta cantidad, lo único que se consigue es cambiar su longitud pero la dirección es la misma.
  • Todos los eigenvectors de una matriz son perpendiculares (ortogonales) entre ellos, independientemente de las dimensiones que tengan.

Dada la propiedad de que multiplicar un eigenvector solo cambia su longitud pero no su naturaleza de eigenvector, es frecuente escalarlos de tal forma que su longitud sea 1. De este modo se consigue que todos ellos estén estandarizados. A continuación se muestra un ejemplo. Dado el eigenvector:

(2)   \begin{equation*} \begin{pmatrix} 3 \\ 2 \end{pmatrix}\end{equation*}

Su longitud es:

    \[\sqrt{3^2 + 2^2} = \sqrt{13}\]

Si se divide cada dimensión entre la longitud del vector, se obtiene el eigenvector estandarizado con longitud 1:

(3)   \begin{equation*} \begin{pmatrix} 3/\sqrt{13} \\ 2/\sqrt{13} \end{pmatrix}\end{equation*}

Eigenvalues (Valores Propios)

Cuando se multiplica una matriz por alguno de sus eigenvectors se obtiene un múltiplo del vector original, es decir, el resultado es ese mismo vector multiplicado por un número. Al valor por el que se multiplica el eigenvector resultante se le conoce como eigenvalue. A todo eigenvector le corresponde un eigenvalue y viceversa.

En el ejemplo de la ecuación (1) el eigenvalue (valor propio) del vector propio (3 2) es 4.

En el método PCA, cada una de las componentes se corresponde con un eigenvector, y el orden de componente se establece por orden decreciente de eigenvalue. Así pues, la primera componente es el eigenvector con el eigenvalue asociado más alto.

Cálculo (algebraico) de las componentes principales

Para explicar el cálculo algebraico de las componentes principales dentro de un conjunto de datos volveré a apoyarme en la ayuda que ofrece entender lo que hace PCA desde un punto de vista geométrico.

Nuevamente, supón que tenemos n conjunto de observaciones para las que se dispone de dos variables (X_{1},X_{2}). El vector que define la primera componente principal (PC_{1}) sigue la dirección en la que las observaciones varían más (linea roja). La proyección de cada observación sobre esa dirección equivale al valor de la primera componente para dicha observación (principal component scorespc_{i1}).

Figura 7. Interpretación geométrica de la primera componente principal de un conjunto de datos.

La segunda componente (PC_{2}) sigue la segunda dirección en la que los datos muestran mayor varianza y que no está correlacionada con la primera componente. La condición de no correlación entre componentes principales equivale a decir que sus direcciones son perpendiculares/ortogonales.

Figura 8. Interpretación geométrica de la segunda componente principal de un conjunto de datos (en verde).

Ahora ya estamos en disposición de comenzar con el cálculo algebraico de las componentes principales de un conjunto de datos.

Cada componente principal (PC_{i}) se obtiene por combinación lineal de las variables originales. Se pueden entender como nuevas variables obtenidas al combinar de una determinada forma las variables originales. La primera componente principal de un grupo de variables (X_{1}, X_{2}, … X_{p}) es la combinación lineal normalizada de dichas variables que tiene mayor varianza:

    \[PC_{1} = \phi_{11}X_{1} + \phi_{21}X_{2} + ... + \phi_{p1}X_{p}\]

Que la combinación lineal sea normalizada implica que:

    \[\sum_{j=1}^{p}\phi_{j1}^2 = 1\]

Los términos \phi_{11}X_{1}, \phi_{21}X_{2}, ... ,\phi_{p1}X_{p} reciben en el nombre de loadings y son los que definen a la componente. \phi_{11}X_{1} es el loading de la variable X_{1} de la primera componente principal. Los loadings pueden interpretarse como el peso/importancia que tiene cada variable en cada componente y, por lo tanto, ayudan a conocer que tipo de información recoge cada una de las componentes.

Dado un set de datos X con n observaciones y p variables, el proceso a seguir para calcular la primera componente principal es:

  • Centralización de las variables: se resta a cada valor la media de la variable a la que pertenece. Con esto se consigue que todas las variables tengan media cero.
  • Se resuelve un problema de optimización para encontrar el valor de los loadings con los que se maximiza la varianza. Una forma de resolver esta optimización es mediante el cálculo de eigenvector-eigenvalue de la matriz de covarianzas.

Una vez calculada la primera componente (PC_{1}) se calcula la segunda (PC_{2}) repitiendo el mismo proceso, pero añadiendo la condición de que la combinación lineal no pude estar correlacionada con la primera componente. Esto equivale a decir que PC_{1} y PC_{1} tienen que ser perpendiculares. El proceso se repite de forma iterativa hasta calcular todas las posibles componentes (min(n-1, p)) o hasta que se decida detener el proceso. El orden de importancia de las componentes viene dado por la magnitud del eigenvalue asociado a cada eigenvector.

Algunos temas importantes al realizar PCA

Escalado de las variables

El proceso de PCA identifica aquellas direcciones en las que la varianza es mayor. Como la varianza de una variable se mide en su misma escala elevada al cuadrado, si antes de calcular las componentes no se estandarizan todas las variables para que tengan media 0 y desviación estándar 1, aquellas variables cuya escala sea mayor dominarán al resto. De ahí que sea recomendable estandarizar siempre los datos.

Reproducibilidad de las componentes

El proceso de PCA genera siempre las mismas componentes principales independientemente del software utilizado, es decir, el valor de los loadings resultantes es el mismo. La única diferencia que puede darse es que el signo de todos los loadings esté invertido. Esto es así porque el vector de loadings determina la dirección de la componente, y dicha dirección es la misma independientemente del signo (la componente sigue una línea que se extiende en ambas direcciones). Del mismo modo, el valor específico de las componentes obtenido para cada observación (principal component scores) es siempre el mismo, a excepción del signo.

Influencia de outliers

Al trabajar con varianzas, el método PCA es altamente sensible a outliers, por lo que es altamente recomendable estudiar si los hay. La detección de valores atípicos con respecto a una determinada dimensión es algo relativamente sencillo de hacer mediante comprobaciones gráficas. Sin embargo, cuando se trata con múltiples dimensiones el proceso se complica. Por ejemplo, considera un hombre que mide 2 metros y pesa 50 kg. Ninguno de los dos valores es atípico de forma individual, pero en conjunto se trataría de un caso muy excepcional. La distancia de Mahalanobis es una medida de distancia entre un punto y la media que se ajusta en función de la correlación entre dimensiones y que permite encontrar potenciales outliers en distribuciones multivariante.

Proporción de la varianza explicada

Como sabemos, PCA produce una reducción de la dimensionalidad, implicando que la varianza original del dataset se ve comprometida.

Por tanto, una de las preguntas más frecuentes que surge tras realizar un PCA es: ¿Cuánta información presente en el set de datos original se pierde al proyectar las observaciones en un espacio de menor dimensión? o lo que es lo mismo ¿Cuanta información es capaz de capturar cada una de las componentes principales obtenidas? Para contestar a estas preguntas se recurre a la proporción de varianza explicada por cada componente principal.

Asumiendo que las variables se han normalizado para tener media cero, la varianza total presente en el set de datos se define como

    \[\sum_{j=1}^{p}Var(X_{j})=\sum_{j=1}^{p}\frac{1}{n}\sum_{i=1}^{n}x_{ij}^2\]

y la varianza explicada por la componente principal m-ésima es:

    \[\frac{1}{n}\sum_{i=1}^{n}PC_{im}^2=\frac{1}{n}\sum_{i=1}^{n}\left(\sum_{j=1}^{p}\phi_{jm}x_{ij}\right)^2\]

Por lo tanto, la proporción de varianza explicada por la componente principale m-ésima viene dada por el ratio:

    \[\frac{\sum_{i=1}^{n}\left(\sum_{j=1}^{p}\phi_{jm}x_{ij}\right)^2}{\sum_{j=1}^{p}\sum_{i=1}^{n}x_{ij}^2}\]

Tanto la proporción de varianza explicada como la proporción de varianza explicada acumulada son dos valores de gran utilidad a la hora de decidir el número de componentes principales a utilizar en los análisis posteriores. Si se calculan todas las componentes principales de un set de datos, entonces, aunque transformada, se está almacenando toda la información presente en los datos originales. El sumatorio de la proporción de varianza explicada acumulada de todas las componentes es siempre 1.

¿Cuál es el número óptimo de componentes principales?

Aunque lo he dejado para el final de este artículo, por supuesto, es una cuestión fundamental cómo determinar el número óptimo de componentes principales a obtener cuándo realizamos un PCA.

Por lo general, dada una matriz de datos de dimensiones n x p, el número de componentes principales que se pueden calcular es como máximo de n-1 o p (el menor de los dos valores es el limitante). Sin embargo, siendo el objetivo del PCA reducir la dimensionalidad, suelen ser de interés utilizar el número mínimo de componentes que resultan suficientes para explicar los datos. No existe una respuesta o método único que permita identificar cual es el número óptimo de componentes principales a utilizar. Una forma de proceder muy extendida consiste en evaluar la proporción de varianza explicada acumulada y seleccionar el número de componentes mínimo a partir del cual el incremento deja de ser sustancial.

Figura 9. Gráfico de la proporción de la varianza acumulada explicada para cálculo del número óptimo de componentes principales.

Si has llegado hasta aquí entendiendo los pasos matemáticos detrás del método de Análisis de Componentes Principales estás realmente preparado para el mundo del Data Science. ¡Enhorabuena!

Y para seguir avanzando te recomiendo, si no lo has hecho todavía, suscribirte a la comunidad de profesorDATA.com 🙂

Suscríbete al Blog!

Recibe los próximos artículos sobre todos los temas que tienes que dominar para convertirte en un profesional del Machine Learning y de la Ciencia de Datos!

¿Crees que puede serle útil a alguien más? ¡Comparte! :)
0 0 votos
Valora este artículo!
Suscribirse a los comentarios de este artículo
Notificarme de
guest
0 Comments
Inline Feedbacks
Ver todos los comentarios