Resumen introducion del trabajo

Resumen
El presente trabajo aplica herramientas de Big Data y análisis descriptivo en R para examinar una base de datos de casos de COVID-19.
A través de procedimientos de limpieza, transformación y visualización de datos, se exploran aspectos demográficos, clínicos y epidemiológicos de los registros, incluyendo la distribución de edad y género, la prevalencia de síntomas, y los indicadores de hospitalización y letalidad (CFR) por grupo etario.
El estudio también incorpora representaciones gráficas que permiten identificar tendencias temporales y patrones en la evolución de la enfermedad.
Los resultados evidencian que la severidad del COVID-19 aumenta con la edad y que los síntomas más comunes fueron la tos, el dolor de cabeza y la pérdida del gusto u olfato.

install.packages("xfun", repos = "https://cran.r-project.org", dependencies = TRUE)
## Installing package into 'C:/Users/LUIS/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## 
##   There is a binary version available but the source version is later:
##      binary source needs_compilation
## xfun   0.53   0.54              TRUE
## 
##   Binaries will be installed
## package 'xfun' successfully unpacked and MD5 sums checked
## Warning: cannot remove prior installation of package 'xfun'
## Warning in file.copy(savedcopy, lib, recursive = TRUE): problema al copiar
## C:\Users\LUIS\AppData\Local\R\win-library\4.5\00LOCK\xfun\libs\x64\xfun.dll a
## C:\Users\LUIS\AppData\Local\R\win-library\4.5\xfun\libs\x64\xfun.dll:
## Permission denied
## Warning: restored 'xfun'
## 
## The downloaded binary packages are in
##  C:\Users\LUIS\AppData\Local\Temp\Rtmpmevimn\downloaded_packages
library(readxl)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(tidyr)
library(corrplot)
## corrplot 0.95 loaded
library(lubridate)
## 
## Adjuntando el paquete: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
# Establecer directorio de trabajo
setwd("C:/Users/LUIS/Downloads/parte 2")

# Cargar la librería
library(readxl)

# Leer el archivo Excel
datos <- read_excel("2. covid_example_data (1).xlsx")

# Ahora sí puedes revisar la estructura
str(datos)
## tibble [82,101 × 31] (S3: tbl_df/tbl/data.frame)
##  $ PID                   : chr [1:82101] "3a85e6992a5ac52f" "c6b5281d5fc50b96" "53495ad0dca4e22c" "2948a265da0d081b" ...
##  $ reprt_creationdt_FALSE: POSIXct[1:82101], format: "2020-03-22" "2020-02-01" ...
##  $ case_dob_FALSE        : POSIXct[1:82101], format: "2004-11-08" "1964-06-07" ...
##  $ case_age              : num [1:82101] 16 57 77 57 56 65 47 61 36 42 ...
##  $ case_gender           : chr [1:82101] "Male" "Male" "Female" "Female" ...
##  $ case_race             : chr [1:82101] "WHITE" "WHITE" "BLACK" "BLACK" ...
##  $ case_eth              : chr [1:82101] "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" ...
##  $ case_zip              : num [1:82101] 30308 30308 30315 30213 30004 ...
##  $ Contact_id            : chr [1:82101] "Yes-Symptomatic" "Yes-Symptomatic" "Yes-Symptomatic" "Yes-Symptomatic" ...
##  $ sym_startdt_FALSE     : POSIXct[1:82101], format: "2020-03-20" "2020-01-28" ...
##  $ sym_fever             : chr [1:82101] "Yes" "No" "Yes" "No" ...
##  $ sym_subjfever         : chr [1:82101] "Yes" "No" NA "Yes" ...
##  $ sym_myalgia           : chr [1:82101] "No" "Yes" "Yes" "Yes" ...
##  $ sym_losstastesmell    : chr [1:82101] NA NA NA NA ...
##  $ sym_sorethroat        : chr [1:82101] "Yes" "No" "Yes" "Yes" ...
##  $ sym_cough             : chr [1:82101] "Yes" "Yes" "Yes" "Yes" ...
##  $ sym_headache          : chr [1:82101] "Yes" "No" NA "Yes" ...
##  $ sym_resolved          : chr [1:82101] "No, still symptomatic" "No, still symptomatic" "No, still symptomatic" "No, still symptomatic" ...
##  $ sym_resolveddt_FALSE  : POSIXct[1:82101], format: NA NA ...
##  $ contact_household     : chr [1:82101] "Yes" "No" NA "No" ...
##  $ hospitalized          : chr [1:82101] "No" "No" "Yes" NA ...
##  $ hosp_admidt_FALSE     : POSIXct[1:82101], format: NA NA ...
##  $ hosp_dischdt_FALSE    : POSIXct[1:82101], format: NA NA ...
##  $ died                  : chr [1:82101] "No" "No" "No" "No" ...
##  $ died_covid            : chr [1:82101] "No" "No" "No" "No" ...
##  $ died_dt_FALSE         : POSIXct[1:82101], format: NA NA ...
##  $ confirmed_case        : chr [1:82101] "Yes" "Yes" "Yes" "Yes" ...
##  $ covid_dx              : chr [1:82101] "Confirmed" "Confirmed" "Confirmed" "Confirmed" ...
##  $ pos_sampledt_FALSE    : POSIXct[1:82101], format: "2020-03-22" "2020-02-01" ...
##  $ latitude_JITT         : num [1:82101] 33.8 33.8 33.7 33.6 34.1 ...
##  $ longitude_JITT        : num [1:82101] -84.4 -84.4 -84.4 -84.6 -84.3 ...
head(datos)

