Presentación y análisis descriptivo de datos con uso de software R

Salud de sueño y Estilo de vida

Roberto Alonso Roque Núñez
Otro autor

2024-08-13

Descripción del Problema

Identificación del problema o fenómeno:

Mejorar el estilo de vida y la calidad del sueño de las personas requiere disposición, disciplina y constancia. Sin embargo, diversos factores pueden dificultar estos cambios. Este estudio pretende explorar y analizar cómo las características demográficas, los hábitos de vida y las patologías influyen en la salud del sueño.

Especificación de objetivos

Objetivo general

Explorar las tendencias y patrones entre la salud del sueño, las características demográficas, los hábitos de vida y posibles patologías relacionadas con el sueño.

Objetivos especificos

Descripción de los datos

Método de recopilación de datos

Esta base de datos contiene detalles sobre características demográficas y los hábitos de vida de un conjunto de profesionales encuestados de manera aleatoria. Se hizo usó de datos registrados por el medio digital kaggle (vea aquí).

library(readr)
dato1<- read_csv("C:/Users/USER/Documents/graduacion/Cursos 2021/aModulo1/Ejemplos/EjemploME/Sleep_health_and_lifestyle_dataset.csv")

Tamaño de muestra

La base de datos contiene 374 datos.

Variables a tratar

Variable Tipo Jerarquía
Genero (Gender) cualitativa nominal -
Ocupación (Occupation) cualitativa nominal -
IMC (BMI Category) cualitativa ordinal Normal
Normal Weight
Overweight
Obese
Desorden de sueño
(Sleep Disorder)
cualitativa ordinal None
Insomnia
Sleep Apnea
Edad (Age) cuantitativa discreta numérica
Duración del sueño
(Sleep Duration)
cuantitativa continua numérica
Nivel de actividad fisica (Physical Activity Level) cuantitativa discreta numérica
Nivel de estrés (Stress Level) cuantitativa discreta numérica

Formulación de preguntas de investigación:

Crítica de datos

Evaluaremos la calidad de los datos, verificando si hay datos perdidos en nuestra muestra:

library(dplyr)
dato1 %>% is.na() %>% sum()
## [1] 0

Ya que nos arrojo cero, no hay datos perdidos. Podemos trabajar con todos los datos.

Observación. En caso que sea distinto de cero, identificamos en que variables hay datos perdidos con lo siguiente:

dato1 %>% is.na() %>% colSums()

y se tiene que indicar en que variables hay datos perdidos.

Depuración de datos

Como no encontramos datos perdidos, no se altera el contenido de los datos.

Observación.

  1. Caso hubiera datos perdidos se pueden limpiar datos, por ejemplo, eliminando todas las filas con datos perdidos:
dato1<- dato1 %>% na.omit()
  1. De manera opcional, si desea puede traducir manualmente sus variables.
names(dato1)<-c("ID","Genero","Edad","Ocupación","Duración de sueño","Calidad de sueño",
                "Nivel.Actividad.Fisica","Nivel de estres","IMC","Presión arterial",
                "Frecuencia cardiaca","Numero de pasos","Desorden de sueño")

Respuesta a la Pregunta 1

¿Cuál ocupación presenta el mayor nivel promedio de estrés?

Tabla: Nivel promedio de estrés según cada ocupación
x<-dato1 %>% 
  group_by(Ocupación) %>% 
  summarise(Promedio.Nivel.estres=mean(`Nivel de estres`))
x
# A tibble: 11 × 2
   Ocupación            Promedio.Nivel.estres
   <chr>                                <dbl>
 1 Accountant                            4.59
 2 Doctor                                6.73
 3 Engineer                              3.89
 4 Lawyer                                5.06
 5 Manager                               5   
 6 Nurse                                 5.55
 7 Sales Representative                  8   
 8 Salesperson                           7   
 9 Scientist                             7   
10 Software Engineer                     6   
11 Teacher                               4.53
par(mar = c(5, 10, 4, 2) + 0.1)  # c(bottom, left, top, right)
barplot(Promedio.Nivel.estres ~ Ocupación, 
        data = x, 
        horiz = TRUE, 
        las = 1, 
        ylab = "",
        cex.names = 0.8,
        col = "lightgreen",
        main="Nivel promedio de estrés según cada ocupación",
        xlab="Nivel promedio de estrés")

x=dato1 %>% group_by(Ocupación) %>% summarise(edad.max=max(Edad))
x
max(x$edad.max)

x %>% filter(edad.max==max(edad.max))

¿Existe alguna diferencia significativa en la duración del sueño entre hombres y mujeres?

z=dato1 %>% 
  group_by(Genero) %>% 
  summarise(Promedio=mean(`Duración de sueño`))
z
## # A tibble: 2 × 2
##   Genero Promedio
##   <chr>     <dbl>
## 1 Female     7.23
## 2 Male       7.04

el valor de 9

plot(dato1$Nivel.Actividad.Fisica,dato1$`Calidad de sueño`)

cor(dato1$Nivel.Actividad.Fisica,dato1$`Calidad de sueño`)
## [1] 0.1928965

Pregunta 2

¿En que ocupaciones el insomnio es un desorden más común?

Dentro de los desordenes, las enfermeras son las que mas sufren de insomnio.

desorden<-ordered(dato1$`Desorden de sueño`,levels=c("None","Insomnia",
                                           "Sleep Apnea"))
frecAbs=table(dato1$Ocupación,desorden)
frecRel=prop.table(frecAbs,2)*100
addmargins(frecRel)[,-4]
##                       desorden
##                              None   Insomnia Sleep Apnea
##   Accountant            13.698630   9.090909    0.000000
##   Doctor                29.223744   3.896104    5.128205
##   Engineer              26.027397   6.493506    1.282051
##   Lawyer                19.178082   2.597403    3.846154
##   Manager                0.456621   0.000000    0.000000
##   Nurse                  4.109589   3.896104   78.205128
##   Sales Representative   0.000000   0.000000    2.564103
##   Salesperson            0.913242  37.662338    1.282051
##   Scientist              0.913242   0.000000    2.564103
##   Software Engineer      1.369863   1.298701    0.000000
##   Teacher                4.109589  35.064935    5.128205
##   Sum                  100.000000 100.000000  100.000000
frecRel2=t(prop.table(frecAbs,1)*100)
frecRel2
##              
## desorden      Accountant     Doctor   Engineer     Lawyer    Manager      Nurse
##   None         81.081081  90.140845  90.476190  89.361702 100.000000  12.328767
##   Insomnia     18.918919   4.225352   7.936508   4.255319   0.000000   4.109589
##   Sleep Apnea   0.000000   5.633803   1.587302   6.382979   0.000000  83.561644
##              
## desorden      Sales Representative Salesperson  Scientist Software Engineer
##   None                    0.000000    6.250000  50.000000         75.000000
##   Insomnia                0.000000   90.625000   0.000000         25.000000
##   Sleep Apnea           100.000000    3.125000  50.000000          0.000000
##              
## desorden         Teacher
##   None         22.500000
##   Insomnia     67.500000
##   Sleep Apnea  10.000000
par(mar = c(10, 3, 4, 2) )  # c(bottom, left, top, right)
gr=barplot(frecRel2,cex.names = 0.7,beside = T,
        col=c('green','yellow','red'),ylim = c(0,140),las=3,cex.axis = 0.5)
text(x=gr,y=frecRel2,labels = round(frecRel2,1),pos=3)
legend("topright",names(table(desorden)),fill =c('green','yellow','red'),cex=1)

Pregunta 3

boxplot(dato1$Nivel.Actividad.Fisica~dato1$Ocupación,cex.names=0.1)