Análisis de Componentes Principales en R Commander (Multivariante III)

El análisis de componentes principales (ACP, o de sus siglas en inglés PCA, Principal Component Analysis) consiste en generar nuevas variables que sean resultado de combinanciones lineales de las originales, consiguiendo agrupar la mayor variación posible reduciendo su número. El primer componente agrupa la mayor parte de variación, el segundo algo menos, y así sucesivamente. De esta forma, en vez de tener muchas variables, puede resducirse su número agrupándolas pero manteniendo la mayor parte de la variación observada.

El PCA no necesita ninguna asunción estadística previa, por lo que no es estrictamente necesario testear su normalidad, aunque sus variables tienen que ser cuantitativas.

En un artículo publicado se realizó un análisis morfométrico de posibles paralelos para un vaso ibérico que se descubrió en la Sierra de Los Hermanillos, en Jumilla, Murcia (Gil González 1997). Se usaron seis dimensiones de los vasos, que son realmente las 6 variables que se van a utilizar para realizar el PCA, todas medidas en centímetros:

  • DBOCA: Diámetro de la boca
  • DCARENA: Diámetro máximo (diámetro de la carena)
  • DCUELLO: Diámetro mínimo del cuello
  • DBASE: Diámetro de la base
  • H: Altura del vaso
  • HCARENA:Distancia carena-borde

Los datos se obtuvieron de vasos procedentes de varios yacimientos:

  • COIXX: Coimbra del Barranco
  • AMA: El Amarejo
  • HECXXX: Cueva de los Hermanillos
  • MERX: Cueva de Merinel
  • BASX: La Bastida de les Aleluses
  • CIGXXX: El Cigarralejo
  • NIEXXX: Los Nietos
  • MOLIXXX: Los Molinicos

Los datos pueden descargarse desde la web del libro con el nombre Ejemplo vasos ibéricos.txt. Al conjunto de datos cargos en R Commander se le da el nombre de vasosibericos. A continuación se realiza el PCA sobre las 6 variables y las 22 cerámicas de este estudio, incluyendo la de Los Hermanillos.

8.1 Ejecución en R Commander

En R Commander, el análisis de componentes principales se realiza siguiendo la siguiente ruta (Figura 91): Statistics - Dimensional analysis - Principal-components analysis....

Figura 91: Modo de ejecutar un análisis de componenetes principales en R Commander con las dos pestañas de la ventana.

Aparece una ventana con 2 pestañas: Data y Options (Figura 91). En la pestaña Data se seleccionan las 6 variables del estudio. En la pestaña Options existen tres opciones:

  1. Analyze correlation matrix. Marcar o no esta opción es crítico. En el análisis de componentes principales es importante, dependiendo de la naturaleza de los datos, estandarizar o no estandarizar los datos:
    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). Es este caso hay que marcar la casilla de Analyze correlation matrix.
    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. En este caso no hay que marcar la casilla de Analyze correlation matrix.
  2. Screeplot. Este gráfico de sedimentación muestra los autovalores que presentan los diferentes componentes principales. Existirán tantos componentes principales como variables tenga el estudio. En este caso existirán 6 componentes principales que serán el resultado de la combinación lineal de las mismas.
  3. Add principal components to data set. Si supiéramos con cuántos componentes principales sería suficiente emplear, se podrían añadir sus valores como variables en el conjunto de datos.

En nuestro ejemplo, como todas las variables están medidas en la misma unidad (centímetros) no tenemos que estandarizar los datos. Por lo tanto, dejamos desmarcada la opción Analyze correlation matrix.

8.2 Resultados e interpretación del PCA

Una vez todas las opciones están marcadas (Figura 91), se presiona sobre OK. A continuación se muestran los resultados:

