class: center, middle, inverse, title-slide # Organización y Visualización: Variables cualitativas ### Evelyn Gutierrez
1
### Abril, 2021 --- class: middle Para la sesión, necesitamos instalar los siguientes paquetes: * janitor * summarytools * tidyverse Para instalarlos, utilizamos los siguientes comandos en la consola una sola vez. ```r install.packages("janitor") install.packages("summarytools") install.packages("tidyverse") ``` -- Luego, esperamos a que complete la instalación y verificamos: ```r library(janitor) library(summarytools) library(ggplot2) ``` --- class: center, middle En esta sesión veremos la exploración de variables cualitativas utilizando tablas, y gráficos. Para ello, abrimos el archivo: **"Univar_1_Var_Cualitativas.R"**. Si no lo tienes, puedes ir copiando y pegando los siguientes códigos que mostraremos. --- # Lectura de datos. Con el siguiente código, leemos los datos directamente desde un enlace: ```r # Cargar los datos sobre Cancer de mama: url<-"https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer/breast-cancer.data" datos <- read.table(url, sep=",",stringsAsFactors=TRUE) names(datos) <- c("clase","edad","menopausia","tamanio", "inv_nodes","node_caps","deg_malig", "breast","breast_quad","irradiat") ## Mas informacion en: https://archive.ics.uci.edu/ml/datasets/Breast+Cancer ``` --- # Exploración inicial. Exploramos el dataset observando los primeros 6 registros. Para ello, usamos el comando `head`: ```r head(datos) # primeros 6 ``` Luego, realizamos una exploración del tipo de columnas que tiene este dataset. ```r str(datos) ``` ``` ## 'data.frame': 286 obs. of 10 variables: ## $ clase : Factor w/ 2 levels "no-recurrence-events",..: 1 1 1 1 1 1 1 1 1 1 ... ## $ edad : Factor w/ 6 levels "20-29","30-39",..: 2 3 3 5 3 5 4 5 3 3 ... ## $ menopausia : Factor w/ 3 levels "ge40","lt40",..: 3 3 3 1 3 1 3 1 3 3 ... ## $ tamanio : Factor w/ 11 levels "0-4","10-14",..: 6 4 4 3 1 3 5 4 11 4 ... ## $ inv_nodes : Factor w/ 7 levels "0-2","12-14",..: 1 1 1 1 1 1 1 1 1 1 ... ## $ node_caps : Factor w/ 3 levels "?","no","yes": 2 2 2 2 2 2 2 2 2 2 ... ## $ deg_malig : int 3 2 2 2 2 2 2 1 2 2 ... ## $ breast : Factor w/ 2 levels "left","right": 1 2 1 2 2 1 1 1 1 2 ... ## $ breast_quad: Factor w/ 6 levels "?","central",..: 3 6 3 4 5 3 3 3 3 4 ... ## $ irradiat : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ... ``` Observamos que en este set de datos todas las variables excepto `deg_malig` son de tipo factor (observe 'Factor' al lado de cada variable). --- # Organización y visualización: Variables cualitativas. Ahora, comenzaremos a explorar el dataset utilizando tablas y gráficos para variables cualitativas. --- ## Tablas de Frecuencias. Las tablas de frecuencias se pueden construir de diferentes maneras en R. - Aquí veremos 3 formas. -- ### Utilizando `table` Exploramos la variable clase con tablas de frecuencias: ```r # Explorando con tablas: frecuencias y proporciones table(datos$clase) ``` ``` ## ## no-recurrence-events recurrence-events ## 201 85 ``` -- **Interpretación**: - Tenemos 201 casos de eventos no recurrentes de cáncer, y - 85 observaciones con eventos recurrentes de cáncer, --- #### Proporciones. ```r # prop.table convierte la tabla a proporciones proptable <- prop.table(table(datos$clase)) # round redondea a los digitos indicados en el segundo argumento. round(proptable, 3) ``` ``` ## ## no-recurrence-events recurrence-events ## 0.703 0.297 ``` -- **Interpretación**: - El 70.3% de las observaciones son eventos no recurrentes de cáncer, y - 29.7% de las observaciones son eventos recurrentes de cáncer, -- ```r # El comando as.data.frame convierte esta tabla a un data frame para mejorar la visualización as.data.frame(proptable) ``` ``` ## Var1 Freq ## 1 no-recurrence-events 0.7027972 ## 2 recurrence-events 0.2972028 ``` --- ### Utilizando `janitor` Ahora, exploramos la variable `age` con tablas de frecuencias. Esta vez utilizaremos el paquete janitor para una mejor visualización. Utilizamos el comando `tabyl` para crear la tabla de frecuencias y observamos los resultados e interpretamos. ```r library(janitor) janitor::tabyl(datos$edad) ``` ``` ## datos$edad n percent ## 20-29 1 0.003496503 ## 30-39 36 0.125874126 ## 40-49 90 0.314685315 ## 50-59 96 0.335664336 ## 60-69 57 0.199300699 ## 70-79 6 0.020979021 ``` --- ### Utilizando `summarytools` Otra opción es usar el paquete `summarytools`. Si ya realizó la instalación, utilice el siguiente código: ```r library(summarytools) summarytools::freq(datos$menopausia, order = "freq") ``` ``` ## Frequencies ## datos$menopausia ## Type: Factor ## ## Freq % Valid % Valid Cum. % Total % Total Cum. ## ------------- ------ --------- -------------- --------- -------------- ## premeno 150 52.45 52.45 52.45 52.45 ## ge40 129 45.10 97.55 45.10 97.55 ## lt40 7 2.45 100.00 2.45 100.00 ## <NA> 0 0.00 100.00 ## Total 286 100.00 100.00 100.00 100.00 ``` -- **Interpretación**: - El 52.45% de las observaciones son mujeres que tuvieron pre menopausia. - El 45.10% de las observaciones son mujeres que tuvieron la menopausia a los 40 o más. - Solo el 2.42% tuvo la menopausia antes de los 40. --- ## Gráfico circular Para crear un gráfico circular, utilizamos el comando `pie`. Por ejemplo, lo utilizaremos para observar la clasificación de los casos de cancer. ```r pie(table(datos$clase), main="Gráfico para la clasificación de casos") ``` <img src="CapII---P1---Variables-cualitativas_files/figure-html/unnamed-chunk-10-1.png" style="display: block; margin: auto;" /> Note que despues de *main* vemos un texto. Este texto es el título principal (main) del gráfico. Podemos modificar el título, cambiando el texto dentro de las comillas. --- Alternativamente, podemos utilizar la librería ggplot para crear un gráfico de pie con mejor apariencia. ```r tabla_clase <- data.frame(table(datos$clase)) names(tabla_clase) <- c("Clase","Frecuencia") library(ggplot2) ggplot(tabla_clase, aes(x="", y=Frecuencia, fill=Clase)) + geom_bar(stat="identity", width=1) + coord_polar("y", start=0) + theme_void() ``` <img src="CapII---P1---Variables-cualitativas_files/figure-html/unnamed-chunk-11-1.png" style="display: block; margin: auto;" /> --- ## Gráfico de barras. Creamos el gráfico de barras para la variable menopausia. ```r barplot(table(datos$menopausia), xlab="Menopausia", ylab="Frecuencia", main="Distribución de tipos de menopausia") ``` <img src="CapII---P1---Variables-cualitativas_files/figure-html/unnamed-chunk-12-1.png" style="display: block; margin: auto;" /> Este gráfico acompaña a la tabla de frecuencias para una visualización rápida de la distribución de la variable. --- name: section class: top, inverse background-image: url("img/dog_working.jpg") background-size: cover --- name: yourturn template: section .left-column[ # <i class="fas fa-edit"></i> <br>.fancy[Ejercicio] ] --- -name: yourturn1 .right-column[ Realizar el análisis univariado de las variables del dataset que no han sido analizadas. Considerar lo siguiente: 1. Explorar la variable .heatinline[**tumor-size**] (tamaño del tumo) utilizando un gráfico y una tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría. Interpretar resultados. 2. Explorar la variable .heatinline[**deg-malig**] (grado histológico del tumor) utilizando un gráfico y tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría e interpretar resultados. 3. Explorar la variable .heatinline[**breast**] (lado) utilizando un gráfico y tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría e interpretar resultados. ] .left-column[ ## .fancy[.acidinline[10:00 minutos]] ] <!-- # Ejercicios Realizar el análisis univariado de las variables del dataset que no han sido analizadas. Considerar lo siguiente: 1. Explorar la variable .heatinline[**tumor-size**] (tamaño del tumo) utilizando un gráfico y una tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría. Interpretar resultados. 2. Explorar la variable .heatinline[**deg-malig**] (grado histológico del tumor) utilizando un gráfico y tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría e interpretar resultados. 3. Explorar la variable .heatinline[**breast**] (lado) utilizando un gráfico y tabla de frecuencias. Observar la frecuencia y proporciones de cada categoría e interpretar resultados. # Otros materiales * [Gráficos de barra](https://bookdown.org/jboscomendoza/r-principiantes4/graficas-de-barras.html) setwd("G:/Mon Drive/6. Trabajos/2021/UNICA/Presentaciones/Grupo 2/Tema2_Univariado/") knitr::purl("Exploracion_y_visualizacion.Rmd","1_Variables_Cualitativas.R") ---- --->