interpretacion

La base de datos analizada corresponde a un conjunto de registros de casos de COVID-19 que contienen información demográfica, clínica y epidemiológica de cada paciente.
En total, el conjunto de datos incluye variables de identificación, fechas de reporte, características personales, síntomas, hospitalización y desenlaces clínicos.

Entre las principales variables se destacan:

En conjunto, la base proporciona una estructura completa para realizar análisis descriptivos, temporales y espaciales del COVID-19.
La combinación de información demográfica, clínica y temporal permite identificar patrones de contagio, grupos de riesgo y tendencias epidemiológicas, lo que la convierte en un recurso ideal para la aplicación de herramientas de Big Data y análisis estadístico.

actividad 1

# Ver estructura general
str(datos)
## tibble [82,101 × 31] (S3: tbl_df/tbl/data.frame)
##  $ PID                   : chr [1:82101] "3a85e6992a5ac52f" "c6b5281d5fc50b96" "53495ad0dca4e22c" "2948a265da0d081b" ...
##  $ reprt_creationdt_FALSE: POSIXct[1:82101], format: "2020-03-22" "2020-02-01" ...
##  $ case_dob_FALSE        : POSIXct[1:82101], format: "2004-11-08" "1964-06-07" ...
##  $ case_age              : num [1:82101] 16 57 77 57 56 65 47 61 36 42 ...
##  $ case_gender           : chr [1:82101] "Male" "Male" "Female" "Female" ...
##  $ case_race             : chr [1:82101] "WHITE" "WHITE" "BLACK" "BLACK" ...
##  $ case_eth              : chr [1:82101] "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" "NON-HISPANIC/LATINO" ...
##  $ case_zip              : num [1:82101] 30308 30308 30315 30213 30004 ...
##  $ Contact_id            : chr [1:82101] "Yes-Symptomatic" "Yes-Symptomatic" "Yes-Symptomatic" "Yes-Symptomatic" ...
##  $ sym_startdt_FALSE     : POSIXct[1:82101], format: "2020-03-20" "2020-01-28" ...
##  $ sym_fever             : chr [1:82101] "Yes" "No" "Yes" "No" ...
##  $ sym_subjfever         : chr [1:82101] "Yes" "No" NA "Yes" ...
##  $ sym_myalgia           : chr [1:82101] "No" "Yes" "Yes" "Yes" ...
##  $ sym_losstastesmell    : chr [1:82101] NA NA NA NA ...
##  $ sym_sorethroat        : chr [1:82101] "Yes" "No" "Yes" "Yes" ...
##  $ sym_cough             : chr [1:82101] "Yes" "Yes" "Yes" "Yes" ...
##  $ sym_headache          : chr [1:82101] "Yes" "No" NA "Yes" ...
##  $ sym_resolved          : chr [1:82101] "No, still symptomatic" "No, still symptomatic" "No, still symptomatic" "No, still symptomatic" ...
##  $ sym_resolveddt_FALSE  : POSIXct[1:82101], format: NA NA ...
##  $ contact_household     : chr [1:82101] "Yes" "No" NA "No" ...
##  $ hospitalized          : chr [1:82101] "No" "No" "Yes" NA ...
##  $ hosp_admidt_FALSE     : POSIXct[1:82101], format: NA NA ...
##  $ hosp_dischdt_FALSE    : POSIXct[1:82101], format: NA NA ...
##  $ died                  : chr [1:82101] "No" "No" "No" "No" ...
##  $ died_covid            : chr [1:82101] "No" "No" "No" "No" ...
##  $ died_dt_FALSE         : POSIXct[1:82101], format: NA NA ...
##  $ confirmed_case        : chr [1:82101] "Yes" "Yes" "Yes" "Yes" ...
##  $ covid_dx              : chr [1:82101] "Confirmed" "Confirmed" "Confirmed" "Confirmed" ...
##  $ pos_sampledt_FALSE    : POSIXct[1:82101], format: "2020-03-22" "2020-02-01" ...
##  $ latitude_JITT         : num [1:82101] 33.8 33.8 33.7 33.6 34.1 ...
##  $ longitude_JITT        : num [1:82101] -84.4 -84.4 -84.4 -84.6 -84.3 ...
# Número de filas y columnas
dim(datos)
## [1] 82101    31
# Nombres de las variables
colnames(datos)
##  [1] "PID"                    "reprt_creationdt_FALSE" "case_dob_FALSE"        
##  [4] "case_age"               "case_gender"            "case_race"             
##  [7] "case_eth"               "case_zip"               "Contact_id"            
## [10] "sym_startdt_FALSE"      "sym_fever"              "sym_subjfever"         
## [13] "sym_myalgia"            "sym_losstastesmell"     "sym_sorethroat"        
## [16] "sym_cough"              "sym_headache"           "sym_resolved"          
## [19] "sym_resolveddt_FALSE"   "contact_household"      "hospitalized"          
## [22] "hosp_admidt_FALSE"      "hosp_dischdt_FALSE"     "died"                  
## [25] "died_covid"             "died_dt_FALSE"          "confirmed_case"        
## [28] "covid_dx"               "pos_sampledt_FALSE"     "latitude_JITT"         
## [31] "longitude_JITT"
# Rango de fechas (inicio y fin del registro)
range(datos$reprt_creationdt_FALSE, na.rm = TRUE)
## [1] "2019-12-27 UTC" "2021-07-27 UTC"
# Contar valores faltantes por variable
colSums(is.na(datos))
##                    PID reprt_creationdt_FALSE         case_dob_FALSE 
##                      0                      0                     48 
##               case_age            case_gender              case_race 
##                     48                     63                   2630 
##               case_eth               case_zip             Contact_id 
##                   2574                     13                  32205 
##      sym_startdt_FALSE              sym_fever          sym_subjfever 
##                  37480                  31577                  37908 
##            sym_myalgia     sym_losstastesmell         sym_sorethroat 
##                  32137                  50724                  32241 
##              sym_cough           sym_headache           sym_resolved 
##                  31630                  32018                  42294 
##   sym_resolveddt_FALSE      contact_household           hospitalized 
##                  65799                  36737                  32482 
##      hosp_admidt_FALSE     hosp_dischdt_FALSE                   died 
##                  77115                  78600                  36832 
##             died_covid          died_dt_FALSE         confirmed_case 
##                  42302                  80394                      9 
##               covid_dx     pos_sampledt_FALSE          latitude_JITT 
##                      0                    122                     94 
##         longitude_JITT 
##                    200
# Mostrar las primeras filas para identificar variables
head(datos)