local({
  .PC <- princomp(~DBASE+DBOCA+DCARENA+DCUELLO+H+HCARENA, cor=FALSE, 
  data=vasosibericos)
  cat("\nComponent loadings:\n")
  print(unclass(loadings(.PC)))
  cat("\nComponent variances:\n")
  print(.PC$sd^2)
  cat("\n")
  print(summary(.PC))
  screeplot(.PC)

})
## 
## Component loadings:
##             Comp.1     Comp.2     Comp.3      Comp.4      Comp.5
## DBASE   -0,1470068 -0,3967299  0,2491912  0,84211096  0,04986304
## DBOCA   -0,5543199  0,2099582  0,6579015 -0,28307393 -0,05731803
## DCARENA -0,5419694 -0,1498885 -0,1813197  0,04958952 -0,65014972
## DCUELLO -0,4613784  0,5821617 -0,3096808  0,30038928  0,48322188
## H       -0,3834959 -0,4852978 -0,5262368 -0,27351500  0,21514634
## HCARENA -0,1320932 -0,4490325  0,3152225 -0,20788216  0,54013177
##             Comp.6
## DBASE   -0,2173958
## DBOCA   -0,3638633
## DCARENA  0,4751547
## DCUELLO  0,1690515
## H       -0,4683946
## HCARENA  0,5887263
## 
## Component variances:
##      Comp.1      Comp.2      Comp.3      Comp.4      Comp.5      Comp.6 
## 58,58618093  1,09216123  0,56356229  0,14549234  0,09195857  0,05155372 
## 
## Importance of components:
##                           Comp.1     Comp.2      Comp.3      Comp.4
## Standard deviation     7,6541610 1,04506518 0,750707862 0,381434582
## Proportion of Variance 0,9678721 0,01804303 0,009310323 0,002403604
## Cumulative Proportion  0,9678721 0,98591518 0,995225503 0,997629107
##                           Comp.5       Comp.6
## Standard deviation     0,3032467 0,2270544418
## Proportion of Variance 0,0015192 0,0008516925
## Cumulative Proportion  0,9991483 1,0000000000
Figura 92: Gráfico de desmoronamiento o sedimentación del ejemplo de las cerámicas. Vemos que los valores de cada componente se corresponde con los autovalores de los resultados Component variances.

En la sección de los Component loadings de los resultados anteriores se muestran realmente las ecuaciones de las nuevas variables generadas (Comp.1, Comp.2, …, Comp.6). Cada una de éstas es un componente principal. Como se ha mencionado anteriormente, al tener 6 variables, se generan 6 componentes principales. Las ecuaciones de los dos primeros componentes principales (con sólo 2 decimales) se muestran a continuación:

Comp.1=–0.15×DBASE–0.55×DBOCA–0.54×DCARENA–0.46×DCUELLO–0.38×H–0.13×HACARENA Comp.2=–0.40×DBASE+0.21×DBOCA–0.15×DCARENA+0.58×DCUELLO–0.49×H–0.45×HACARENA

Estas ecuaciones permiten generar otras variables. Empleando los datos de la cerámica HEC007, por ejemplo, y sustituyendo sus valores en las fórmulas anteriores, obtenemos un valor en concreto para cada fórmula. Si se repite este procedimiento para las 22 cerámicas del estudio y para las 6 fórmulas, se generarían 6 nuevas variables (las 6 originales y sus correspondientes 6 componentes principales).

Como se ha comentado, el objetivo del PCA es reducir el número de variables. Por lo tanto, obteniendo 6 nuevas variables no parece que se reduzca su número respecto a las 6 originales. ¿Con cuántas nuevas variables hay que quedarse de esas 6? Esta pregunta puede contestarse siguiendo con la interpretación de los resultados.

Las varianzas de los componentes (Component variances) resumen cuánta varianza explica cada uno de los componentes. Se conocen como autovalores. En el caso de variables estandarizadas, la suma de todos estos valores es igual al número de componentes. Cuanto mayor sea su valor, mayor es la varianza que explican.

