Tarea No. 4

Curso de Bioestadística Aplicada & Informática Médica

Descripción

  • El objetivo de la Tarea No. 4 es el de preparar un gráfico y el código en R correspondiente. El gráfico y el código se enviarán a través del Campus Virtual, en una actividad específicamente diseñada para el efecto
  • Los gráficos tienen que ser enviados en formato PNG y los códigos que se utilizaron deben ser enviados en un archivo de texto con la extensión .R
  • La Tarea No. 4 vale un máximo de 6 puntos. La distribución de puntos se hará como sigue:
    • Diseño: 2 puntos si el gráfico es adecuado y responde a las preguntas de la tarea; 1 punto si el gráfico es adecuado pero responde sólo parcialmente a las preguntas de la tarea; 0 puntos si el gráfico no es adecuado
    • Descripción: 2 puntos si el título y los ejes están adecuadamente denominados; 1 punto si sólo el título o los ejes están adecuadamente denominados; 0 puntos si ni el título ni los ejes están adecuadametne denominados
    • Código: 2 puntos si el código en R reproduce apropiadamente el gráfico enviado; 1 punto si el código en R reproduce parcialmente el gráfico; 0 puntos si el código en R no reproduce el gráfico
  • En el caso de detectarse plagio en los gráficos y/o código enviados el puntaje será “0”

Ejemplo de cómo proceder

A continuación daremos un ejemplo de cómo proceder con esta tarea. En primer lugar vamos a cargar la base de datos mtcars que viene incluida en R.

data("mtcars")

Exploramos la estructura de mtcars para conocer cuántas y qué tipos de variables aloja.

str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

Una descripción completa de las variables contenidas en la base de datos puede obtenerse tipeando ?mtcars en la consola de R. El siguiente paso consiste en plotear gráficos para mostrar la distribución de las variables cotenidas en mtcars.

Ploteo de variables numéricas

En el caso de variables numéricas se pueden utilizar histogramas, gráficos de cajas, o diagramas de dispersión para conocer la distribución de las mismas. Los histogramas son más útiles cuando queremos visualizar la distribución de una única variable numérica. Los gráficos de cajas son más apropiados cuando queremos conocer la distribución de variables numéricas a través de varios grupos (i.e., variable numérica versus variable categórica). Los gráficos de dispersión son útiles cuando queremos visualizar la relación entre dos variables numéricas.

Para plotear la distribución de mpg, una variable numérica en mtcars, usando un histograma procedemos de la siguiente manera:

hist(mtcars$mpg)

Podemos cambiar la denominación del título y de los ejes x e y con los argumentos main, xlab y ylab, respectivamente, como se muestra a continuación:

hist(mtcars$mpg, main = "Histograma de MPG", xlab = "MPG", ylab = "Frecuencia")

Podemos plotear la distribución de mpg a través de los niveles de cyl, una variable categórica, usando gráficos de cajas, como se muestra a continuación:

boxplot(mpg ~ cyl, data = mtcars)

Finalmente, podemos evaluar la relación entre mpg y hp, otra variable numérica, usando un digrama de dispersión, como se muestra abajo:

plot(mpg ~ hp, data = mtcars)

Las denominaciones del título y de los ejes en los gráficos de cajas y gráficos de dispersión pueden modificarse siguiendo las mismas indicaciones dadas para los histogramas.

Ploteo de variables categóricas

Se puede conocer la distribución de los niveles de una variable categórica usando un gráfico de barras. Nunca bajo ninguna circunstancia deben utilizarse gráficos de torta para plotear la distribución de variables categoricas.

Para plotear la distribución de cyl, una variable categórica con 3 niveles, primero transformamos la variable en una tabla usando la función table() y luego usamos la función barplot(), como se muestra a continuación:

barplot(table(mtcars$cyl))

Al igual que en los ejemplos anteriores, se puede agragar títulos y denominaciones de los ejes con los argumentos main, xlab, y ylab.

Combinando los gráficos

Muchas veces es conveniente combinar los gráficos generados en un único plot. Para esto podemos usar la función par() con el argumento mfrow.

Usaremos el histograma y el gráfico de barras generados previamente y los combinaremos en un único panel que coloque ambos gráficos uno al lado del otro:

par(mfrow = c(1, 2))
hist(mtcars$mpg, main = "Histograma", xlab = "MPG", ylab = "Frecuencia")
barplot(table(mtcars$cyl), main = "Barras", xlab = "CYL", ylab = "Frecuencia")

El argumento mfrow = c(1, 2) indica que los gráficos se deben colocar en una única fila (1) distribuida en (2) columnas. Cada gráfico va en una línea distinta. En el caso de que se quieran incluir más gráficos se deben especificar el número de filas y columnas que formarán el panel. Por ejemplo, para colocar 3 figuras una debajo de la otra se utilizaria un panel de 1 columna con 3 filas. Es decir, el argumento sería mfrow = c(3, 1).

Guardando los gráficos generados

Los gráficos generados se puden grabar usando las funciones bmp(), jpeg, png o tiff, dependiendo del formato de exportación deseado.

Para guardar el panel anterior se puede proceder de la siguiente manera:

jpeg(filename = "Figura1.jpg", width = 400, height = 400)
par(mfrow = c(1, 2))
hist(mtcars$mpg, main = "Histograma", xlab = "MPG", ylab = "Frecuencia")
barplot(table(mtcars$cyl), main = "Barras", xlab = "CYL", ylab = "Frecuencia")
dev.off()
## png 
##   2

Veamos el código línea a línea:

  1. La función jpeg() abre un dispositivo gráfico JPG y le pasa los siguientes argumentos:
    • filename = "Figura1.jpg", que corresponde al nombre del archivo a guardar con su extensión correspondiente
    • width = 400, que corresponde al ancho de la figura a guardar en pixeles
    • height = 400, que corresponde a la altura de la figura a guardar en pixeles
  2. par(), que establece el área de ploteo con 1 fila y 2 columnas
  3. hist(), que plotea el histograma
  4. barplot(), que plotea el gráfico de barras
  5. dev.off(), que cierra el dispositivo gráfico

El último paso es necesario para guardar el gráfico en un archivo externo. Ten en cuenta que no aparecerá ningún gráfico en la pantalla sino que se guardará directamente al disco duro.


Tarea a desarrollar y enviar

  1. Carga la base de datos CO2 que viene incluida en R. Revisa la descripción de la base de datos con ?CO2 y estudia la estructura de las variables con str()
  2. Plotea 4 gráficos para responder las siguientes preguntas (no te olvides de denominar apropiadamente los títulos y los ejes):
    • Cuál es la distribución del origen de las plantas?
    • Cuál es la distribución del índice de consumo de CO2?
    • Cuál es la relación entre el origen de las plantas y la concentración de CO2 en mL/L?
    • Cuál es la relación entre la concentración ambiental de CO2 y el índice de consumo de CO2?
  3. Combina los gráficos en un único panel
  4. Guarda el gráfico panel en formato PNG con una resolución de 500 x 500 pixeles usando la denominación Tarea4.png
  5. Guarda el código que utilizaste para crear el gráfico usando la denominación Tarea4.R
  6. Envia el gráfico panel y el código en R a través del campus virtual