Análisis de Componentes Principales en R Commander

El Análisis de Componentes Principales en R es un análisis estadístico multivariante que consiste en generar nuevas variables que sean resultado de la combinación lineal de las originales, consiguiendo agrupar la mayor variación posible reduciendo su número. Es decir, su objetivo principal es reducir el número de variables en nuestro análisis al menor número posible, normalmente a 2 ó 3. Estas nuevas variables reciben el nombre componentes principales. La primera componente principal agrupa la mayor parte de variación, la segunda algo menos, y así sucesivamente. De esta forma, en vez de tener muchas variables tenemos solo unas pocas que agrupan la mayor parte de la variación observada. Su acrónimo en español es ACP, o PCA si usamos el acrónimo inglés, Principal Component Analysis.

Quiero leer...

Tipos de datos necesarios para un análisis de componentes principales en R

  • Un conjunto de variables cuantitativas medidas sobre una muestra de individuos.
  • Distribución normal multivariante

Ejemplo:

Para nuestro ejemplo de Análisis de Componentes Principales tomamos 8 variables numéricas a 14 recién nacidos con poco peso (descargar datos):

  • V1 = edad de la madre (años)
  • V2 = número de cigarrillos fumados por la madre al día
  • V3 = altura de la madre (pulgadas)
  • V4 = peso de la madre (libras)
  • V5 = edad del padre (años)
  • V6 = nivel de estudios del padre
  • V7 = número de cigarrillos fumados por el padre al día
  • V8 = altura del padre (pulgadas)

¿Se puede reducir el número de variables agrupando la mayor variación posible?

Cargamos los datos en R Commander

Una vez descargados los datos del ejemplo, los introducimos en R Commander siguiendo la siguiente ruta:

Cargar datos
Datos – Cargar conjunto de datos…

Y los visualizamos dando a Visualizar conjunto de datos:

Datos Componentes Principales

Ejecutamos el Análisis de Componentes Principales en R Commander

Para realizar el Análisis de Componentes Principales a los datos del ejemplo, seguimos la siguiente ruta en R Commander:

Análisis de Componentes Principales en R Commander
Estadísticos – Análisis dimensional – Análisis de componentes principales…

Nos aparece ahora la siguiente ventana en la que tenemos que seleccionar las 8 variables de nuestro ejemplo, pinchando y arrastrando desde la V1 hasta la V8:

Análisis de componentes principalesAntes de dar a Aceptar, vamos a la pestaña de Opciones, y determinamos si queremos Estandarizar los datos o no.

Estandarización, ¿qué es y cómo usarlo en R Commander?

En el Análisis de Componentes Principales es importante, dependiendo de la naturaleza de nuestros datos, estandarizarlos o no:

  1. Estandarizar: cuando las variables en el estudio tengan escalas o unidades de medida diferentes. Se calcula a partir de la matriz de correlaciones (que tengan varianza = 1).
  2. No estandarizar: cuando las variables en el estudio tengan escalas o unidades de medida iguales. Se calcula a partir de la matriz de covarianzas.

Análisis de Componentes Principales - Estandarizar - R Commander Como los datos del ejemplo tienen diferentes escalas y medidas (años, alturas, pesos, etc), tenemos que Estandarizar seleccionando «Analizar la matriz de correlaciones».

Resultados e interpretación del análisis de componentes principales en R

Los resultados del análisis de componentes principales del ejemplo aparecen como se ve a continuación en R Commander:

Pantallazo-R Commander-1

Pero veamos qué significan todos esos datos:

> local({
+   .PC <- princomp(~V1+V2+V3+V4+V5+V6+V7+V8, cor=TRUE, data=Datos)
+   cat("nComponent loadings:n")
+   print(unclass(loadings(.PC)))
+   cat("nComponent variances:n")
+   print(.PC$sd^2)
+   cat("n")
+   print(summary(.PC))
+ })

Component loadings:
        Comp.1     Comp.2      Comp.3      Comp.4       Comp.5      Comp.6      Comp.7       Comp.8