1.1describe brevemente la base

La base de datos utilizada contiene información detallada sobre casos confirmados de COVID-19, incluyendo variables demográficas, clínicas y temporales.
Cuenta con registros individuales identificados por un código (PID) y variables como edad (case_age), género (case_gender), raza (case_race), etnia (case_eth) y ubicación (case_zip).
También incluye fechas clave como el reporte del caso (reprt_creationdt_FALSE), inicio de síntomas (sym_startdt_FALSE), hospitalización y fallecimiento.
Además, incorpora variables clínicas relacionadas con la presencia de síntomas (sym_fever, sym_cough, sym_headache, etc.), el estado de hospitalización (hospitalized) y el desenlace clínico (died, confirmed_case).
En conjunto, esta base permite analizar el perfil epidemiológico de los casos y comprender la evolución y severidad del COVID-19 según grupo de edad y género.

1.2 menciona los tipos de información contiene

La base de datos del COVID-19 contiene distintos tipos de información relevante para comprender el comportamiento del virus y las características de las personas registradas:

Relevancia para un análisis descriptivo:
Estos tipos de información son fundamentales para elaborar un análisis descriptivo porque permiten: - Caracterizar a la población afectada según variables demográficas.
- Analizar la evolución temporal del virus y sus posibles patrones.
- Comparar el comportamiento de la pandemia entre diferentes grupos de edad, género o raza.
- Identificar tendencias y preparar los datos para futuros análisis predictivos o de correlación.

En conjunto, estos datos proporcionan una visión clara y detallada del contexto poblacional y temporal del COVID-19, lo que los convierte en una base sólida para el estudio exploratorio y visualización de tendencias.

actividad 2

## 1. Perfil demográfico

### Distribución por género, raza y etnia

# Distribución por género
tabla_genero <- datos %>%
  count(case_gender) %>%
  mutate(prop = round(100 * n / sum(n), 2))
tabla_genero
# Distribución por raza
tabla_raza <- datos %>%
  count(case_race) %>%
  mutate(prop = round(100 * n / sum(n), 2))
