PARCIAL 1

Hugo Alejandro Sanabria Millán, Stiben Rosas correcha

2026-05-04

## Cargando paquete requerido: splines
## Cargando paquete requerido: RcmdrMisc
## Cargando paquete requerido: car
## Cargando paquete requerido: carData
## Cargando paquete requerido: sandwich
## Cargando paquete requerido: effects
## Registered S3 method overwritten by 'lme4':
##   method           from
##   na.action.merMod car
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
## La interfaz R-Commander sólo funciona en sesiones interactivas
## 
## Adjuntando el paquete: 'Rcmdr'
## The following object is masked from 'package:base':
## 
##     errorCondition

CARGADO DE DATOS

> library(readxl)
> 
> DATATEST <- read_excel(file.choose())
> 
> head(DATATEST)
# A tibble: 6 × 13
  Individuo  Edad Genero    Severidad_de_Síntomas Hospitalizado
  <chr>     <dbl> <chr>     <chr>                 <chr>        
1 #1           56 Femenino  Leve                  No           
2 #2           69 Femenino  Severo                No           
3 #3           46 Femenino  Leve                  Sí           
4 #4           32 Femenino  Leve                  No           
5 #5           60 Masculino Moderado              No           
6 #6           25 Masculino Leve                  No           
# ℹ 8 more variables: Dias_para_la_recuperacion <dbl>, Nivel_de_fatiga <dbl>,
#   Problemas_respiratorios <chr>, Niebla_mental <chr>,
#   Pérdida_del_gusto_y_el_olfato <chr>, Nivel_de_actividad_física <chr>,
#   Impacto_en_la_salud_mental <dbl>, Riesgo_de_covid_prolongado <chr>

GENERACIÓN ESTADISTICOS EDAD

> library(moments)
> stats_univariado <- data.frame(
+ Media = mean(DATATEST$Edad, na.rm = TRUE),
+ Mediana = median(DATATEST$Edad, na.rm = TRUE),
+ Desv_Std = sd(DATATEST$Edad, na.rm = TRUE),
+ Asimetria = skewness(DATATEST$Edad, na.rm = TRUE),
+ Curtosis = kurtosis(DATATEST$Edad, na.rm = TRUE)
+ )
> print(stats_univariado)
     Media Mediana Desv_Std   Asimetria Curtosis
1 43.32338      43 14.97397 -0.04406429 1.823043

GENERACION HISTOGRAMA EDAD

> library (ggplot2)
> ggplot(DATATEST, aes(x = Edad)) +
+ geom_histogram(bins = 15, fill = "skyblue", color = "black", alpha = 0.7)

GENERACIÓN ESTADISTICOS DIAS DE RECCUPERACIÓN

> stats_dias <- data.frame(
+ Variable = "Días Recuperación",
+ Media = round(mean(DATATEST$Dias_para_la_recuperacion, na.rm = TRUE), 2),
+ Mediana = round(median(DATATEST$Dias_para_la_recuperacion, na.rm = TRUE), 2),
+ Desv_Std = round(sd(DATATEST$Dias_para_la_recuperacion, na.rm = TRUE), 2),
+ Asimetria = round(skewness(DATATEST$Dias_para_la_recuperacion, na.rm = TRUE), 2),
+ Curtosis = round(kurtosis(DATATEST$Dias_para_la_recuperacion, na.rm = TRUE), 2)
+ )
> print(stats_dias)
           Variable Media Mediana Desv_Std Asimetria Curtosis
1 Días Recuperación 95.86     107    52.32     -0.19     1.69

GENERACION HISTOGRAMA DIAS DE RECUPERACIÓN

> ggplot(DATATEST, aes(x = Dias_para_la_recuperacion)) +
+ geom_histogram(bins = 20, fill = "salmon", color = "darkred", alpha = 0.6) +
+ labs(title = "Distribución de Días para la Recuperación",
+ x = "Días",
+ y = "Cantidad de Personas") +
+ theme_classic()