V1  0.45927632 -0.3300700  0.42221491 -0.06912846  0.014058950  0.09484631 -0.08936572  0.692744662
V2 -0.42975751 -0.2662236  0.08772638 -0.32688585  0.445127021 -0.45333765  0.43955233  0.181724713
V3 -0.06900791 -0.6387247 -0.16726543  0.11575498 -0.186804457  0.52531263  0.45973313 -0.153908871
V4  0.03880912 -0.5597814 -0.41999034  0.27503283  0.007091408 -0.44997788 -0.48008663 -0.009493601
V5  0.48981256 -0.1997337  0.44528178 -0.07725784  0.091430449 -0.27164575  0.10749267 -0.649799865
V6  0.38390014  0.1163544 -0.37150886  0.14717175  0.782395703  0.24418386  0.08728867  0.003984449
V7 -0.43872101 -0.1867023  0.42200008  0.02548362  0.378383648  0.38241113 -0.52162403 -0.180079334
V8 -0.13540205  0.1027849  0.30869124  0.87809277  0.055148344 -0.16553023  0.25632827  0.092836342

Interpretación de los resultados (Component loadings):
También conocidos como loading factors,  autovectores, o eigenvectors), son los coeficientes de la ecuación de cada componente principal.
Por ejemplo, el componente principal 1 (Comp. 1), presenta la siguiente ecuación:

CP1 = 0.45927632 * Z1 – 0.42975751 * Z2  – 0.06900791 * Z3 + 0.03880912 * Z4 + 0.48981256 * Z5 + 0.38390014 * Z6 – 0.43872101 * Z7 – 0.13540205 * Z8

Nótese que en la ecuación, las variables originales (V1-V8) han sido sustituidas por Z (Z1-Z8), ya que son las variables Estandarizadas.

Component variances:
    Comp.1     Comp.2     Comp.3     Comp.4     Comp.5     Comp.6     Comp.7     Comp.8 
2.68616770 1.86196171 1.11240271 1.03044187 0.61920451 0.36727816 0.27738461 0.04515874 

Interpretación de los resultados (Component variances):
Se conocen como autovalores. El valor de cada componente es el cuadrado de su desviación estándar (ver la interpretación siguiente). La suma total da 8, ya que son 8 componentes principales y están estandarizados.

Importance of components:
                         Comp.1    Comp.2    Comp.3    Comp.4     Comp.5     Comp.6     Comp.7      Comp.8
Standard deviation     1.638953 1.3645372 1.0547050 1.0151068 0.78689549 0.60603478 0.52667315 0.212505858
Proportion of Variance 0.335771 0.2327452 0.1390503 0.1288052 0.07740056 0.04590977 0.03467308 0.005644842
Cumulative Proportion  0.335771 0.5685162 0.7075665 0.8363717 0.91377231 0.95968208 0.99435516 1.000000000

Interpretación de los resultados (Importance of components):

– Standard deviation: muestra las desviaciones estándar de cada componente principal. Se calcula a partir de los datos obtenidos sustituyendo los valores de cada recién nacido en la ecuación cada componente principal.
– Proportion of Variance: es la proporción de la varianza que explica cada componente principal. Su suma es igual a 1. Esta fila es realmente la importante de nuestros resultados.
– Cumulative proportion: es la proporción acumulada, calculada sumándolas progresivamente.

Observamos que las dos primeras componentes agrupan un 56.9% de la variación, o lo que es lo mismo, hay un 43.1% de variación que no se explica. Por lo tanto, ¿con cuántos componentes principales nos quedamos?

¿Con cuántos Componentes Principales nos quedamos?

Un método informal de determinar con cuántos componentes nos quedamos se basa en elegir las componentes principales que agrupen…

  • … más del 70% de la variación total, y…
  • … si proceden de datos estandarizados, que sus autovalores asociados sean mayores que 1.

Los autovalores de cada componente principal se pueden visualizar gráficamente. El nombre que recibe este gráfico se denomina gráfico de desmoronamiento o de sedimentación (scree diagram). En R Commander:

Autovalores y gráfica de desmoronamiento
Siguiendo la ruta descrita anteriormente para realizar el ACP, seleccionamos la pestaña Opciones, y presionamos sobre Gráfica de sedimentación.