tabla_raza
# Distribución por etnia
tabla_etnia <- datos %>%
  count(case_eth) %>%
  mutate(prop = round(100 * n / sum(n), 2))
tabla_etnia

Interpretación - Perfil Demográfico

Distribución por Género

  • La población afectada por COVID-19 presenta una distribución ligeramente mayoritaria de mujeres (52.74%) frente a hombres (46.76%).
  • Existe una proporción mínima de casos con género desconocido (0.42%) o sin información (0.08%).
  • Esto sugiere que las mujeres representaron el grupo más afectado en términos de número de casos reportados.

Distribución por Raza

  • Las razas BLACK (42.69%) y WHITE (38.49%) concentran la mayoría de los casos, representando conjuntamente más del 80% de la población estudiada.
  • Se observa una sobrerrepresentación de la población BLACK en comparación con su proporción en la población general.
  • Los grupos ASIÁTICOS (3.75%) y OTRAS RAZAS (7.14%) presentan proporciones menores.
  • Las categorías “UNKNOWN” (4.53%) y “NA” (3.20%) indican limitaciones en la completitud de los datos raciales.

Distribución por Etnia

  • La población NO HISPANA/LATINA (76.34%) constituye la gran mayoría de los casos.
  • Los grupos HISPANOS/LATINOS (10.51%) y “NOT SPECIFIED” (10.02%) presentan proporciones similares.
  • Aproximadamente 3.14% de los registros carecen de información sobre etnia.
  • Los datos sugieren una menor representación de la población hispana/latina en comparación con su distribución demográfica esperada.

Conclusión

El perfil demográfico revela disparidades significativas en la distribución de casos por género, raza y etnia, lo que podría indicar diferencias en la exposición, acceso a pruebas, o vulnerabilidad biológica entre estos grupos poblacionales.

1.2Crear la variable age_group

datos <- datos %>%
  mutate(age_group = cut(case_age,
                         breaks = c(0, 17, 29, 44, 64, Inf),
                         labels = c("0–17", "18–29", "30–44", "45–64", "65+"),
                         right = TRUE))
# Ver las primeras filas de la nueva variable
head(datos$age_group)
## [1] 0–17  45–64 65+   45–64 45–64 65+  
## Levels: 0–17 18–29 30–44 45–64 65+
# O mirar un resumen de los grupos de edad
table(datos$age_group)
## 
##  0–17 18–29 30–44 45–64   65+ 
##  7871 20656 22685 21495  9207

Interpretación - Grupos de Edad

Distribución por Grupos Etarios

  • El grupo de 18-29 años es el más numeroso con 20,656 casos (25.16%), seguido por el grupo de 30-44 años con 22,685 casos (27.63%).
  • Los adultos jóvenes y de mediana edad (18-44 años) concentran más del 52% del total de casos.
  • El grupo de 45-64 años representa 21,495 casos (26.18%), mostrando una alta incidencia en población adulta.
  • Los grupos de menores de 17 años (7,871 casos, 9.59%) y adultos mayores de 65+ (9,207 casos, 11.22%) presentan las proporciones más bajas.

Análisis de los Resultados

  • La población en edad laboral (18-64 años) representa aproximadamente el 79% de todos los casos, lo que podría relacionarse con mayor exposición laboral y movilidad.
  • La menor incidencia en niños y adolescentes (0-17 años) coincide con la evidencia científica sobre menor susceptibilidad al contagio en estos grupos.
  • La proporción relativamente baja en adultos mayores (65+) podría reflejar mayores medidas de protección en este grupo vulnerable.

Conclusión

La distribución etaria muestra que el COVID-19 afectó predominantemente a la población económicamente activa, con los grupos de 18-44 años concentrando la mayor carga de casos, mientras que los extremos de edad presentaron menores proporciones de contagio reportado.

1.3Crear la tabla cruzada edad × género

tabla_edad_genero <- datos %>%
  count(age_group, case_gender) %>%
  group_by(age_group) %>%
  mutate(prop = round(100 * n / sum(n), 2))
tabla_edad_genero

Interpretación - Tabla Cruzada Edad × Género

Distribución por Grupos de Edad y Género

Grupo 0-17 años: - Distribución casi equitativa entre mujeres (50.13%) y hombres (49.28%) - Proporciones mínimas de género desconocido (0.47%) y sin información (0.11%) - Indica una afectación similar por género en la población infantil y adolescente

Grupo 18-29 años: - Predominio claro de mujeres (54.35%) sobre hombres (45.18%) - Las mujeres representan casi 10 puntos porcentuales más que los hombres en este grupo - Podría reflejar mayor exposición laboral o social en mujeres jóvenes

