library(tinytex)
library(dplyr)
## 
## Attaching package: '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)
data_dengue = read.csv("datos_abiertos_vigilancia_dengue.csv")
unique(data_dengue$enfermedad)
## [1] "DENGUE SIN SEÑALES DE ALARMA" "DENGUE GRAVE"                
## [3] "II\\"                         ""                            
## [5] "DENGUE CON SEÑALES DE ALARMA"
data_dengue$enfermedad[data_dengue$enfermedad == "II\\"] <- NA
data_dengue$enfermedad[data_dengue$enfermedad == ""] <- NA
data_dengue$provincia[data_dengue$provincia == "\\N"] <- NA

# Ahora, opcionalmente, podrías querer eliminar filas con NA en 'enfermedad'

data_dengue <- na.omit(data_dengue)
data_dengue$enfermedad <- factor(data_dengue$enfermedad, 
                                 levels = c("DENGUE SIN SEÑALES DE ALARMA", 
                                            "DENGUE GRAVE", 
                                            "DENGUE CON SEÑALES DE ALARMA"))
levels(data_dengue$enfermedad)
## [1] "DENGUE SIN SEÑALES DE ALARMA" "DENGUE GRAVE"                
## [3] "DENGUE CON SEÑALES DE ALARMA"
data_dengue$ano = as.numeric(data_dengue$ano)
data_dengue$edad = as.numeric(data_dengue$edad)
data_dengue$provincia <- factor(data_dengue$provincia)
# ¿La edad media del contagiado de dengue vario a través de los años? ¿Fue lo mismo segun gravedad?

data_dengue_limpio <- data_dengue %>% filter(edad <= 122)

edad_media_por_año <- data_dengue_limpio %>%
  group_by(ano) %>%
  summarise(edad_media = mean(edad, na.rm = TRUE))

# Imprimir los resultados
print(edad_media_por_año)
## # A tibble: 23 × 2
##      ano edad_media
##    <dbl>      <dbl>
##  1  2000       28.4
##  2  2001       28.9
##  3  2002       26.0
##  4  2003       28.6
##  5  2004       28.1
##  6  2005       26.3
##  7  2006       26.8
##  8  2007       28.0
##  9  2008       27.8
## 10  2009       29.6
## # ℹ 13 more rows
ggplot(edad_media_por_año, aes(x = ano, y = edad_media)) +
  geom_line() +
  geom_point() +
  theme_minimal() +
  labs(title = "Edad media de contagiados de dengue por año",
       x = "Año",
       y = "Edad media")

edad_media_por_año_y_gravedad <- data_dengue_limpio %>%
  group_by(ano, enfermedad) %>%
  summarise(edad_media = mean(edad, na.rm = TRUE))
## `summarise()` has grouped output by 'ano'. You can override using the `.groups`
## argument.
# Imprimir los resultados
print(edad_media_por_año_y_gravedad)
## # A tibble: 59 × 3
## # Groups:   ano [23]
##      ano enfermedad                   edad_media
##    <dbl> <fct>                             <dbl>
##  1  2000 DENGUE SIN SEÑALES DE ALARMA       28.4
##  2  2001 DENGUE SIN SEÑALES DE ALARMA       28.9
##  3  2001 DENGUE GRAVE                       31.4
##  4  2002 DENGUE SIN SEÑALES DE ALARMA       26.0
##  5  2002 DENGUE GRAVE                       21.9
##  6  2002 DENGUE CON SEÑALES DE ALARMA       12  
##  7  2003 DENGUE SIN SEÑALES DE ALARMA       28.6
##  8  2003 DENGUE GRAVE                       38  
##  9  2004 DENGUE SIN SEÑALES DE ALARMA       28.1
## 10  2004 DENGUE GRAVE                       23.8
## # ℹ 49 more rows
ggplot(edad_media_por_año_y_gravedad, aes(x = ano, y = edad_media, color = enfermedad)) +
  geom_line() +
  geom_point() +
  theme_minimal() +
  labs(title = "Edad media de contagiados de dengue por año y gravedad",
       x = "Año",
       y = "Edad media",
       color = "Gravedad")

#La cantidad de casos  vario a través de los años? Fue lo mismo segun gravedad?
casos_por_año <- data_dengue_limpio %>%
  group_by(ano) %>%
  summarise(cantidad_de_casos = n())
print(casos_por_año)
## # A tibble: 23 × 2
##      ano cantidad_de_casos
##    <dbl>             <int>
##  1  2000              5557
##  2  2001             23526
##  3  2002              8086
##  4  2003              3349
##  5  2004              9547
##  6  2005              5640
##  7  2006              4022
##  8  2007              6344
##  9  2008             12824
## 10  2009             13404
## # ℹ 13 more rows
ggplot(casos_por_año, aes(x = ano, y = cantidad_de_casos)) +
  geom_line() +
  geom_point() +
  theme_minimal() +
  labs(title = "Cantidad de casos por año",
       x = "Año",
       y = "Cantidad de casos")

casos_por_enfermedad <- data_dengue_limpio %>%
  group_by(enfermedad) %>%
  summarise(cantidad_de_casos = n())
