Datos categóricos: analiza y visualiza

R para usuarios de SAS

Melinda Higgins, PhD

Research Professor/Senior Biostatistician Emory University

Combinar categorías

# Usa table() dentro de with() para bmicat
daviskeep %>% with(table(bmicat))
bmicat
1. underwt/norm       2. overwt        3. obese
            161              35               3

Añade la variable recodificada bmigt25

# Añade otra variable categórica bmigt25
daviskeep <- daviskeep %>%
  mutate(bmigt25 = ifelse(bmi > 25,
                          "2. overwt/obese",
                          "1. underwt/norm"))

# Consulta las frecuencias de las categorías de bmigt25
daviskeep %>% with(table(bmigt25))
bmigt25
1. underwt/norm 2. overwt/obese
            161              38
R para usuarios de SAS

Tablas de contingencia en SAS y R

proc freq de SAS y función table de R y crosstable del paquete gmodels

R para usuarios de SAS

Pruebas chi-cuadrado en SAS y R

proc freq de SAS y códigos de R para chisq.test y opciones de la función crosstable de gmodels

R para usuarios de SAS

Tabla de contingencia y prueba chi-cuadrado

# Guarda la tabla de bmigt25 por sex
tablebmisex <- daviskeep %>%
  with(table(bmigt25, sex))
tablebmisex
# Usa el objeto table para ejecutar chisq.test
chisq.test(tablebmisex)
                 sex
bmigt25             F   M
  1. underwt/norm 107  54
  2. overwt/obese   4  34
Prueba chi-cuadrado de Pearson con
corrección de continuidad de Yates

datos:  tablebmisex
X-squared = 36.759, df = 1, p-value = 1.336e-09
R para usuarios de SAS

Pruebas chi-cuadrado con el paquete gmodels

# Carga el paquete gmodels
library(gmodels)
# Ejecuta gmodels::CrossTabs, muestra % por columna y valores esperados
daviskeep %>%
  with(gmodels::CrossTable(bmigt25, sex,
                           chisq = TRUE,
                           prop.r = FALSE,
                           prop.t = FALSE,
                           prop.chisq = FALSE,
                           expected = TRUE))
R para usuarios de SAS

Salida de CrossTable - parte 1

   Contenido de celdas
|-------------------------|
|                       N |
|                N esperado |
|           N / Total Col. |
|-------------------------|

Total de observaciones en la tabla:  199
                | sex
        bmigt25 |         F |         M | Total fila |
----------------|-----------|-----------|------------|
1. underwt/norm |       107 |        54 |        161 |
                |    89.804 |    71.196 |            |
                |     0.964 |     0.614 |            |
----------------|-----------|-----------|------------|
2. overwt/obese |         4 |        34 |         38 |
                |    21.196 |    16.804 |            |
                |     0.036 |     0.386 |            |
----------------|-----------|-----------|------------|
   Total columna |       111 |        88 |        199 |
                |     0.558 |     0.442 |            |
----------------|-----------|-----------|------------|
R para usuarios de SAS

Salida de CrossTable - parte 2

gmodels::CrossTable() salida - continúa...

 

Estadísticos para todos los factores de la tabla

Prueba chi-cuadrado de Pearson
------------------------------------------------------------
Chi^2 =  38.99402     g.l. =  1     p =  4.251066e-10

Prueba chi-cuadrado de Pearson con corrección de continuidad de Yates
------------------------------------------------------------
Chi^2 =  36.75936     g.l. =  1     p =  1.336475e-09
R para usuarios de SAS

Gráficos de mosaico en SAS y R

opción freqplot de proc freq de SAS para tables y función mosaicplot de R

R para usuarios de SAS

Mosaicplot de proporciones categóricas bidimensionales

 

# Crea un mosaicplot de bmigt25 por sex
mosaicplot(bmigt25 ~ sex,
           data = daviskeep,
           color = c("light blue",
                     "dark grey"),
           main =
             "BMI Categories by Sex")

mosaicplot de bmigt25 y sex del conjunto daviskeep

R para usuarios de SAS

¡Vamos a explorar asociaciones categóricas para los abalones!

R para usuarios de SAS

Preparing Video For Download...