Grupo 30-44 años: - Continúa el predominio de mujeres (52.61%) sobre hombres (46.90%) - Patrón similar al grupo anterior, aunque con diferencia menos marcada - Este grupo presenta la segunda mayor proporción de casos femeninos

Tendencias Generales

  • En todos los grupos etarios, las mujeres presentan proporciones iguales o superiores a los hombres
  • La brecha de género es más pronunciada en adultos jóvenes (18-29 años)
  • La distribución se vuelve más equilibrada en extremos de edad (0-17 y 65+ años)
  • Las categorías “Unknown” y “NA” representan menos del 1% en todos los grupos, indicando buena calidad de datos

Conclusión

Existe un patrón consistente de mayor afectación en mujeres, especialmente en los grupos de edad productiva (18-44 años), lo que podría relacionarse con roles sociales, ocupacionales o diferencias en la búsqueda de atención médica entre géneros.

2.2 sintomas

# Seleccionar solo las columnas que comienzan con "sym_" 
sintomas <- datos %>%
  select(starts_with("sym_")) %>%
  select(where(is.character))

# Calcular el porcentaje de respuestas "Yes" 
prop_sintomas <- sapply(sintomas, function(x) {
  sum(x == "Yes", na.rm = TRUE) / sum(!is.na(x)) * 100
})

# Ordenar de mayor a menor frecuencia
prop_sintomas <- sort(prop_sintomas, decreasing = TRUE)
prop_sintomas
##          sym_cough       sym_headache sym_losstastesmell        sym_myalgia 
##           43.47645           43.27816           40.58387           39.09415 
##          sym_fever      sym_subjfever     sym_sorethroat       sym_resolved 
##           29.94023           28.76474           25.10229            0.00000

Interpretación:
Los resultados muestran que los síntomas más frecuentes entre los casos reportados son la tos (43.5%), el dolor de cabeza (43.3%) y la pérdida del gusto u olfato (40.6%).
También se observan porcentajes importantes de dolor muscular (39.1%) y fiebre (29.9%), los cuales son característicos del cuadro clínico del COVID-19.

Estos hallazgos reflejan que la mayoría de los pacientes presentó manifestaciones respiratorias y neurosensoriales típicas de la enfermedad.
Por su parte, síntomas como dolor de garganta aparecen con menor frecuencia, mientras que el indicador sym_resolved muestra 0% debido a que la base no contiene registros confirmados de recuperación.
En conjunto, esta información permite identificar los síntomas predominantes y su relevancia en el análisis descriptivo.

# Mostrar los 7 síntomas más frecuentes
top_sintomas <- head(prop_sintomas, 7)
top_sintomas
##          sym_cough       sym_headache sym_losstastesmell        sym_myalgia 
##           43.47645           43.27816           40.58387           39.09415 
##          sym_fever      sym_subjfever     sym_sorethroat 
##           29.94023           28.76474           25.10229

Interpretación:
El análisis muestra que los síntomas más frecuentes entre los casos registrados son la tos (43.5%), el dolor de cabeza (43.3%), la pérdida del gusto u olfato (40.6%) y el dolor muscular (39.1%).
Estos resultados coinciden con las manifestaciones clínicas más comunes del COVID-19 descritas por la OMS.
La fiebre y la sensación subjetiva de fiebre aparecen en alrededor del 30% de los casos, mientras que el dolor de garganta se presenta en una proporción menor (25.1%).

En conjunto, estos resultados confirman que la mayoría de los pacientes presentaron síntomas respiratorios y neurológicos, lo que refuerza la validez clínica de la base de datos para realizar análisis descriptivos posteriores.

# Crear data frame con los resultados
df_sintomas <- data.frame(
  Sintoma = names(top_sintomas),
  Porcentaje = top_sintomas
)

