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
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.
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
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.
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.
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.
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 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.