Cargando



Construcción de gráficos con R

En este tutorial veremos los tipos de gráficos que podemos construir con el lenguaje de programación estadístico R, que tipo de variables podemos usar para la construcción y ejemplos prácticos para aplicar los conocimientos adquiridos.


feb 02 2015 22:03
Profesional
feb 02 2015 22:41
En tutoriales pasados estuvimos viendo las bondades del lenguaje y la forma de trabajar con el mismo, pudimos apreciar su poder de cómputo para resolver operaciones aritméticas de manera rápida y sencilla. Esto a pesar que es vital para el análisis de grandes cantidades de data, no es la fortaleza mayor del lenguaje.

Donde R brilla es en la construcción de gráficos antes de que el proceso estadístico comience, esto es bastante útil para poder evaluar variables individuales que nos darán una visual de varios factores, desde que si la data esta correcta, si cumple con los requisitos para el análisis hasta de evaluar patrones en la misma.

Gráficos de barras para variables categóricas


La manera más sencilla de empezar con la construcción de gráficos en R es utilizando variables categóricas, estas pueden ser el ***** de un empleado o incluso el sector de una empresa determinada, por mencionar algunas. Los gráficos de barra funcionan bastante bien con este tipo de variables y es por ello que empezaremos por estos.

La mejor manera de ver cómo funciona esta característica en R es con un ejemplo sencillo, donde utilizaremos el conjunto de datos chickwts el cual está incluido en el paquete de datasets y registra el peso de gallinas y la comida que han recibido, este contiene 71 clases y para ver toda la información referente al mismo podemos ejecutar el comando ?chickwts y nos debería desplegar una pantalla como vemos en la sección derecha de la siguiente imagen:


Ya habiendo consultado la información el dataset es momento de graficar estas variables categóricas, para ello lo primero que haremos será incluir el paquete de datasets:
# carga la informacion del paqueterequire(“datasets”)
Y luego con la función plot() le pasamos la variable feed del dataset chickwts:
# Grafico por defecto con el metodo plot() plot(chickwts$feed)
Al correr la última línea de comando se debería desplegar el siguiente gráfico en nuestra interfaz de salida de información:

graficos-R-2.jpg


Es importante mencionar que la función plot() es adaptable, esto significa que producirá diferentes tipos de gráficos dependiendo de la variable que le pases, en este ejemplo como le pasamos una variable categórica el mismo generó un gráfico de barra.A pesar que el método plot() es bastante poderoso no permite tener un control amplio sobre el gráfico como agregar títulos, reorganizar las barras o cambiar los márgenes, por nombrar algunos.

Para ello tenemos una alternativa y es la función barplot(), el cual nos da un mayor control sobre el gráfico pero para ello necesitamos calcular las frecuencias para el gráfico utilizando la función table(), veamos:
# Creando la tabla feeds <- table(chickwts$feed) feeds barplot(feeds)
Hecho esto ya podemos crear nuestro gráfico con barplot(), agregaremos unos parámetros con la función par() con la cual modificaremos los márgenes de nuestro gráfico y con nuestra función principal cambiaremos la orientación de las barras, cambiaremos el color de las mismas y agregaremos un título principal y las etiquetas para el eje x, veamos el código:
par(oma = c(1, 4, 1, 1))par(mar = c(4, 5, 2, 1))barplot(feeds[*****(feeds)], horiz = TRUE, las = 1, col = c("red", "red1", "red2", "red3", "red4", "maroon"), border = NA, main = "Frecuencias de los diferentes tipos de comida", xlab = "Numero de Gallinas")
Importante
Podemos correr línea por línea con la opción Run o podemos seleccionar todo el código y presionar Run, si queremos ejecutar de una vez nuestro programa o queremos depurar nuestro código, tenemos una opción para cada tipo de necesidad.


Si ejecutamos nuestro programa debemos ver algo parecido a la siguiente imagen:

graficos-R-3.jpg


Para finalizar, utilizamos el siguiente código para resetear los parámetros del gráfico y limpiamos el espacio de trabajo de variables, objetos y paquetes que no necesitamos:
par(oldpar)detach("package:datasets", unload = TRUE)rm(list = ls())
Cómo este tipo de análisis se realiza en un equipo de trabajo es importante poder compartir la información de manera rápida y sencilla, es por ello que RStudio posee la posibilidad de exportar nuestros gráficos como una imagen o PDF, para ello nos dirigimos al menú superior y seleccionamos plots o gráficos, en la siguiente imagen podemos ver cómo es el formato de salida cuando seleccionamos Guardar como Imágen:




Seleccionamos la ruta donde se almacenará nuestra imagen, le damos un nombre y si lo deseamos podemos cambiar el ancho y alto de la misma, presionamos Guardar y ya tendremos nuestro gráfico en un formato que podemos compartir sin ningún problema.

Gráfico de torta


Otra opción que tenemos para representar las variables categóricas son los gráficos de torta, estos gráficos son un poco deficientes en la forma que representan información ya que el ojo es bueno juzgando medidas lineales y no áreas relativas. En este tutorial explicaremos la forma de realizarlos, sin embargo recomendamos que se evite su utilización a menos que sea un requerimiento del proyecto que estamos realizando.