GENERACIÓN TABLA ESTADISTICOS NIVEL DE FATIGA

> stats_fatiga <- data.frame(
+ Variable = "Nivel de Fatiga",
+ Media = round(mean(DATATEST$Nivel_de_fatiga, na.rm = TRUE), 2),
+ Mediana = round(median(DATATEST$Nivel_de_fatiga, na.rm = TRUE), 2),
+ Desv_Std = round(sd(DATATEST$Nivel_de_fatiga, na.rm = TRUE), 2),
+ Asimetria = round(skewness(DATATEST$Nivel_de_fatiga, na.rm = TRUE), 2),
+ Curtosis = round(kurtosis(DATATEST$Nivel_de_fatiga, na.rm = TRUE), 2))
> print(stats_fatiga)
         Variable Media Mediana Desv_Std Asimetria Curtosis
1 Nivel de Fatiga  3.01       3     1.47     -0.11     1.64

GENERACIÓN GRAFICO DE BARRA NIVEL DE FATIGA

> library(e1071)

Adjuntando el paquete: 'e1071'
The following object is masked from 'package:ggplot2':

    element
The following objects are masked from 'package:moments':

    kurtosis, moment, skewness
> frec_fatiga <- table(DATATEST$Nivel_de_fatiga)
> barplot(frec_fatiga,
+ main = "Distribución del Nivel de Fatiga",
+ xlab = "Nivel (Escala 1-5)",
+ ylab = "Frecuencia de Pacientes",
+ col = "lightblue",
+ border = "white",
+ ylim = c(0, max(frec_fatiga) + 10))

ESTADISTICOS PARA SALUD MENTAL

> stats_salud_mental <- data.frame(
+ Variable = "Salud Mental",
+ Media = round(mean(DATATEST$Impacto_en_la_salud_mental, na.rm = TRUE), 2),
+ Mediana = round(median(DATATEST$Impacto_en_la_salud_mental, na.rm = TRUE), 2),
+ Desv_Std = round(sd(DATATEST$Impacto_en_la_salud_mental, na.rm = TRUE), 2),
+ Asimetria = round(skewness(DATATEST$Impacto_en_la_salud_mental, na.rm = TRUE), 2),
+ Curtosis = round(kurtosis(DATATEST$Impacto_en_la_salud_mental, na.rm = TRUE), 2)
+ )
> print(stats_salud_mental)
      Variable Media Mediana Desv_Std Asimetria Curtosis
1 Salud Mental  2.94       3     1.43      0.09     -1.3

HISTOGRAMA PARA SALUD MENTAL

> frec_saludm <- table(DATATEST$Impacto_en_la_salud_mental)
> barplot(frec_saludm,
+ main = "Impacto en la Salud Mental",
+ xlab = "Nivel (1 al 5)",
+ ylab = "Frecuencia",
+ col = "lightblue")

FRECUENCIAS GÉNERO

> frec_genero <- table(DATATEST$Genero)
> prop_genero <- round(prop.table(frec_genero) * 100, 2)
> tabla_genero <- cbind(Frecuencia = frec_genero, Porcentaje = prop_genero)
> print(tabla_genero)
          Frecuencia Porcentaje
Femenino          97      48.26
Masculino         91      45.27
Otro              13       6.47

PASTEL GÉNERO

> frec_genero <- table(DATATEST$Genero)
> mis_colores <- rainbow(length(frec_genero))
> pie(frec_genero,
+ main = "Distribución por Género",
+ col = mis_colores,
+ labels = paste0(names(frec_genero), " ",
+ round(prop.table(frec_genero) * 100, 1), "%)"),
+ border = "black")

TABLA FREC SEVERIDAD DE SINTOMAS

