Reducción de datos con componentes Principales

En este ejemplo utilizaremos el conjunto de datos de iris el cual cuenta con cuatro variables numéricas y una tipo factor. lo primero que hacemos es cargar las librerias. luego examinamos el conjunto de datos

Correlación entre variables

library(ggcorrplot)
library(corrplot)
library(factoextra)
library(FactoMineR)
ggcorrplot(cor(iris[,-5]),hc.order = T,type="lower")

En este gráfico se observa alta correlación entre variables, por lo que podemos continuar con la reducción por medio del método de componentes principales.

Cálculo de PCA

PCA(iris[,-5],graph = F)->pca_iris  # objeto  con toda  los resultados de PCA 
get_pca_var(pca_iris)->var # Resultados del PCA en variables
get_pca_ind(pca_iris)->ind # Resultadeos del PCA en individuos
pca_iris$eig
##        eigenvalue percentage of variance cumulative percentage of variance
## comp 1 2.91849782             72.9624454                          72.96245
## comp 2 0.91403047             22.8507618                          95.81321
## comp 3 0.14675688              3.6689219                          99.48213
## comp 4 0.02071484              0.5178709                         100.00000
var$contrib
##                  Dim.1       Dim.2     Dim.3     Dim.4
## Sepal.Length 27.150969 14.24440565 51.777574  6.827052
## Sepal.Width   7.254804 85.24748749  5.972245  1.525463
## Petal.Length 33.687936  0.05998389  2.019990 64.232089
## Petal.Width  31.906291  0.44812296 40.230191 27.415396

Porcentaje de la varianza explicado por cada componente

corrplot(var$cos2,is.corr = F)# correlacion de cada  dimension con cada variable

fviz_screeplot(pca_iris,addlabels=T,ylim=c(0,100))

Como se puede observar en las gráficos las primeras 2 componentes explican el 96% de la varianza de los datos adicionalmente se puede ver que la tercera y cuarta componente presentan una correlación casi nula con todas la variables.

Contribución de las componentes

fviz_contrib(pca_iris,choice = "var",axes = 1)

fviz_contrib(pca_iris,choice = "var",axes = 2)

Nuevamente se confirma que la contribución de dos componentes es mas que suficiente.

Gráfico de variables utilizando 2 componentes

fviz_pca_var(pca_iris,col.var="contrib",
             gradient.col="npg",repel = T)+ggtitle("Gráfico de variables")+theme_minimal()

En este gráfico de las variables se muestra la correlación entre ellas así como su contribución por parte de las componentes.

Gráfico de individuos sobre las dos componentes

fviz_pca_ind(pca_iris,geom.ind = "point",
             col.ind="cos2",gradient.col="jco"
             )+ggtitle("Grafico de  los individuos")

En este gráfico se observa que existe cierta agrupación de los datos. Hay que recordar que en las especies hay tres categorías, que son la virginica, versicolor y setosa, por lo que en vez de colorear por la contribución podemos colorear por la categoria.

fviz_pca_ind(pca_iris,geom.ind = "point",
             col.ind=iris$Species,
             palette ="jco",
             addEllipses=T)+
  ggtitle("Grafico de  los individuos")

El biplot

EL biplot es un gráfico que reúne tanto las variables, así como los individuos, todo en el mismo plano con las primeras dos componentes. Si la cantidad de individuos es pequeña se pueden colocar los nombres de los individuos, en nuestro caso no es recomendable.

fviz_pca_biplot(pca_iris,geom.ind="point",
                col.ind = iris$Species,
                addEllipses = T,
                palette =  "uchicago")+ggtitle("Variables e individuos")

Con este gráfico terminó el análisis de los datos.