# Gráfico de barras con los nombres originales de la base
ggplot(df_sintomas, aes(x = reorder(Sintoma, Porcentaje), y = Porcentaje)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  coord_flip() +
  labs(
    title = "Síntomas más frecuentes en los casos de COVID-19",
    x = "Síntoma ",
    y = "Porcentaje de respuestas 'Yes'"
  ) +
  theme_minimal(base_size = 13)

Interpretación:
El análisis descriptivo de las variables relacionadas con síntomas (sym_) revela que los más reportados fueron:
- sym_cough (tos) con un 43.5%,
- sym_headache (dolor de cabeza) con un 43.3%,
- sym_losstastesmell (pérdida del gusto u olfato) con un 40.6%,
- sym_myalgia (dolor muscular) con un 39.1%,
- sym_fever (fiebre) con un 29.9%,
- sym_subjfever (sensación de fiebre) con un 28.8%,
- y sym_sorethroat (dolor de garganta) con un 25.1%.

Estos resultados muestran que la mayoría de los casos presentaron síntomas respiratorios y neuromusculares, lo que concuerda con la sintomatología típica del COVID-19 reportada por la Organización Mundial de la Salud.
La prevalencia elevada de tos y dolor de cabeza sugiere que estos indicadores son clave para la detección temprana, mientras que la pérdida del gusto u olfato refuerza su valor como síntoma distintivo de la enfermedad.

3 resultados clinicos

colnames(datos)
##  [1] "PID"                    "reprt_creationdt_FALSE" "case_dob_FALSE"        
##  [4] "case_age"               "case_gender"            "case_race"             
##  [7] "case_eth"               "case_zip"               "Contact_id"            
## [10] "sym_startdt_FALSE"      "sym_fever"              "sym_subjfever"         
## [13] "sym_myalgia"            "sym_losstastesmell"     "sym_sorethroat"        
## [16] "sym_cough"              "sym_headache"           "sym_resolved"          
## [19] "sym_resolveddt_FALSE"   "contact_household"      "hospitalized"          
## [22] "hosp_admidt_FALSE"      "hosp_dischdt_FALSE"     "died"                  
## [25] "died_covid"             "died_dt_FALSE"          "confirmed_case"        
## [28] "covid_dx"               "pos_sampledt_FALSE"     "latitude_JITT"         
## [31] "longitude_JITT"         "age_group"
## Tasa general de hospitalización
tasa_hosp <- datos %>%
  filter(!is.na(hospitalized)) %>%
  summarise(
    tasa_hosp = round(mean(hospitalized == "Yes") * 100, 2)
  )
tasa_hosp

Interpretación:
El análisis muestra que aproximadamente el 10.68% de los casos de COVID-19 incluidos en la base de datos requirieron hospitalización (hospitalized = Yes).
Esto sugiere que la mayoría de los pacientes (alrededor del 89%) presentaron cuadros leves o moderados que no necesitaron ingreso hospitalario.
Este resultado es consistente con la literatura médica, donde solo una proporción reducida de casos presenta complicaciones graves que requieren atención hospitalaria.

## Tasa general de letalidad (CFR)
tasa_cfr <- datos %>%
  filter(confirmed_case == "Yes", !is.na(died)) %>%
  summarise(
    tasa_cfr = round(mean(died == "Yes") * 100, 2)
  )
tasa_cfr

Interpretación:
La tasa de letalidad (CFR) obtenida fue de 3.76%, lo que indica que aproximadamente 4 de cada 100 personas con COVID-19 confirmadas fallecieron.
Este valor se encuentra dentro del rango esperado para la pandemia en su fase inicial, cuando los sistemas de salud enfrentaban alta demanda y limitaciones de tratamiento.
El resultado refleja que, aunque la mayoría de los casos confirmados logró recuperarse, el virus tuvo un impacto considerable en la mortalidad, especialmente entre los grupos de edad avanzada o con condiciones de riesgo preexistentes.

##. Hospitalización por grupo de edad
tasa_hosp_edad <- datos %>%
  filter(!is.na(hospitalized)) %>%
  group_by(age_group) %>%
  summarise(tasa_hosp = round(mean(hospitalized == "Yes") * 100, 2))
tasa_hosp_edad

Interpretación:
La tasa de hospitalización varía significativamente según el grupo de edad.
Los resultados muestran que los pacientes jóvenes (0–17 años) presentaron la menor proporción de hospitalizaciones (1.76%), seguidos por el grupo de 18–29 años (3.08%) y 30–44 años (6.30%).

A partir de los 45 años, la proporción de hospitalizaciones aumenta de forma notable: el grupo de 45–64 años registra una tasa de 13.66%, mientras que los mayores de 65 años alcanzan un 38.47%, lo que indica una clara relación entre la edad y la severidad clínica del COVID-19.

Estos resultados son coherentes con la evidencia epidemiológica mundial, donde las personas mayores presentan un mayor riesgo de complicaciones y hospitalización.
El valor observado en el grupo “NA” (12.73%) corresponde a registros sin información de edad, que podrían incluir casos atípicos o datos incompletos.

##. Letalidad (CFR) por grupo de edad
tasa_cfr_edad <- datos %>%
  filter(confirmed_case == "Yes", !is.na(died)) %>%
  group_by(age_group) %>%
  summarise(tasa_cfr = round(mean(died == "Yes") * 100, 2))
tasa_cfr_edad

Interpretación:
La tasa de letalidad (CFR) presenta un incremento pronunciado con la edad.
Los grupos jóvenes (0–17 y 18–29 años) muestran una mortalidad prácticamente nula, con tasas de 0.04% y 0.12%, respectivamente.
En los adultos de 30–44 años, la letalidad se mantiene baja (0.43%), pero a partir del grupo de 45–64 años aumenta de forma considerable (2.58%).

El cambio más notable se observa en los mayores de 65 años, donde la tasa de letalidad alcanza el 25.24%, indicando que aproximadamente uno de cada cuatro pacientes en este grupo etario falleció tras el contagio.
Este patrón confirma que la edad es un factor determinante en la gravedad y el desenlace clínico del COVID-19, tal como han documentado múltiples estudios epidemiológicos.
El grupo “NA” presenta una tasa de 0.00%, lo cual se debe a registros sin información de edad o con datos incompletos.

## 5. Gráficos
# Gráfico de hospitalización
ggplot(tasa_hosp_edad, aes(x = age_group, y = tasa_hosp)) +
  geom_col(fill = "steelblue") +
  labs(
    title = "Tasa de hospitalización por grupo de edad",
    x = "Grupo de edad",
    y = "Porcentaje hospitalizado ('Yes')"
  ) +
  theme_minimal(base_size = 13)

Interpretación:
El gráfico muestra una relación directa entre la edad y la probabilidad de hospitalización por COVID-19.
Se observa que los grupos jóvenes (0–17 y 18–29 años) presentan tasas muy bajas, menores al 5%, mientras que la proporción aumenta progresivamente en los grupos de mayor edad.
El grupo de 65 años o más presenta la tasa más alta (38.47%), evidenciando una clara vulnerabilidad clínica frente al virus.
Esta tendencia confirma que la edad es un factor determinante en la severidad de los casos y la necesidad de atención hospitalaria.

# Gráfico de letalidad
ggplot(tasa_cfr_edad, aes(x = age_group, y = tasa_cfr)) +
  geom_col(fill = "firebrick") +
  labs(
    title = "Tasa de letalidad (CFR) por grupo de edad",
    x = "Grupo de edad",
    y = "Porcentaje de fallecidos ('Yes')"
  ) +
  theme_minimal(base_size = 13)

Interpretación:
El gráfico evidencia una relación directa entre la edad y la tasa de letalidad por COVID-19.
Los grupos jóvenes (0–17, 18–29 y 30–44 años) presentan tasas de mortalidad prácticamente nulas (menores al 0.5%), lo que sugiere una alta capacidad de recuperación.
En cambio, los grupos de 45–64 años comienzan a mostrar un incremento en la letalidad (2.58%), y los mayores de 65 años alcanzan un valor alarmante del 25.24%, es decir, aproximadamente uno de cada cuatro pacientes fallece.

Este comportamiento confirma que la edad es el principal factor de riesgo asociado a la mortalidad por COVID-19, en concordancia con los hallazgos epidemiológicos internacionales.
El grupo “NA” no presenta fallecimientos, lo que se debe a la ausencia de datos de edad en esos registros.

actividad 3 analisis grafico

3.1 casos diarios y tendencia

## 1. Casos diarios y tendencia

# Convertir la fecha al formato correcto (si no lo está)
datos$reprt_creationdt_FALSE <- as.Date(datos$reprt_creationdt_FALSE)

# Contar casos por día
casos_diarios <- datos %>%
  group_by(reprt_creationdt_FALSE) %>%
  summarise(casos = n()) %>%
  arrange(reprt_creationdt_FALSE)

# Calcular media móvil de 7 días
casos_diarios <- casos_diarios %>%
  mutate(media_movil_7d = zoo::rollmean(casos, 7, fill = NA, align = "right"))

# Gráfico de barras con línea de tendencia
ggplot(casos_diarios, aes(x = reprt_creationdt_FALSE, y = casos)) +
  geom_col(fill = "steelblue") +
  geom_line(aes(y = media_movil_7d), color = "red", size = 1) +
  labs(
    title = "Casos diarios de COVID-19 y tendencia (media móvil de 7 días)",
    x = "Fecha de reporte",
    y = "Número de casos diarios"
  ) +
  theme_minimal(base_size = 13)
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).