> frec_severidad <- table(DATATEST$Severidad_de_Síntomas)
> prop_severidad <- round(prop.table(frec_severidad) * 100, 2)
> tabla_severidad <- cbind(Frecuencia = frec_severidad, Porcentaje = prop_severidad)
> print(tabla_severidad)
         Frecuencia Porcentaje
Leve            130      64.68
Moderado         51      25.37
Severo           20       9.95

PASTEl SEVERIDAD

> frec_sev <- table(DATATEST$Severidad_de_Síntomas)
> pie(frec_sev,
+ main = "Distribución de Severidad de Síntomas",
+ col = mis_colores,
+ labels = paste0(names(frec_sev), " (", round(prop.table(frec_sev)*100, 1), "%)"))

> frec_hosp <- table(DATATEST$Hospitalizado)

fREC TABLA HOSPITALIZACIÓN

> prop_hosp <- round(prop.table(frec_hosp) * 100, 2)
> tabla_hosp <- cbind(Frecuencia = frec_hosp, Porcentaje = prop_hosp)

print(tabla_hosp)

HISTOGRAMA HOSPITALIZACIÓN

> frec_hosp <- table(DATATEST$Hospitalizado)
> barplot(frec_hosp,
+ main = "Distribución de Hospitalización",
+ xlab = "¿Fue Hospitalizado?",
+ ylab = "Número de Pacientes",
+ col = "lightblue",
+ border = "black")

RIESGO DE COVID PROLONGADO TABLA FREC

> frec_riesgo <- table(DATATEST$Riesgo_de_covid_prolongado)
> prop_riesgo <- round(prop.table(frec_riesgo) * 100, 2)
> tabla_riesgo <- cbind(Frecuencia = frec_riesgo, Porcentaje = prop_riesgo)
> print(tabla_riesgo)
      Frecuencia Porcentaje
Alto          23      11.44
Bajo         107      53.23
Medio         71      35.32

RIESGO DE COVID PROLONGADO HISTOGRAMA

> frec_riesgo <- table(DATATEST$Riesgo_de_covid_prolongado)
> barplot(frec_riesgo,
+ main = "Riesgo de COVID Prolongado",
+ col = "lightblue")

TABLA FRECUENCIAS LAS DEMAS VARIABLES

> DATATEST$Severidad_de_Síntomas <- factor(DATATEST$Severidad_de_Síntomas,
+ levels = c("Leve", "Moderado", "Severo"))
> DATATEST$Riesgo_de_covid_prolongado <- factor(DATATEST$Riesgo_de_covid_prolongado,
+ levels = c("Bajo", "Medio", "Alto"))
> generar_frecuencias <- function(datos, nombre_columna) {
+ f_abs <- table(datos[[nombre_columna]])
+ f_rel <- round(prop.table(f_abs) * 100, 2)
+ tabla <- cbind(Frecuencia = f_abs, `Porcentaje (%)` = f_rel)
+ return(addmargins(tabla, margin = 1))
+ }
> res_genero     <- generar_frecuencias(DATATEST, "Genero")
> res_severidad  <- generar_frecuencias(DATATEST, "Severidad_de_Síntomas")
> res_hosp       <- generar_frecuencias(DATATEST, "Hospitalizado")
> res_resp       <- generar_frecuencias(DATATEST, "Problemas_respiratorios")
> res_riesgo     <- generar_frecuencias(DATATEST, "Riesgo_de_covid_prolongado")
> print(res_hosp)
    Frecuencia Porcentaje (%)
No         151          75.12
Sí          50          24.88
Sum        201         100.00
> print(res_resp)
    Frecuencia Porcentaje (%)
No         143          71.14
Sí          58          28.86
Sum        201         100.00
> print(res_riesgo)
      Frecuencia Porcentaje (%)
Bajo         107          53.23
Medio         71          35.32
Alto          23          11.44
Sum          201          99.99
> print(res_genero)
          Frecuencia Porcentaje (%)
Femenino          97          48.26
Masculino         91          45.27
Otro              13           6.47
Sum              201         100.00
> print(res_severidad)
         Frecuencia Porcentaje (%)