print(casos_por_enfermedad)
## # A tibble: 3 × 2
##   enfermedad                   cantidad_de_casos
##   <fct>                                    <int>
## 1 DENGUE SIN SEÑALES DE ALARMA            443970
## 2 DENGUE GRAVE                              2259
## 3 DENGUE CON SEÑALES DE ALARMA             54976
ggplot(casos_por_enfermedad, aes(x = enfermedad, y = cantidad_de_casos, fill = enfermedad)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  labs(title = "Cantidad de casos según gravedad",
       x = "Gravedad",
       y = "Cantidad de casos",
       fill = "Nivel de gravedad") +
  theme(axis.text.x = element_blank())

#¿Cuáles fueron las provincias mas afectadas con contagiados a lo largo de los años?
casos_por_año_y_provincia <- data_dengue_limpio %>%
  group_by(ano, provincia) %>%
  summarise(cantidad_de_casos = n(), .groups = 'drop') %>%
  arrange(ano, desc(cantidad_de_casos))
print(casos_por_año_y_provincia)
## # A tibble: 1,310 × 3
##      ano provincia        cantidad_de_casos
##    <dbl> <fct>                        <int>
##  1  2000 SULLANA                       2352
##  2  2000 TRUJILLO                      1496
##  3  2000 MAYNAS                         312
##  4  2000 BAGUA                          280
##  5  2000 TALARA                         216
##  6  2000 ALTO AMAZONAS                  184
##  7  2000 TUMBES                         127
##  8  2000 SAN MARTIN                     104
##  9  2000 CORONEL PORTILLO                87
## 10  2000 UTCUBAMBA                       61
## # ℹ 1,300 more rows
provincias_mayor_cantidad <- casos_por_año_y_provincia %>%
  group_by(provincia) %>%
  summarise(total_casos = sum(cantidad_de_casos)) %>%
  arrange(desc(total_casos)) %>%
  top_n(15, total_casos) %>%
  pull(provincia)
casos_filtrados_top_provincias <- casos_por_año_y_provincia %>%
  filter(provincia %in% provincias_mayor_cantidad)
ggplot(casos_filtrados_top_provincias, aes(x = ano, y = reorder(provincia, cantidad_de_casos), fill = cantidad_de_casos)) +
  geom_tile() +
  scale_fill_gradient(low = "blue", high = "red") +
  theme_minimal() +
  labs(title = "Casos de dengue por año y provincia (Top 15)",
       x = "Año",
       y = "Provincia",
       fill = "Nivel de casos") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1),
        axis.text.y = element_text(size = 5))

# Qué relación habia entre los casos alarmantes no graves y los asintomaticos segun departamento a lo largo de los años?

# Filtrar para incluir solo los casos de interés

casos_filtrados <- data_dengue_limpio %>%
  filter(enfermedad %in% c("DENGUE SIN SEÑALES DE ALARMA", "DENGUE CON SEÑALES DE ALARMA")) %>%
  group_by(ano, enfermedad) %>%
  summarise(cantidad_de_casos = n(), .groups = 'drop') %>%
  pivot_wider(names_from = enfermedad, values_from = cantidad_de_casos, values_fill = list(cantidad_de_casos = 0))

# Verificar los datos resultantes
print(casos_filtrados)
## # A tibble: 23 × 3
##      ano `DENGUE SIN SEÑALES DE ALARMA` `DENGUE CON SEÑALES DE ALARMA`
##    <dbl>                          <int>                          <int>
##  1  2000                           5557                              0
##  2  2001                          23276                              0
##  3  2002                           8071                              1
##  4  2003                           3334                              0
##  5  2004                           9513                              0
##  6  2005                           5625                              0
##  7  2006                           4018                              0
##  8  2007                           6309                              0
##  9  2008                          12789                              0
## 10  2009                          13393                              0
## # ℹ 13 more rows
casos_filtrados_relacion <- casos_filtrados %>%
  mutate(relacion = `DENGUE CON SEÑALES DE ALARMA` / `DENGUE SIN SEÑALES DE ALARMA`,
         supera = `DENGUE CON SEÑALES DE ALARMA` > `DENGUE SIN SEÑALES DE ALARMA`)

# Filtrar los años donde los casos sin señales de alarma superaron a los con señales de alarma
años_supera <- casos_filtrados_relacion %>%
  filter(supera == TRUE) %>%
  select(ano, relacion)

# Ver los años y la relación
print(años_supera)
## # A tibble: 0 × 2
## # ℹ 2 variables: ano <dbl>, relacion <dbl>
ggplot(casos_filtrados, aes(x = ano)) +
  geom_line(aes(y = `DENGUE SIN SEÑALES DE ALARMA`, colour = "Sin señales de alarma")) +
  geom_line(aes(y = `DENGUE CON SEÑALES DE ALARMA`, colour = "Con señales de alarma")) +
  theme_minimal() +
  labs(title = "Casos de dengue sin y con señales de alarma según año",
       x = "Año",
       y = "Cantidad de casos",
       colour = "Tipo de caso") +
  scale_colour_manual(values = c("Sin señales de alarma" = "blue", "Con señales de alarma" = "red"))