El gráfico que sale con los autovalores (eigenvalues) de cada componente principal es el siguiente:

Gráfico de desmoronamiento o sedimentación

Copiando a continuación parte de los resultados previos, observamos que los 3 primeros componentes agrupan el 70.8% de la variación…

Importance of components:
                         Comp.1    Comp.2    Comp.3    Comp.4     Comp.5     Comp.6     Comp.7      Comp.8
Standard deviation     1.638953 1.3645372 1.0547050 1.0151068 0.78689549 0.60603478 0.52667315 0.212505858
Proportion of Variance 0.335771 0.2327452 0.1390503 0.1288052 0.07740056 0.04590977 0.03467308 0.005644842
Cumulative Proportion  0.335771 0.5685162 0.7075665 0.8363717 0.91377231 0.95968208 0.99435516 1.000000000

… y que hasta el cuarto componente principal tiene más de 1 en sus autovalores:

Component variances:
    Comp.1     Comp.2     Comp.3     Comp.4     Comp.5     Comp.6     Comp.7     Comp.8 
2.68616770 1.86196171 1.11240271 1.03044187 0.61920451 0.36727816 0.27738461 0.04515874 

Por lo tanto, nos quedamos con los 4 primeros componentes principales.

¿Cómo se interpreta todo esto en nuestro ejemplo?

Hemos decidido finalmente quedarnos con los 4 primeros componentes principales, porque son los que cumplen los requisitos establecidos en el apartado anterior. Pero… ¿qué significa? Copiemos los coeficientes de las ecuaciones de los componentes y observemos cuáles son los valores absolutos más altos en cada uno de ellos:

Component loadings:
        Comp.1     Comp.2      Comp.3      Comp.4      
V1  0.45927632 -0.3300700  0.42221491 -0.06912846
V2 -0.42975751 -0.2662236  0.08772638 -0.32688585
V3 -0.06900791 -0.6387247 -0.16726543  0.11575498
V4  0.03880912 -0.5597814 -0.41999034  0.27503283 
V5  0.48981256 -0.1997337  0.44528178 -0.07725784
V6  0.38390014  0.1163544 -0.37150886  0.14717175
V7 -0.43872101 -0.1867023  0.42200008  0.02548362
V8 -0.13540205  0.1027849  0.30869124  0.87809277 
  • El componente 1 agrupa un 33.6% de variación, y los valores absolutos más elevados de sus coeficientes son los presentes en V1, V2, V5 y V7. Esto significa que esas variables son las que agrupan esa variación en mayor medida. En nuestro ejemplo, esas variables se corresponden con la Edad de los padres y Números de cigarrillos fumados diariamente por ellos. Por lo tanto, parece que tienen relación con que los niños nazcan con poco peso.
  • El componente 2 agrupa un 23.3% de la variación, y los valores absolutos más elevados de sus coeficientes son los presentes en V3 y V4, que se corresponden con la Forma de la madre (altura y peso).
  • Los otros dos componentes son algo más difusos de interpretar, pero no son necesarios para realizar un correcto análisis de componentes principales.

2.4.1. Representación gráfica de los dos primeros componentes

Teniendo en cuenta lo que se ejecutó al inicio del análisis (a continuación un copia/pega), copiamos la línea destacada en negrita y subrayada y le quitamos el punto inicial (.PC)…

> local({
+   .PC <- princomp(~V1+V2+V3+V4+V5+V6+V7+V8, cor=TRUE, data=Datos)
+   cat("nComponent loadings:n")
+   print(unclass(loadings(.PC)))
+   cat("nComponent variances:n")
+   print(.PC$sd^2)
+   cat("n")
+   print(summary(.PC))
+ })

… tal que quede así, escribiendo debajo biplot (PC):

PC <- princomp(~V1+V2+V3+V4+V5+V6+V7+V8, cor=TRUE, data=Datos)
biplot(PC)

Esto lo copiamos y pegamos en R Commander (en la pestaña R Script). Seleccionamos ambas líneas y damos a Ejecutar. El resultado es el siguiente:

Gráfica de componentes principales

Vemos que en el eje de abscisas se representa el Componente Principal 1 y en el de ordenadas el Componente Principal 2.

Cuanto más largas sean las flechas rojas, más alto es el valor del coeficiente de esa variable en ese componente. Observamos que tenemos perfectamente la representación gráfica de lo observado en el punto 2.4.

Por ejemplo, vemos que en el Componente Principal 1, las flechas más largas son V5 y V1  (en valor positivo) y V7 y V2 (en valor negativo), que se corresponden con los coeficientes más altos obtenidos en el punto 2.4 para ese componente. Por otro lado, el Componente Principal 2 presenta dos variables (V3 y V4) con mayor longitud, que se corresponden nuevamente con las dos variables escogidas en el punto 2.4.

¿Queréis conocer otros métodos de generar figuras de análisis de componentes principales en R?

Aquí os dejamos unos enlaces muy interesantes y útiles para generar figuras profesionales en R de un PCA.

Añadir los componentes principales al conjunto de datos

Hemos decidido finalmente quedarnos con los 4 primeros componentes principales. ¿Cómo los añadimos al conjunto de datos para poder continuar la estadística con ellos?

Añadir componentes principales al conjunto de datos
Siguiendo la ruta descrita anteriormente para realizar el ACP, seleccionamos la pestaña Opciones, y presionamos sobre Añadir componentes principales al conjunto de los datos.

Nos aparecerá la siguiente ventana en la que diremos que queremos 4 componentes:

4 componentes principales

Al Visualizar conjunto de datos, veremos los 4 componentes añadidos a continuación de las 8 variables iniciales:

Componentes principales añadidos al conjunto de datos inicial

Reducción del número de variables, objetivo del Análisis de Componentes Principales

Si en vez de generar nuevas variables (como en el caso anterior), queremos desecharnos de las menos informativas entre las originales de nuestro estudio, algunos autores han propuesto métodos para ello.

Joliffe (1972, 1973) propone reducir directamente las variables originales al número de ellas que cumplan con los siguientes requisitos:

  1. Elegir los componentes principales cuyos autovalores sean mayores que 0.7.
  2. De las componentes principales escogidas, seleccionar la variable con mayor valor absoluto (que no haya sido seleccionada previamente).

En nuestro ejemplo tenemos 4 componentes principales cuyos autovalores están por encima de 0.7 (ver previamente). Los autovectores de cada componente se muestran a continuación:

Component loadings:
        Comp.1     Comp.2      Comp.3      Comp.4      
V1  0.45927632 -0.3300700  0.42221491 -0.06912846
V2 -0.42975751 -0.2662236  0.08772638 -0.32688585
V3 -0.06900791 -0.6387247 -0.16726543  0.11575498
V4  0.03880912 -0.5597814 -0.41999034  0.27503283 
V5  0.48981256 -0.1997337  0.44528178 -0.07725784
V6  0.38390014  0.1163544 -0.37150886  0.14717175
V7 -0.43872101 -0.1867023  0.42200008  0.02548362
V8 -0.13540205  0.1027849  0.30869124  0.87809277 
  • En Comp. 1 el valor absoluto más alto de sus coeficientes (0.4898) se corresponde con V5.
  • En Comp. 2 se corresponde con V3.
  • En Comp. 3 se corresponde con V5, pero como ya está seleccionado en el Comp. 1, seleccionamos el siguiente con más valor, V1.
  • En Comp. 4 se corresponde con V8.

Por lo tanto, nos quedaríamos exclusivamente con las variables V1, V3, V5 y V8.

 

Referencias

  • García Pérez, A., 2005. Métodos avanzados de estadística aplicada. Técnicas avanzadas, 1st ed. Universidad Nacional de Educación a Distancia, Madrid.

8 comentarios en «Análisis de Componentes Principales en R Commander»

  1. Excelente información
    Muchas gracias por compartir con tanta claridad este tema, tengo una consulta y me gustaría que me la resuelvas ya que no encuentro información, para hacer el ACP los datos deben ser normales?. El ACP es una técnica paramétrica?

    Responder

Deja un comentario