Interpretación:
El gráfico muestra la evolución de los casos diarios de COVID-19 según la fecha de reporte (reprt_creationdt_FALSE).
Se observa una tendencia con fluctuaciones periódicas, donde la línea roja (media móvil de 7 días) suaviza el comportamiento diario, permitiendo identificar periodos de aumento y disminución en el número de casos.
Durante los picos más altos, se evidencia un incremento sostenido de contagios, seguido de etapas de descenso, lo que refleja la dinámica típica de las olas epidémicas.

3.2 distribucion demografica

## 2. Distribución demográfica: casos por edad y género

# Eliminar registros sin género o grupo de edad
datos_filtrados <- datos %>%
  filter(!is.na(age_group), !is.na(case_gender))

# Gráfico de barras apiladas
ggplot(datos_filtrados, aes(x = age_group, fill = case_gender)) +
  geom_bar(position = "dodge") +
  labs(
    title = "Distribución de casos de COVID-19 por grupo de edad y género",
    x = "Grupo de edad",
    y = "Número de casos",
    fill = "Género"
  ) +
  theme_minimal(base_size = 13)

Interpretación:
El gráfico muestra la distribución de los casos de COVID-19 por grupo de edad y género.
Se observa que los grupos de 30–44 años y 45–64 años concentran la mayor cantidad de casos registrados, mientras que los jóvenes (0–17 y 18–29 años) presentan una participación menor.
En cuanto al género, los casos masculinos (case_gender = Male) son ligeramente más numerosos que los femeninos, aunque la diferencia no es tan marcada en todos los grupos etarios.
Esto sugiere que la población adulta en edad laboral fue la más afectada durante el periodo analizado.

