El siguiente ejemplo presenta el uso de algunas funciones útiles para hacer un análisis descriptivo de variables cuatilitativas.
Los jóvenes antioqueños en su afán por brillar en el mundo del modelaje, o en una sociedad que ha establecido la delgadez como un sinónimo de éxito social, han desarrollado practicas alimenticias que los hacen padecer de enfermedades tan delicadas como la Bulimia y la Anorexia. Con el ánimo de estudiar el impacto que ha tenido este fenómeno, se tomó una muestra de 40 personas diagnosticados como Bulímicos o Anoréxicos y se registraron las siguientes características: género, edad categorizada como joven o adulto y los signos visibles de la enfermedad. Esta información se registró en la siguiente tabla:
## # A tibble: 40 x 3
## Sintoma Genero Edad
## <chr> <chr> <chr>
## 1 Dieta severa F Adulto
## 2 Ropa holgada M Joven
## 3 Miedo a engordar F Joven
## 4 Dieta severa M Joven
## 5 Dieta severa F Joven
## 6 Miedo a engordar F Adulto
## 7 Laxantes M Adulto
## 8 Miedo a engordar F Joven
## 9 Miedo a engordar F Joven
## 10 Dieta severa F Adulto
## # ... with 30 more rows
Los datos recolectados registran 3 variables: Síntoma, Género, Edad. Estas variables son cualitativas medidas con escala nominal, donde las categorías son mutuamente excluyentes. Cada una de las categorías y la cantidad de individuos que hacen parte de cada una de ellas se presentan a continuación:
La variable ‘Síntoma’ tiene 5 categorías:
summary(factor(Sintoma))
## Dieta severa Hiperactividad Laxantes Miedo a engordar
## 13 3 9 11
## Ropa holgada
## 4
La variable ‘Género’ tiene 2 categorías (M: masculino, F: femenino):
summary(factor(Genero))
## F M
## 20 20
La variable ‘Edad’ tiene 2 categorías:
summary(factor(Edad))
## Adulto Joven
## 14 26
Cuando se analizan variables categóricas, es usual trabajar con tablas de contingencia, porque permiten identificar la cantidad de elementos que cumplen con dos o más condiciones de manera simultánea. La siguiente es una tabla de contingencia que incluye las variables Edad y Género:
table(Edad,Genero)
## Genero
## Edad F M
## Adulto 9 5
## Joven 11 15
La siguiente es una tabla de contingencia que incluye las variables Síntoma y Género:
table(Sintoma,Genero)
## Genero
## Sintoma F M
## Dieta severa 6 7
## Hiperactividad 1 2
## Laxantes 4 5
## Miedo a engordar 7 4
## Ropa holgada 2 2
A continuación se presentan las frecuencias absolutas (cantidad) y frecuencias relativas (proporciones) de la variable ’Síntoma.
categorias=table(Sintoma)
frecuencias_abs=data.frame(categorias) #Frecuencia absoluta
frecuencias_rel=data.frame(categorias/margin.table(categorias)) #Frecuencia relativa
tabla=merge(frecuencias_abs,frecuencias_rel,by="Sintoma",sort=T)
tabla
## Sintoma Freq.x Freq.y
## 1 Dieta severa 13 0.325
## 2 Hiperactividad 3 0.075
## 3 Laxantes 9 0.225
## 4 Miedo a engordar 11 0.275
## 5 Ropa holgada 4 0.100
La frecuencia absoluta acumulada (suma acumulada de las frecuencias aboslutas) y la frecuencia relativa acumulada (suma acumulada de las frecuencias aboslutas) se pueden obtener de la siguiente manera:
frecuencias_abs_acum=data.frame(cumsum(categorias))
frecuencias_abs_acum #Frecuencia absoluta acumulada
## cumsum.categorias.
## Dieta severa 13
## Hiperactividad 16
## Laxantes 25
## Miedo a engordar 36
## Ropa holgada 40
frecuencias_rel_acum=data.frame(cumsum(categorias)/margin.table(categorias))
frecuencias_rel_acum #Frecuencia relativa acumulada
## cumsum.categorias..margin.table.categorias.
## Dieta severa 0.325
## Hiperactividad 0.400
## Laxantes 0.625
## Miedo a engordar 0.900
## Ropa holgada 1.000
A continuación se presentan las frecuencias absolutas y relativas de la variable ‘Edad’
## Edad Freq.x Freq.y
## 1 Adulto 14 0.35
## 2 Joven 26 0.65
La frecuencia absoluta acumulada y la frecuencia relativa para la variable ‘Edad’ son respectivamente:
## cumsum.categorias.
## Adulto 14
## Joven 40
## cumsum.categorias..margin.table.categorias.
## Adulto 0.35
## Joven 1.00
A continuación se presentan las frecuencias absolutas y relativas de la variable ‘Género’
## Genero Freq.x Freq.y
## 1 F 20 0.5
## 2 M 20 0.5
La frecuencia absoluta acumulada y la frecuencia relativa para la variable ‘Género’ son respectivamente:
## cumsum.categorias.
## F 20
## M 40
## cumsum.categorias..margin.table.categorias.
## F 0.5
## M 1.0
Una forma gráfica de resumir datos categóricos es a través de diagramas de barras.
conteo=(table(Sintoma))
diagrama=barplot(conteo,col=heat.colors(5),main="Gráfico de frecuencias - variable Síntoma", las=2,cex.names=0.5,ylim=c(0,16))
text(diagrama[,1], conteo, labels=conteo,pos=3)#Permite incluir la frecuencia absoluta en el diagrama
De forma alternativa se puede usar la función ‘barchart()’ de la librería lattice
library(lattice)
conteo=(table(Sintoma))
barchart(conteo,main="Gráfico de frecuencias - variable Síntoma",col=heat.colors(5), xlab="Frecuencia",aspect=0.4)
Otro diagrama útil para representar datos categóricos es el diagrama circular o de torta.
l=table(Edad)
K = levels(Edad)
pct = round(l/sum(l)*100)
lbls = paste(K, pct)
lbls = paste(lbls,"%",sep="")
pie(l,labels = lbls, col=heat.colors(2),main="Diagrama Circular - Edad")
Dado que las variables son de naturaleza categórica, las variables se resumen indicando la cantidad de elementos (en este caso encuestados) que hacen parte de cada categoría (en este caso Síntomas)
m=factor(Sintoma)
summary(m)
## Dieta severa Hiperactividad Laxantes Miedo a engordar
## 13 3 9 11
## Ropa holgada
## 4
Las tablas de contingencia permiten calcular porcentajes relacionados con el cumplimiento de ciertas características de interés, pero también se puede usar la función ‘prop.table()’ para calcularlos.
prop.table(table(Genero, Edad=="Joven"))
##
## Genero FALSE TRUE
## F 0.225 0.275
## M 0.125 0.375
De acuerdo con la tabla anterior, el porcentaje de personas enfermas que son mujeres jóvenes corresponde al 27.5% de la muestra.
table(Genero=="M",Edad=="Adulto", Sintoma=="Ropa holgada")
## , , = FALSE
##
##
## FALSE TRUE
## FALSE 10 8
## TRUE 13 5
##
## , , = TRUE
##
##
## FALSE TRUE
## FALSE 1 1
## TRUE 2 0
prop.table(table(Genero=="M",Edad=="Adulto", Sintoma=="Ropa holgada"))
## , , = FALSE
##
##
## FALSE TRUE
## FALSE 0.250 0.200
## TRUE 0.325 0.125
##
## , , = TRUE
##
##
## FALSE TRUE
## FALSE 0.025 0.025
## TRUE 0.050 0.000
Observe que la cantidad de personas encuestadas que cumple con las tres condiciones (hombre, adulto, síntoma ‘ropa holgada’) es 0, por lo tanto la proporción es 0.
categorias=table(Sintoma)
categorias/margin.table(categorias)
## Sintoma
## Dieta severa Hiperactividad Laxantes Miedo a engordar
## 0.325 0.075 0.225 0.275
## Ropa holgada
## 0.100
De acuerdo con el resultado anterior, el porcentaje de personas encuestadas que presenta el síntoma “Dieta severa” representa el 32.5%.
Los análisis aquí presentados son de naturaleza descriptiva. Un análisis más exhaustivo que involucre modelos inferenciales podría ser de utilidad para las entidades competentes para tomar decisiones que disminuyan la ocurrencia de enfermedades relacionadas con la alimentación.