Leve            130          64.68
Moderado         51          25.37
Severo           20           9.95
Sum             201         100.00
**ANALISIS BIVARIADO**

TABLA DE FRECUENCIAS RIESGO DE COVID PROLONGADO

> DATATEST$Riesgo_de_covid_prolongado <- factor(DATATEST$Riesgo_de_covid_prolongado,
+ levels = c("Bajo", "Medio", "Alto"))
> tabla_gen <- table(DATATEST$Riesgo_de_covid_prolongado, DATATEST$Genero)
> frecuencia_genero <- addmargins(tabla_gen)
> print("Tabla de Frecuencia: Riesgo vs Género")
[1] "Tabla de Frecuencia: Riesgo vs Género"
> print(frecuencia_genero)
       
        Femenino Masculino Otro Sum
  Bajo        49        53    5 107
  Medio       37        30    4  71
  Alto        11         8    4  23
  Sum         97        91   13 201
> prop_gen <- prop.table(table(DATATEST$Riesgo_de_covid_prolongado, DATATEST$Genero)) * 100
> print("Frecuencia Relativa (%) Riesgo vs Género")
[1] "Frecuencia Relativa (%) Riesgo vs Género"
> addmargins(round(prop_gen, 2))
       
        Femenino Masculino   Otro    Sum
  Bajo     24.38     26.37   2.49  53.24
  Medio    18.41     14.93   1.99  35.33
  Alto      5.47      3.98   1.99  11.44
  Sum      48.26     45.28   6.47 100.01

GRAFICA BARRAS APILADAS

> library(ggplot2)
> ggplot(DATATEST, aes(x = Genero, fill = Riesgo_de_covid_prolongado)) +
+ geom_bar(position = "stack") +
+ labs(title = "Riesgo de COVID Prolongado según Género",
+ x = "Género",
+ y = "Cantidad de Pacientes",
+ fill = "Nivel de Riesgo") +
+ theme_minimal()

TABLA TIESGO DE COVID Y HOSP FRECUENCIAS

> tabla_hosp <- table(DATATEST$Riesgo_de_covid_prolongado, DATATEST$Hospitalizado)
> frecuencia_hosp <- addmargins(tabla_hosp)
> print("Tabla de Frecuencia: Riesgo vs Hospitalización")
[1] "Tabla de Frecuencia: Riesgo vs Hospitalización"
> print(frecuencia_hosp)
       
         No  Sí Sum
  Bajo   80  27 107
  Medio  57  14  71
  Alto   14   9  23
  Sum   151  50 201
> prop_gen <- prop.table(table(DATATEST$Riesgo_de_covid_prolongado, DATATEST$Hospitalizado)) * 100
> print("Frecuencia Relativa (%) Riesgo vs Hospitalizado")
[1] "Frecuencia Relativa (%) Riesgo vs Hospitalizado"
> addmargins(round(prop_gen, 2))
       
            No     Sí    Sum
  Bajo   39.80  13.43  53.23
  Medio  28.36   6.97  35.33
  Alto    6.97   4.48  11.45
  Sum    75.13  24.88 100.01

GRAFICA BIVARIADA HOSPITALIZACIÓN VS RIEGO DE COVID

> DATATEST$Riesgo_de_covid_prolongado <- factor(DATATEST$Riesgo_de_covid_prolongado,
+ levels = c("Bajo", "Medio", "Alto"))
> ggplot(DATATEST, aes(x = Hospitalizado, fill = Riesgo_de_covid_prolongado)) +
+ geom_bar(position = "dodge", color = "white") +
+ scale_fill_brewer(palette = "Set2") +
+ labs(title = "Relación entre Hospitalización y Riesgo de COVID",
+ x = "¿Fue Hospitalizado?",
+ y = "Número de Pacientes",
+ fill = "Nivel de Riesgo") +
+ theme_minimal()