3.3 hospitalización y letalidad

# Unir las dos tablas (hospitalización y letalidad)
tasa_total <- merge(tasa_hosp_edad, tasa_cfr_edad, by = "age_group", all = TRUE)

# Convertir a formato largo para graficar con ggplot
tasa_long <- tasa_total %>%
  pivot_longer(cols = c("tasa_hosp", "tasa_cfr"),
               names_to = "Indicador",
               values_to = "Porcentaje")

# Gráfico de líneas comparativo
ggplot(tasa_long, aes(x = age_group, y = Porcentaje, color = Indicador, group = Indicador)) +
  geom_line(size = 1.2) +
  geom_point(size = 3) +
  labs(
    title = "Tasa de hospitalización y letalidad (CFR) por grupo etario",
    x = "Grupo de edad",
    y = "Porcentaje (%)",
    color = "Indicador"
  ) +
  scale_color_manual(values = c("tasa_hosp" = "steelblue", "tasa_cfr" = "firebrick"),
                     labels = c("Hospitalización", "Letalidad (CFR)")) +
  theme_minimal(base_size = 13)

Interpretación:
El gráfico compara las tasas de hospitalización y letalidad (CFR) por grupo de edad.
Se observa un incremento progresivo en ambas variables conforme aumenta la edad, destacando una diferencia marcada en el grupo de 65 años o más, donde la tasa de hospitalización supera el 38% y la de letalidad alcanza el 25%.
Esto evidencia que la edad es un factor crítico en la gravedad y desenlace clínico del COVID-19, ya que los adultos mayores presentan una mayor probabilidad tanto de ser hospitalizados como de fallecer.
En contraste, los grupos más jóvenes presentan tasas bajas en ambos indicadores, reflejando una menor vulnerabilidad ante el virus.

3.4 síntomas principales

## 4. Síntomas principales por grupo etario (versión corregida)

# 1. Asegurar que existe la variable age_group
if (!"age_group" %in% names(datos)) {
  datos <- datos %>%
    mutate(age_group = cut(case_age,
                           breaks = c(0, 17, 29, 44, 64, Inf),
                           labels = c("0–17", "18–29", "30–44", "45–64", "65+"),
                           right = TRUE))
}

# 2. Seleccionar columnas de síntomas (solo tipo texto)
sintomas_cols <- datos %>%
  select(age_group, starts_with("sym_")) %>%
  mutate(across(starts_with("sym_"), as.character)) %>%
  filter(!is.na(age_group))

# 3. Calcular prevalencia (% "Yes") por grupo etario
sintomas_group <- sintomas_cols %>%
  group_by(age_group) %>%
  summarise(across(starts_with("sym_"),
                   ~ round(mean(.x == "Yes", na.rm = TRUE) * 100, 2)))

# 4. Convertir a formato largo
sintomas_long <- sintomas_group %>%
  pivot_longer(cols = -age_group,
               names_to = "Sintoma",
               values_to = "Porcentaje")

# 5. Crear heatmap
ggplot(sintomas_long, aes(x = Sintoma, y = age_group, fill = Porcentaje)) +
  geom_tile(color = "white") +
  scale_fill_gradient(low = "lightblue", high = "firebrick") +
  labs(
    title = "Prevalencia de síntomas por grupo etario",
    x = "Síntoma (nombre original de la base)",
    y = "Grupo de edad",
    fill = "% de 'Yes'"
  ) +
  theme_minimal(base_size = 13) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Interpretación:
El mapa de calor muestra la prevalencia de síntomas por grupo etario.
Los síntomas más comunes en casi todos los grupos son la tos (sym_cough), el dolor de cabeza (sym_headache) y la pérdida del gusto/olfato (sym_losstastesmell).
En los grupos de mayor edad se observan mayores porcentajes de fiebre (sym_fever) y dolor muscular (sym_myalgia), mientras que los jóvenes presentan una menor intensidad general de síntomas.
Esto sugiere que los adultos y adultos mayores experimentaron los cuadros más severos durante el periodo analizado.