La interpretación de la proporción de la varianza (Importance of components) es esencial. Cada una de las 3 filas que aparecen significa:

  • 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. Esta fila es realmente la importante de los resultados. El primer componente acumula un 96.79% de la variación, lo que es un dato realmente elevado. El segundo componente acumula sólo un 1.8% de variación.
  • Cumulative Proportion: es la proporción acumulada, calculada sumando progresivamente la proporción de la varianza anterior. Obviamente, el resultado de la suma de todos los componentes es 1, como se puede observar en su valor del Comp.6.

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

Ahora bien, una vez comprendidos estos resultados, ¿con cuántos componentes principales hay que quedarse para reducir su número?

8.3 Selección del número de componentes

Un método informal, aunque tremendamente aplicado, de determinar con cuántos componentes es recomendable quedarse, se basa en elegir los componentes principales que agrupen:

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

Por lo tanto, siguiendo con los criterios para determinar con cuántos componentes principales sería necesario quedarse en nuestro ejemplo, con solo uno sería suficiente porque acumula un 96.79% de la varianza. Este valor es claramente superior al 70% mencionado. Como no son variables estandarizadas, no tenemos en consideración aquellos componentes que superen el autovalor de 1.

Sin embargo, para ejecutar un gráfico, normamente se emplean los dos primeros componentes principales.

8.4 Gráfico de PCA

Lamentablemente, no existe una opción en los menús de R Commander para poder obtener un gráfico de componentes principales. Hay que trabajar con los códigos. Primero, se localiza en los resultados la siguiente línea del código que se ha ejecutado:

.PC <- princomp(~DBASE+DBOCA+DCARENA+DCUELLO+H+HCARENA, cor=FALSE, data=vasosibericos)

A continuación se elimina el punto (.) de .PC y se escribe debajo de la línea biplot(PC). Este código se copia y pega en la parte de R Script de R Commander, se selecciona y se ejecuta. El resultado se observa en la Figura 93.

PC <- princomp(~DBASE+DBOCA+DCARENA+DCUELLO+H+HCARENA, cor=FALSE, data=vasosibericos)
biplot(PC)
Figura 93: Representación gráfica del PCA realizado sobre los vasos cerámicos ibéricos.

Las flechas rojas de la Figura 93 indican cada una de las variables en el estudio. Cuanto más larga sea la flecha, más influencia tiene. Además, hay que tener en cuenta la orientación y ángulo de las mismas, además de cómo se corresponden con el componente 1 (eje X) y el componente 2 (eje Y). El origen de todas las flechas es el punto (0,0), trazando un eje cartesiano. Los números se corresponden con cada una de las cerámicas en el estudio.

8.5 Influencia de las variables en los componentes

Aún falta conocer una última valoración. Se ha determinado que el componente principal 1 es el que más resume la variación, con más del 95%. Ahora bien, ¿cuáles son las variables que más influyen en este componente principal?

Esta pregunta puede responderse fijándose en los Component loadings del componente 1, como se ve a continuación.

##             Comp.1
## DBASE   -0,1470068
## DBOCA   -0,5543199
## DCARENA -0,5419694
## DCUELLO -0,4613784
## H       -0,3834959
## HCARENA -0,1320932

Los valores absolutos más altos y que más influencia tienen a la hora de diferenciar entre cerámicas ibéricas es el diámetro de la boca (DBOCA), el diámetro de la carena (DCARENA) y el diámetro del cuello (DCUELLO). La altura (H) también tiene una relevancia relativamente alta. Sin embargo, el diámetro de la base (DBASE) y la altura de la carena (DCARENA) tienen muy poca relevancia para poder diferenciar entre cerámicas. Se podría indicar, a modo de conclusión, que el tercio superior de las cerámicas es la parte que permite diferenciar principalmente estos tipos de cerámicas.

rEFERENCIAS

Gil González, Francisco. 1997. “Análisis de Componentes Principales Y Tipología Cerámica. Aplicación Al Estudio de Paralelos Para Un Vaso Ibérico Procedente de La Sierra de Los Hermanillos.” Pleita 1.