La construcción de los gráficos de torta es bastante similar a los de barra, primero debemos incluir el paquete dataset, calculamos la frecuencia para el gráfico y con la función pie() controlamos las opciones del mismo, utilicemos el dataset chickwts para demostrar su uso:
require(“datasets”)feeds <- table(chickwts$feed)feedspie(feeds)pie(feeds[*****(feeds, decreasing = TRUE)], init.angle = 90, clockwise = TRUE, col = c("seashell", "cadetblue2", "orange", "lightcyan", "maroon", "beige"), main = "Grafico de torta comida gallinas")
Como podemos ver la construcción es bastante similar, podemos definir los colores para el gráfico así como el título, al ejecutarlo veamos como luce:

graficos-R-5.jpg


Histogramas


Un histograma es una variación de un gráfico de barras el cual permite obtener un panorama de una determinada población, o muestra de acuerdo a una característica cuantitativa. Por ejemplo la temperatura en Fahrenheit es una variable de intervalo, ya que es posible decir que la temperatura para hoy es 2.4 grados mayor que la de ayer.

Para realizar un histograma es importante saber que tan lejos están nuestras medidas, variables como la temperatura o las distancias poseen valores que comienzan desde cero, estas variables nos pueden funcionar para los histogramas.

Como R ya trae un conjunto de datos predeterminados para cada tipo de gráfico que nos podamos encontrar, vamos a utilizar el dataset lynx el cual posee una serie de información en el tiempo, incluimos el paquete de datasets, utilizamos las funciones data() para inicializar la variable y luego con hist() graficamos nuestro histograma, veamos el código:
require(“datasets”)data(lynx)hist(lynx)
Al ejecutarlo obtendremos lo siguiente:


graficos-R-6.jpg



Como podemos ver un histograma en R es bastante fácil de leer, solo con las opciones por defecto, pero al igual que las funciones anteriores podemos controlar algunas de las opciones de nuestro gráfico, vamos a agregar algunas opciones a la función hist(), veamos cómo queda nuestro código con las modificaciones:

require(“datasets”)data(lynx)hist(lynx, breaks = 14, freq = FALSE, col = "maroon", main = "Histograma de linces atrapados", xlab = "Numeros de linces atrapados")
Veamos como luce nuestro histograma luego de ejecutarlo:


graficos-R-7.jpg



Cómo pudimos ver se pueden cambiar las opciones de nuestro gráfico sin ningún problema. Los histogramas en R nos permiten agregar otro tipo de gráficos sobre los mismos, esto para aumentar su funcionalidad y nivel de detalle, para el próximo ejemplo agregaremos 4 tipos diferentes de gráficos, primero una curva para representar una distribución normal, dos curvas de densidad de kernel y un gráfico lineal, veamos cómo queda nuestro código cuando añadimos estas funcionalidades:
require(“datasets”)data(lynx)hist(lynx, breaks = 14, freq = FALSE, col = "maroon", main = "Histograma de linces atrapados", xlab = "Numeros de linces atrapados")curve(dnorm(x, mean = mean(lynx), sd = sd(lynx)), col = "thistle4", lewd = 2, add = TRUE)lines(density(lynx), col = "blue", lwd = 2) lines(density(lynx, adjust = 3), col = "darkgreen", lwd = 2)rug(lynx, lwd = 2)
Como vemos es bastante sencillo agregar estos gráficos adicionales para dotar de más detalle a nuestro histograma, utilizando las funciones curve(), lines() y rug() para esta tarea, para finalizar veamos como luce nuestro histograma con estas nuevas opciones:

graficos-R-8.jpg


Diagrama de caja


Un diagrama de caja es aquel que está basado principalmente de cuartiles, que no son más que a división de los datos ordenados. Este diagrama permite visualizar estos datos, suministrando información acerca de todo el espectro que comprende a estos.

La creación de un diagrama de caja es bastante sencillo, para ello utilizaremos de nuevo el dataset lynx, veamos un código simple de su utilización:
require(“datasets”)data(lynx)boxplot(lynx)
Si ejecutamos nuestro programa deberíamos obtener el siguiente resultado:

graficos-R-9.jpg


La función boxplot() también nos permite obtener el control sobre nuestro gráfico y modificar sus opciones básicas ayudándonos a dar mayor detalle al diagrama de caja, veamos cómo queda nuestro programa con unas opciones adicionales:
require(“datasets”)data(lynx)boxplot(lynx, horizontal = TRUE, las = 1, notch = TRUE, col = "maroon", boxwex = 0.5, whisklty = 1, staplelty = 0, outpch = 16, outcol = "maroon", main = "Histograma de linces atrapados", xlab = "Numeros de linces atrapados")
Este diagrama de caja lo que se encarga de representar es la simetría entre la distribución, información importante para el análisis estadístico, el cual estaremos viendo en próximos tutoriales.

graficos-R-10.jpg


Con esto damos por finalizado este tutorial, con el cual aprendimos otra de las bondades de R, su completo y amplio set de data, así como las funciones para graficar variables categóricas, lo cual es un proceso fundamental que debemos dominar para el análisis estadístico de nuestra data.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X