Ya hemos visto cómo realizar un análisis de componentes principales en R usando los datos presentes en paquetes estadísticos. Sin embargo, por la naturaleza de los datos y su estructura dentro de R Commander, la generación de gráficos de este análisis es ligeramente diferente. Aquí os voy a explicar cómo poder crear una figura de análisis de componentes principales en R Commander de un modo muy sencillo. Además, podremos incluir elipses de equiprobabilidad por cada uno de los grupos presentes.
Quiero leer...
Generar una figura de análisis de componentes principales en R
Como es lógico, primero tenemos que tener un conjunto de datos. Y con ellos, realizar un análisis de PCA.
Este conjunto de datos consta de 9 columnas y 12 filas. De las 9 columnas o variables, 8 de ellas son numéricas (de VAR1
a VAR8
) y una de ellas categórica (SP
). Respecto a las filas, realmente son 12 elementos u observaciones sobre las que hemos tomado las medidas pertinentes. Nos descargamos los datos pinchando el siguiente botón:
Los importamos a continuación en R Commander siguiendo la ruta Data → Import data → From text file, clipboard, or URL...
. Dependiendo de si hemos descargado los datos o los hemos copiado, los importaremos con Local file system
o Clipboard
.
Cuando visualizamos el conjunto de datos en R Commander, que hemos llamado previamente como PCA
, vemos que efectivamente están compuesto por 9 variables y 12 observaciones.
Realizamos el análisis de componentes principales
Vamos a la ruta de R Commander Statistics → Dimensional analysis → Principal-component analysis...
y seleccionamos todas las variables, marcando la opción de Screeplot (gráfico de desmoronamiento). El resultado es el siguiente:
> local({ + .PC <- princomp(~VAR1+VAR2+VAR3+VAR4+VAR5+VAR6+VAR7+VAR8, cor=TRUE, data=Dataset) + 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 Comp.6 Comp.7 Comp.8 VAR1 -0.1873921 0.56524063 -0.15304345 0.02673099 0.253147686 0.59026619 0.43841332 0.12863218687 VAR2 -0.4289196 0.08308355 0.04990822 0.34246540 -0.446670781 -0.22223837 0.06957113 0.66000519941 VAR3 -0.4163887 0.17197292 0.01755336 0.31069177 -0.357060898 -0.08889445 0.13049703 -0.74012435016 VAR4 -0.4050317 0.16928052 -0.67103020 -0.34462475 0.085904880 -0.14647911 -0.45760850 0.00208445540 VAR5 -0.4142241 0.10860031 0.63511681 -0.64160803 -0.002450655 -0.01272377 -0.03771204 0.00006144017 VAR6 0.1258707 0.59684933 0.27501455 0.31752144 0.419073826 -0.41540358 -0.32138756 -0.00126791339 VAR7 0.3556294 0.35809232 0.07703739 -0.07018063 -0.586009010 0.40016246 -0.48049093 0.00542593443 VAR8 -0.3599785 -0.34513233 0.19635706 0.38639521 0.287217500 0.48988320 -0.49085121 0.00523893650 Component variances: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 5.31582369093192 2.53588369610248 0.11524424171066 0.02795346979183 0.00478294368879 0.00024185505501 0.00007005968195 0.00000004303735 Importance of components: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 Standard deviation 2.305607 1.5924458 0.33947642 0.167192912 0.069158829 0.01555168978 0.00837016618 0.000207454441867 Proportion of Variance 0.664478 0.3169855 0.01440553 0.003494184 0.000597868 0.00003023188 0.00000875746 0.000000005379668 Cumulative Proportion 0.664478 0.9814634 0.99586895 0.999363137 0.999961005 0.99999123716 0.99999999462 1.000000000000000
Podemos observar que el 98.15% de la variación se encuentra en los dos primeros componentes principales.
Crear una figura de PCA en R con ggbiplot
El paquete necesario para realizar exitosamente este gráfico estadístico es ggbiplot. Este paquete no está en los repositorios CRAN de R, por lo que tenéis que instalarlo de otro modo al explicado en cómo instalar y cargar paquetes en R Commander. En su web oficial se indica cómo se instala. Sin embargo, se han documentado algunos errores en este proceso que han sido solventados en foros como el de GitHub.
Seleccionamos la línea de código .PC
Una vez que tenemos cargado e instalado el paquete anterior, copiamos la línea de código del análisis de componentes principales mostrado previamente que empieza por .PC
, y lo pegamos quitándole el punto (.
) inicial, tal y como se ve a continuación:
PC <- princomp(~VAR1+VAR2+VAR3+VAR4+VAR5+VAR6+VAR7+VAR8, cor=TRUE, data=PCA)
Generamos el código de la figura con ggbiplot
Generamos un objeto (g
) que haga la figura. Fijáos en que hay que poner PC en
su sitio, si es este el nombre que le hemos puesto al análisis. PCA$SP
se refieren respectivamente al nombre del conjunto de datos y al nombre de la variable categórica.
g <- ggbiplot(PC, obs.scale = 1, var.scale = 1, groups = PCA$SP, ellipse = TRUE, circle = FALSE)
Al código anterior no habría que modificarle nada, pero se puede personalizar
g <- g + scale_color_discrete(name = '') g <- g + theme(legend.direction = 'horizontal', legend.position = 'top') print(g)
Si en vez de hacerlo por partes, combinamos todo el código en una secuencia ordenada de funciones, tendríamos el siguiente resultado:
PC <- princomp(~VAR1+VAR2+VAR3+VAR4+VAR5+VAR6+VAR7+VAR8, cor=TRUE, data=PCA) g <- ggbiplot(PC, obs.scale = 1, var.scale = 1, groups = PCA$SP, ellipse = TRUE, circle = FALSE) + scale_color_discrete(name = '') + theme(legend.direction = 'horizontal', legend.position = 'top') + scale_color_discrete(name = '') + theme(legend.direction = 'horizontal', legend.position = 'top') print(g)
Y este es por fin el resultado de crear figura de análisis de componentes principales en R Commander:
Si quieres aprender más en detalle cómo se pueden personalizar estas figuras de análisis de componentes principales, no te pierdas esta fabulosa entrada con mucho más detalles de los explicados aquí. Acabarás siendo un auténtico experto.
Saludos, intento cargar el ggbiplot con el siguiente comando
install.packages(«ggbiplot»)
use el pais de España, luego intente con Mexico, pero me sale el siguiente aviso:
Warning: package ‘ggbiplot’ is not available (for R version 3.3.2)
Estoy usando R version 3.3.2
¿Habrá alguna forma de cargar ese paquete?
Hola Carlos, perdona la espera. Intenta instalar el paquete con este comando: install.packages(«ggbiplot», dependencies=TRUE). Este último atributo le está indicando que instale todos los paquetes que sean necesarios para el correcto funcionamiento de ggbiplot.
buenas noches, porque al momento de ejecutar el comando me sale este mensaje: ERROR: objeto ‘g’ no encontrado
ayuda por favor.
Hola Esteban, primero tienes que crear el objeto g que es el ggbiplot (g <- ggbiplot(PC, obs.scale = 1, var.scale = 1, groups = PCA$SP, ellipse = TRUE, circle = FALSE))