COVID-19 en población pediátrica menor de 18 años según registros nacionales en Perú, 2020-2023
Autor/a
Afiliación
Brian Norman Peña-Calero
Laboratorio de Innovación en Salud - UPCH
Fecha de publicación
16 mayo, 2024
In [1]:
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.4 ✔ readr 2.1.5
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.1 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.2
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(arrow)
Adjuntando el paquete: 'arrow'
The following object is masked from 'package:lubridate':
duration
The following object is masked from 'package:utils':
timestamp
library(duckdb)
Cargando paquete requerido: DBI
library(dbplyr)
Adjuntando el paquete: 'dbplyr'
The following objects are masked from 'package:dplyr':
ident, sql
library(innovar)library(apyramid)library(sf)
Linking to GEOS 3.12.1, GDAL 3.8.4, PROJ 9.3.1; sf_use_s2() is TRUE
Warning: Missing values are always removed in SQL aggregation functions.
Use `na.rm = TRUE` to silence this warning
This warning is displayed once every 8 hours.
Joining with `by = join_by(ubigeo, dep, prov, distr)`
peru_dep_sf <- Peru %>%group_by(dep.code, dep) %>%summarise() %>%ungroup()
`summarise()` has grouped output by 'dep.code'. You can override using the
`.groups` argument.
peru_reg_sf <- Peru %>%group_by(region) %>%summarise() %>%ungroup()peru_macro_sf <- Peru %>%group_by(macrorregion) %>%summarise() %>%ungroup()
Actualmente los datos disponibles para el análisis tienen las siguientes situaciones:
Fallecidos COVID-19: Ahora mismo, esta data (Fallecidos por COVID-19 - [Ministerio de Salud - MINSA]) se encuentra actualizada en el portal de datos abiertos. Cuenta con 220 816 fallecidos que van desde 2020-03-03 al 2024-02-03.
Casos positivos COVID-19: Esta base de datos ya fue corregida y actualizada recientemente en la plataforma de datos abiertos. Cuenta con 4 548 255 casos positivos que van desde 2020-03-06 al 2023-12-31. Sin embargo, tiene el inconveniente de no tener registrado el id_persona que es indispensable para poder calcular los casos nuevos positivos COVID-19. Se usará por ahora una base actualizada a junio del 2023 con algunos casos menos, pero que si tiene esta información. El enlace de descarga de esa data desde el mismo Minsa ya no se encuentra disponible, pero si está en este repositorio Github: https://github.com/jmcastagnetto/covid-19-peru-limpiar-datos-minsa/tree/main/datos/originales
Hospitalizados por COVID-19: Esta data contiene a la vez información de la vacunación y fallecimiento de quienes fueron hospitalizados. Cuenta con 150 791 casos hospitalizados que van desde 2019-06-06 al 2024-01-03.
Vacunación COVID-19: Esta data contiene información de vacuna. Cuenta con 91 838 312 registros de vacunación que van desde 2020-04-27 al 2023-12-30.
Población Estimada: Esta data contiene las estimaciones poblacionales desde el 2020 al 2023 realizada por REUNIS. Presenta subdivisiones por distrito, edad y sexo. Sin embargo, la versión del año 2021, no tiene subdivisión por sexo, por lo que se usa la estimación realizada por el INEI que si lo contiene.
Para términos de uniformidad, temporalmente se restringirán todos los datos a junio de 2023.
Positivos - Prevalencia COVID-19
Para la estimación de la prevalencia, se obtuvo los datos poblacionales por distrito, sexo y grupo de edad para 2020, 2021, 2022 y 2023. A partir de ello, se calculó una prevalencia promedio mensual (Ecuación 1) que luego fue promediada para obtener un único valor por distrito, sexo y grupo de edad. Finalmente, se reporta la prevalencia promedio mensual por 1000 habitantes en anualidades (Ecuación 2) u olas covid, a fin de tener una lectura con menor términos decimales.
\[
\text{Prevalencia promedio mensual}_i = \frac{\text{Promedio de Número de casos en el mes del año } i}{\text{Población en el año } i}
\tag{1}\]
Donde:
\(\text{Número de casos en el año } i\) es el número de positivos COVID-19 en un año en específico (2020-2023)
\(\text{Población en el año } i\) es la población que puede ser afectada por COVID-19 en un año en específico (2020-2023)
\[
\text{Prevalencia Promedio mensual por 1000 habitantes} = \left( \frac{\sum_{i=2020}^{2023} \text{Prevalencia promedio mensual}_i}{\text{Número de Años}} \right) \times 1000
\tag{2}\]
downloadthis::download_file(path ="02_output/tables/positivos_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [11]:
downloadthis::download_file(path ="02_output/tables/positivos_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
73 observations missing `ola_covid` have been removed. To include these observations, use `forcats::fct_na_value_to_level()` on `ola_covid` column before passing to `tbl_summary()`.
downloadthis::download_file(path ="02_output/tables/positivos_olas_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [16]:
downloadthis::download_file(path ="02_output/tables/positivos_olas_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Gráfico de positivos (serie de tiempo) - Menores de 18 años
positive_cases_area <- positivos_0723 %>%mutate(fecha_round =case_when( fecha_round ==as.Date("2024-01-01") ~as.Date("2023-12-31"),.default = fecha_round ) ) %>%count(grupo_edad, fecha_round) %>%collect() %>%ggplot(aes(x = fecha_round,y = n,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Positive cases",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )positive_cases_area
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_align()`).
Gráfico de Incidencia (serie de tiempo) - Menores de 18 años
In [18]:
prevalence_by_age_area <- results_per_month_prevalencia$grupo_edad$index %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Monthly incidence per 1000 inhabitants",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )prevalence_by_age_area
Warning: Removed 4 rows containing non-finite outside the scale range
(`stat_align()`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [29]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Departamento y sexo
In [30]:
results_prevalencia$departamento_sexo$index %>%mutate(departamento =str_to_title(departamento),departamento =fct_reorder2(departamento, sexo, rate) ) %>%ggplot(aes(x = departamento, y = rate, fill = sexo)) +geom_bar(stat ="identity", position =position_dodge()) +theme_bw() +labs(title ="Monthly incidence of COVID-19 by department and sex", x =NULL, y ="Monthly incidence per 1000 inhabitants",fill ="Sex",caption =paste0("Total cases reported: ", scales::number(sum(pull(results_prevalencia$departamento_sexo$index_pre, count))))) + innovar::scale_fill_innova("blue_fall") +theme(axis.text.x =element_text(angle =45,hjust =1,vjust =1 ) )
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_sexo.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [37]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_sexo.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Departamento y edad
In [38]:
results_prevalencia$departamento_grupo_edad$index %>%mutate(departamento =str_to_title(departamento),departamento =fct_reorder2(departamento, grupo_edad, rate) ) %>%ggplot(aes(x = departamento, y = rate, fill = grupo_edad)) +geom_bar(stat ="identity") +theme_bw() +labs(title ="Monthly incidence of COVID-19 by department and age groups", x =NULL, y ="Monthly incidence per 1000 inhabitants",fill ="Sex",caption =paste0("Total cases reported: ", scales::number(sum(pull(results_prevalencia$departamento_grupo_edad$index_pre, count))))) + innovar::scale_fill_innova("blue_fall") +facet_wrap(vars(grupo_edad)) +theme(axis.text.x =element_text(angle =45,hjust =1,vjust =1 ) )
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_edad.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [45]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_edad.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_edad_sexo.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [50]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_edad_sexo.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
In [51]:
results_prevalencia$departamento_sexo_grupo_edad$index %>%mutate(departamento =str_to_title(departamento) ) %>%ggplot(aes(x = departamento,y = rate,fill = sexo,group = sexo ) ) +geom_area() +facet_wrap(vars(grupo_edad)) + innovar::scale_fill_innova("blue_fall") +labs(y ="Monthly incidence per 1000 inhabitants",x =NULL,title ="Monthly incidence of COVID-19 by age groups and sex",fill ="Sex" ) +theme_bw() +theme(axis.text.x =element_text(angle =45,hjust =1,vjust =1 ) )
Departamento y olas
In [52]:
results_prevalencia$departamento_ola_covid$index %>%drop_na(ola_covid) %>%mutate(departamento =str_to_title(departamento),departamento =fct_reorder2(departamento, ola_covid, rate) ) %>%ggplot(aes(x = departamento, y = rate, fill = ola_covid)) +geom_bar(stat ="identity") +theme_bw() +labs(title ="Monthly incidence of COVID-19 by department and waves", x =NULL, y ="Monthly incidence per 1000 inhabitants",fill ="Sexo",caption =paste0("Total cases reported: ", scales::number(sum(pull(results_prevalencia$departamento_ola_covid$index_pre, count))))) + innovar::scale_fill_innova("blue_fall") +facet_wrap(vars(ola_covid)) +theme(axis.text.x =element_text(angle =75,hjust =1,vjust =1 ),legend.position ="bottom" )
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_ola.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [59]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento_ola.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Regiones
In [60]:
results_prevalencia$region$index %>%ggplot(aes(x = region, y = rate, fill = region)) +geom_bar(stat ="identity") +theme_bw() +labs(title ="Monthly incidence of COVID-19 by natural regions", x =NULL, y ="Monthly incidence per 1000 inhabitants",fill ="Sex",caption =paste0("Total cases reported: ", scales::number(sum(pull(results_prevalencia$region$index_pre, count))))) + innovar::scale_fill_innova("blue_fall") +theme(legend.position ="bottom" )
downloadthis::download_file(path ="02_output/tables/prevalencia_region.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [67]:
downloadthis::download_file(path ="02_output/tables/prevalencia_region.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Macrorregión
In [68]:
results_prevalencia$macrorregion$index %>%ggplot(aes(x = macrorregion, y = rate, fill = macrorregion)) +geom_bar(stat ="identity") +theme_bw() +labs(title ="Monthly incidence of COVID-19 by macroregions", x =NULL, y ="Monthly incidence per 1000 inhabitants",fill ="Sex",caption =paste0("Total cases reported: ", scales::number(sum(pull(results_prevalencia$macrorregion$index_pre, count))))) + innovar::scale_fill_innova("blue_fall") +theme(legend.position ="bottom" )
downloadthis::download_file(path ="02_output/tables/prevalencia_macrorregion.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [75]:
downloadthis::download_file(path ="02_output/tables/prevalencia_macrorregion.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Distrito y sexo
In [76]:
prev_distr_sex_1k_sf <- Peru %>%inner_join( results_prevalencia$distrito_sexo$index ) %>%ungroup()
downloadthis::download_file(path ="02_output/tables/prevalencia_distrito_sexo.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [82]:
downloadthis::download_file(path ="02_output/tables/prevalencia_distrito_sexo.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/prevalencia_distrito_edad.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [89]:
downloadthis::download_file(path ="02_output/tables/prevalencia_distrito_edad.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Distrital y pobreza
In [90]:
library(biscale)
In [91]:
prev_distr_pobr_1k_sf <- Peru %>%inner_join( results_prevalencia$distrito_cuartil_pobreza$index ) %>%ungroup()
Joining with `by = join_by(ubigeo)`
In [92]:
prev_distr_pobr_biscale <-bi_class(prev_distr_pobr_1k_sf,x = rate,y = cuartil_pobreza,style ="quantile", dim =4)
In [93]:
custom_pal <-c("1-1"="#dae7f3", # Azul muy claro - Bajo en COVID, bajo en pobreza"2-1"="#b6cee1", # Azul medio claro - Bajo en COVID, moderado en pobreza"3-1"="#92b5cf", # Azul medio - Bajo en COVID, alto en pobreza"4-1"="#6e9cbd", # Azul oscuro - Bajo en COVID, muy alto en pobreza"1-2"="#d8f2bc", # Verde muy claro - Alto en COVID, bajo en pobreza"2-2"="#a9d985", # Verde medio claro - Alto en COVID, moderado en pobreza"3-2"="#7bc04e", # Verde medio - Alto en COVID, alto en pobreza"4-2"="#4ca717", # Verde oscuro - Alto en COVID, muy alto en pobreza"1-3"="#f8d4a0", # Naranja muy claro - Bajo en pobreza, bajo en COVID"2-3"="#f6b86c", # Naranja medio claro - Moderado en pobreza, bajo en COVID"3-3"="#f59b38", # Naranja medio - Alto en pobreza, bajo en COVID"4-3"="#f37e04", # Naranja oscuro - Muy alto en pobreza, bajo en COVID"1-4"="#f8bfcb", # Rosa muy claro - Muy alto en COVID, bajo en pobreza"2-4"="#f196a0", # Rosa medio claro - Muy alto en COVID, moderado en pobreza"3-4"="#ea6d75", # Rosa medio - Muy alto en COVID, alto en pobreza"4-4"="#e3444a"# Rosa oscuro - Muy alto en COVID, muy alto en pobreza)legend <-bi_legend(pal = custom_pal,dim =4,xlab ="Incidence",ylab ="Poverty Quartiles",size =5)ggmap <- prev_distr_pobr_biscale %>%ggplot() +geom_sf(aes(fill = bi_class), linewidth =0.01,show.legend =FALSE) +bi_scale_fill(pal = custom_pal, dim =4) +# bi_scale_color(pal = "GrPink", dim = 3) +bi_theme()library(cowplot)
Adjuntando el paquete: 'cowplot'
The following object is masked from 'package:lubridate':
stamp
25 observations missing `cuartil_pobreza` have been removed. To include these observations, use `forcats::fct_na_value_to_level()` on `cuartil_pobreza` column before passing to `tbl_summary()`.
In [95]:
positivos_quartiles
Tabla 12: Cuartiles de pobreza y casos positivos menores de 18 años (07-03-2020 a 17-06-2023)
downloadthis::download_file(path ="02_output/tables/prevalencia_distritos_pobreza_descriptivos_by_dep.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [98]:
downloadthis::download_file(path ="02_output/tables/prevalencia_distritos_pobreza_descriptivos_by_dep.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
In [99]:
results_per_month_prevalencia$cuartil_pobreza$index %>%drop_na() %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,color = cuartil_pobreza) ) +geom_line(linewidth =1) + innovar::scale_color_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Monthly incidence of COVID-19",color ="Poverty Quartiles" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Distrito Lima
In [100]:
total_cases_distr_lim_callao <- results_prevalencia$distrito$index_pre %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%pull(count) %>%sum()results_prevalencia$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%mutate(distrito =str_to_title(distrito), distrito =fct_reorder(distrito, rate) ) %>%ggplot(aes(y = distrito, x = rate)) +geom_bar(stat ="identity",color ="black",fill ="grey80") +theme_bw() +labs(title ="Monthly incidence of COVID-19 by districts of metropolitan lima", x =NULL, y ="Monthly incidence per 1000 inhabitants",caption =paste0("Total cases reported: ", scales::number(total_cases_distr_lim_callao))) + innovar::scale_fill_innova("blue_fall") +theme(legend.position ="bottom" )
In [101]:
prev_lima_distr_1k_sf <- Peru %>%inner_join( results_prevalencia$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) )
downloadthis::download_file(path ="02_output/tables/prevalencia_lima_distrito.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [107]:
downloadthis::download_file(path ="02_output/tables/prevalencia_lima_distrito.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/fallecidos_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [116]:
downloadthis::download_file(path ="02_output/tables/fallecidos_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/fallecidos_olas_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [121]:
downloadthis::download_file(path ="02_output/tables/fallecidos_olas_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Gráfico de muertes (serie de tiempo) - Menores de 18 años
In [122]:
range_fallecidos_und_18 <- fallecidos_total %>%summarise(min =min(fecha_fallecimiento),max =max(fecha_fallecimiento) ) %>%collect()deaths_cases_area <- fallecidos_total %>%count(clasificacion_def, fecha_round) %>%mutate(clasificacion_def =case_match( clasificacion_def,"Criterio serológico"~"Serological Criterion","Criterio radiológico"~"Radiological Criterion","Criterio SINADEF"~"SINADEF Criterion","Criterio virológico"~"Virological Criterion","Criterio nexo epidemiológico"~"Epidemiological Link Criterion","Criterio clínico"~"Clinical Criterion","Criterio investigación Epidemiológica"~"Epidemiological Investigation Criterion",.default =NA_character_ ) ) %>%collect() %>%ggplot(aes(x = fecha_round,y = n,fill = clasificacion_def ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +# scale_x_date(# limits = c(ymd("2020-03-01"), ymd("2023-10-31")),# breaks = scales::date_breaks("2 month"), # Cambiar a "6 months" para menos frecuencia# labels = scales::date_format("%b %Y") # Formato de fecha, %b es la abreviatura de mes, %Y es el año# ) + scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Deaths by COVID-19 under 18 years old",fill ="Classification Criteria" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax = range_fallecidos_und_18$max, ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )deaths_cases_area
Gráfico de muertes (serie de tiempo) - Grupo Etáreo
In [123]:
deaths_cases_by_age_area <- fallecidos_total %>%count(grupo_edad, fecha_round) %>%collect() %>%ggplot(aes(x = fecha_round,y = n,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +# scale_x_date(# limits = c(ymd("2020-03-01"), ymd("2023-10-31")),# breaks = scales::date_breaks("2 month"), # Cambiar a "6 months" para menos frecuencia# labels = scales::date_format("%b %Y") # Formato de fecha, %b es la abreviatura de mes, %Y es el año# ) + scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Deaths",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )deaths_cases_by_age_area
Gráfico Mortalidad (serie de tiempo)
In [124]:
mortality_cases_by_age_area <- results_per_month_mortalidad$grupo_edad$index %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Monthly mortality per 100 000 inhabitants",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )mortality_cases_by_age_area
Gráfico Letalidad (serie de tiempo)
In [125]:
lethality_cases_by_age_area <- results_per_month_letalidad$grupo_edad$index %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Monthly lethality per 100 cases",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )lethality_cases_by_age_area
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [136]:
downloadthis::download_file(path ="02_output/tables/prevalencia_departamento.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_sexo.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [143]:
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_sexo.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_edad.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [150]:
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_edad.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_ola.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [157]:
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_ola.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/mortalidad_region.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [164]:
downloadthis::download_file(path ="02_output/tables/mortalidad_region.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_edad.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [171]:
downloadthis::download_file(path ="02_output/tables/mortalidad_departamento_edad.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Distrital y pobreza
In [174]:
results_per_month_mortalidad$cuartil_pobreza$index %>%drop_na() %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,color = cuartil_pobreza) ) +geom_line(linewidth =1) + innovar::scale_color_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Mortality COVID-19 under 18 years old",color ="Poverty Quartiles" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Distrito Lima
In [175]:
total_mort_distr_lim_callao <- results_mortalidad$distrito$index_pre %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%pull(count) %>%sum()results_mortalidad$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%mutate(distrito =str_to_title(distrito), distrito =fct_reorder(distrito, rate) ) %>%ggplot(aes(y = distrito, x = rate)) +geom_bar(stat ="identity",color ="black",fill ="grey80") +theme_bw() +labs(title ="Mortality COVID-19 in Metropolitan Lima", x =NULL, y ="Monthly mortality per 100 000 inhabitants",caption =paste0("Total deaths reported: ", scales::number(total_mort_distr_lim_callao))) + innovar::scale_fill_innova("blue_fall") +theme(legend.position ="bottom" )
In [176]:
mort_lima_distr_1k_sf <- Peru %>%inner_join( results_mortalidad$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) )
downloadthis::download_file(path ="02_output/tables/mortalidad_lima_distrito.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [182]:
downloadthis::download_file(path ="02_output/tables/mortalidad_lima_distrito.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Los datos utilizados para incidencia positivos tienen datos hasta julio de 2023. Se tiene registro de 315 046 casos positivos menores de 18 años. Para poder analizar la incidencia necesitamos saber que si un caso positivos es nuevo o es una reinfección que no se puede considerar aún como caso nuevo. Se tendrá como criterio 3 meses de espacio entre infecciones. Lamentablemente, incluso en estos datos, hay 12 495 registros sin id_persona.
Criterios para casos positivos y de reinfección:
Hasta 1 mes (30 días), se considera una misma infección.
Espacio de 3 meses a más (90 días), se considera una nueva infección (reinfección)
Reportar cantidad de casos que se encuentren entre 1 mes y menos de 3 meses (entre día 31 y 89), con su respectivo método.
In [185]:
incidencia_positivos %>%count(caso_intermedio)
# Source: SQL [3 x 2]
# Database: DuckDB v0.10.1 [brian@Windows 10 x64:R 4.4.0/D:\Github\covid-analisis-ninos\01_data\raw\covid.duckdb]
caso_intermedio n
<lgl> <dbl>
1 FALSE 302236
2 TRUE 245
3 NA 12565
downloadthis::download_file(path ="02_output/tables/hospitalizacion_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [194]:
downloadthis::download_file(path ="02_output/tables/hospitalizacion_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/hospitalizados_olas_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [199]:
downloadthis::download_file(path ="02_output/tables/hospitalizados_olas_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Gráfico de hospitalización (serie de tiempo) - Menores de 18 años
In [200]:
# # range_positivos_und_18 <- positivos %>% # filter(edad < 18, # sexo != "No registrado") %>% # pull(fecha_resultado) %>%# range()hospitalizados %>%to_arrow() %>%mutate(fecha_round =ceiling_date(fecha_ingreso_hosp, unit ="month") ) %>%compute() %>%to_duckdb() %>%# mutate(# fecha_round = case_when(# fecha_round == as.Date("2024-01-01") ~ as.Date("2023-12-31"),# .default = fecha_round# )# ) %>% count(grupo_edad, fecha_round) %>%collect() %>%ggplot(aes(x = fecha_round,y = n,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +scale_x_date(limits =c(ymd("2020-03-07"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-07"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Hospitalizados COVID Población Menor de 18 años",fill ="Grupo de Edad" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Primera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Segunda ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Tercera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Cuarta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Quinta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_rect()`).
Gráfico Tasa de hospitalización (serie de tiempo)
In [201]:
per_month_hospi_under_1 <-tibble(grupo_edad ="Under 1 year",time =seq(from =as.Date("2020-03-01"), to =as.Date("2023-07-01"), by ="month"),rate =0)hospi_rate_by_age_area <- results_per_month_hospi$grupo_edad$index %>%mutate(time =make_date(anio, mes, "1") ) %>%bind_rows( per_month_hospi_under_1 ) %>%ggplot(aes(x = time,y = rate,fill = grupo_edad ) ) +geom_area(position ='stack') +# scale_fill_manual(# values = c(# "#0b4e60", "#2c9bb4", "#dae2bc", "#8c3a33"# ), # na.value = "#0b4e60", # drop = FALSE# ) + innovar::scale_fill_innova("jama", drop =FALSE) +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Monthly hospital admissions per 100 cases",fill ="Age Group" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )hospi_rate_by_age_area
downloadthis::download_file(path ="02_output/tables/tasa_hospitalizacion_departamento.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [213]:
downloadthis::download_file(path ="02_output/tables/tasa_hospitalizacion_departamento.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Distrital y pobreza
In [225]:
results_per_month_hospi$cuartil_pobreza$index %>%drop_na() %>%mutate(time =make_date(anio, mes, "1") ) %>%ggplot(aes(x = time,y = rate,color = cuartil_pobreza) ) +geom_line(linewidth =1) + innovar::scale_color_innova("jama") +scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +labs(y =NULL,x =NULL,title ="Hospital admissions COVID-19 under 18 years old",color ="Poverty Quartiles" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="First wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Second wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Third wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Fourth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =as.Date("2023-07-01"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"),y =Inf, # Posición vertical del textolabel ="Fifth wave", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Distrito Lima
In [226]:
total_hospi_distr_lim_callao <- results_hospi$distrito$index_pre %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%pull(count) %>%sum()results_hospi$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) %>%drop_na() %>%mutate(distrito =str_to_title(distrito), distrito =fct_reorder(distrito, rate) ) %>%ggplot(aes(y = distrito, x = rate)) +geom_bar(stat ="identity",color ="black",fill ="grey80") +theme_bw() +labs(title ="Hospital admissions COVID-19 in Metropolitan Lima", x =NULL, y ="Hospital admissions per 100 cases",caption =paste0("Total hospital admissions: ", scales::number(total_hospi_distr_lim_callao))) + innovar::scale_fill_innova("blue_fall") +theme(legend.position ="bottom" )
In [227]:
tasa_hospi_lima_distr_1k_sf <- Peru %>%inner_join( results_hospi$distrito$index %>%filter(provincia %in%c("LIMA", "CALLAO")) )
downloadthis::download_file(path ="02_output/tables/tasa_hospitalizacion_lima_distrito.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [233]:
downloadthis::download_file(path ="02_output/tables/tasa_hospitalizacion_lima_distrito.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/vacunas_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [241]:
downloadthis::download_file(path ="02_output/tables/vacunas_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
downloadthis::download_file(path ="02_output/tables/fallecidos_olas_descriptivos.xlsx",button_label ="Descargar tabla en Excel",button_type ="success",has_icon =TRUE,icon ="fa fa-save")
In [246]:
downloadthis::download_file(path ="02_output/tables/fallecidos_olas_descriptivos.docx",button_label ="Descargar tabla en Word",button_type ="primary",has_icon =TRUE,icon ="fa fa-save")
Gráfico de vacunación (serie de tiempo) - Menores de 18 años
Se restringió la visualización de dosis de 1 a 5.
In [247]:
summ_vacunas_dosis_fecha <- vacunas_18 %>%to_arrow() %>%mutate(fecha_round =ceiling_date(fecha_vacunacion, unit ="month"),.after = fecha_vacunacion ) %>%filter(dosis %in%1:5) %>%count(dosis, fecha_round) %>%collect()summ_vacunas_dosis_fecha %>%ggplot(aes(x = fecha_round,y = n,fill =as.factor(dosis) ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +# scale_x_date(# limits = c(ymd("2020-03-01"), ymd("2023-10-31")),# breaks = scales::date_breaks("2 month"), # Cambiar a "6 months" para menos frecuencia# labels = scales::date_format("%b %Y") # Formato de fecha, %b es la abreviatura de mes, %Y es el año# ) + scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +scale_y_continuous(labels = scales::number_format() ) +labs(y =NULL,x =NULL,title ="Vacunación COVID Población Menor de 18 años",fill ="Dosis" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Primera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Segunda ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Tercera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Cuarta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =dmy(range_vacu$max), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Quinta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Gráfico de vacunación (serie de tiempo) - Grupo Etáreo
In [248]:
summ_vacunas_edad_fecha <- vacunas_18 %>%to_arrow() %>%mutate(fecha_round =ceiling_date(fecha_vacunacion, unit ="month"),.after = fecha_vacunacion ) %>%count(grupo_edad, fecha_round) %>%collect() summ_vacunas_edad_fecha %>%ggplot(aes(x = fecha_round,y = n,fill = grupo_edad ) ) +geom_area(position ='stack') + innovar::scale_fill_innova("jama") +# scale_x_date(# limits = c(ymd("2020-03-01"), ymd("2023-10-31")),# breaks = scales::date_breaks("2 month"), # Cambiar a "6 months" para menos frecuencia# labels = scales::date_format("%b %Y") # Formato de fecha, %b es la abreviatura de mes, %Y es el año# ) + scale_x_date(limits =c(ymd("2020-03-01"), ymd("2023-07-01")),breaks =seq(from =ceiling_date(ymd("2020-03-01"), "month"),to =floor_date(ymd("2023-07-01"), "month"),by ="2 months"), # date_breaks = "2 month",date_labels ="%b %Y" ) +scale_y_continuous(labels = scales::number_format() ) +labs(y =NULL,x =NULL,title ="Fallecidos COVID Población Menor de 18 años",fill ="Criterio de Clasificación" ) +theme_minimal() +theme(axis.text.x =element_text(angle =45 ) ) +annotate(geom ="rect",xmin =as.Date("2020-03-01"), xmax =as.Date("2020-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2020-07-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Primera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2020-11-01"), xmax =as.Date("2021-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2021-04-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Segunda ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2021-11-01"), xmax =as.Date("2022-04-30"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-02-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Tercera ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-05-01"), xmax =as.Date("2022-10-31"), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2022-08-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Cuarta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo ) +annotate(geom ="rect",xmin =as.Date("2022-11-01"), xmax =dmy(range_vacu$max), ymin =0, # El rectángulo se extiende hasta la parte inferior del gráficoymax =Inf, # El rectángulo se extiende hasta la parte superior del gráficocolor ="black", # Color de la líneafill =NA, # Sin rellenolinetype ="dashed", # Tipo de línea discontinualinewidth =0.5# Grosor de la línea ) +annotate(geom ="text", x =as.Date("2023-03-01"), # Punto medio aproximado de la Ola 2y =Inf, # Posición vertical del textolabel ="Quinta ola", color ="black",size =4, # Tamaño del textovjust =2# Ajuste vertical para colocar el texto encima del rectángulo )
Pirámide frecuencia - Edades
In [249]:
library(patchwork)
Adjuntando el paquete: 'patchwork'
The following object is masked from 'package:cowplot':
align_plots
create_age_pyramids <-function(data, age, by, proportional =FALSE, scale_adjust =7, angle.axis =NULL) { plots <-list()for (dosis in1:5) {# Filtra por dosis y crea el gráfico p <- data %>%filter(dosis == dosis) %>%age_pyramid(age_group =!!rlang::enquo(age), split_by =!!rlang::enquo(by),proportional = proportional) +scale_fill_brewer(palette ="Dark2") +labs(subtitle =paste("Dosis", dosis),x =NULL,fill ="Sexo",y =NULL ) +theme_classic() +theme(axis.text.x =element_text(angle = angle.axis,vjust =0.5,hjust =0.5 ) )if (!proportional) { p <- p +scale_y_continuous(labels =~ scales::number(abs(.x)),n.breaks = scale_adjust ) }if (dosis %in%1:2) { p <- p +theme(axis.text.x =element_blank(),axis.ticks.x =element_blank() ) } plots[[dosis]] <- p }# Combina todos los gráficos en uno solo usando patchwork combined_plot <-reduce(plots, `+`) +plot_layout(guides ='collect') &labs(x ="Edad", y ="Frecuencia") +theme(legend.position ='bottom')return(combined_plot)}
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
In [251]:
vacunas_18_descr_tbl %>%create_age_pyramids(age = grupo_edad, by = sexo, scale_adjust =6,angle.axis =20)
Warning: 1204 missing rows were removed (1204 values from `grupo_edad` and 0
values from `sexo`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning: 1204 missing rows were removed (1204 values from `grupo_edad` and 0
values from `sexo`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning: 1204 missing rows were removed (1204 values from `grupo_edad` and 0
values from `sexo`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning: 1204 missing rows were removed (1204 values from `grupo_edad` and 0
values from `sexo`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Warning: 1204 missing rows were removed (1204 values from `grupo_edad` and 0
values from `sexo`).
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for y is already present.
Adding another scale for y, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Scale for fill is already present.
Adding another scale for fill, which will replace the existing scale.
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `grupo_edad = fct_relevel(...)`.
Caused by warning:
! 4 unknown levels in `f`: Menos de 1 año, 1 - 5 años, 6 - 11 años, and 12 - 17
años
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `grupo_edad = fct_relevel(...)`.
Caused by warning:
! 4 unknown levels in `f`: Menos de 1 año, 1 - 5 años, 6 - 11 años, and 12 - 17
años
`summarise()` has grouped output by "macrorregion" and "grupo_edad". You can
override using the `.groups` argument.
`summarise()` has grouped output by "anio" and "macrorregion". You can override
using the `.groups` argument.
Warning: There was 1 warning in `mutate()`.
ℹ In argument: `grupo_edad = fct_relevel(...)`.
Caused by warning:
! 4 unknown levels in `f`: Menos de 1 año, 1 - 5 años, 6 - 11 años, and 12 - 17
años
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Warning in st_point_on_surface.sfc(data$geometry): st_point_on_surface may not
give correct results for longitude/latitude data
Figura 1: Positividad COVID Población menor de edad de acuerdo al grupo de edad y ola (07-03-2020 a 17-06-2023)Figura 2: Incidencia COVID Población menor de edad de acuerdo al grupo de edad y ola (07-03-2020 a 17-06-2023)Figura 3: Prevalencia COVID-19 de acuerdo al departamento (07-03-2020 a 17-06-2023)Figura 4: Prevalencia COVID-19 de acuerdo al departamento y sexo (07-03-2020 a 17-06-2023)Figura 5: Prevalencia COVID-19 de acuerdo al departamento y sexo (07-03-2020 a 17-06-2023)Figura 6: Prevalencia COVID-19 de acuerdo al departamento y edad (07-03-2020 a 17-06-2023)Figura 7: Prevalencia COVID-19 de acuerdo al departamento y edad (07-03-2020 a 17-06-2023)Figura 8: Prevalencia COVID-19 de acuerdo al departamento, sexo y edad (07-03-2020 a 17-06-2023)Figura 9: Prevalencia COVID-19 de acuerdo al departamento y olas covid (07-03-2020 a 17-06-2023)Figura 10: Prevalencia COVID-19 de acuerdo al departamento por Olas (07-03-2020 a 17-06-2023)Figura 11: Prevalencia COVID-19 de acuerdo a la región (07-03-2020 a 17-06-2023)Figura 12: Prevalencia COVID-19 de acuerdo a la región (07-03-2020 a 17-06-2023)Figura 13: Prevalencia COVID-19 de acuerdo a la macrorregión (07-03-2020 a 17-06-2023)Figura 14: Prevalencia COVID-19 de acuerdo a la macrorregión (07-03-2020 a 17-06-2023)Figura 15: Prevalencia COVID-19 de acuerdo al distrito y sexo (07-03-2020 a 17-06-2023)Figura 16: Prevalencia COVID-19 de acuerdo al distrito y edad (07-03-2020 a 17-06-2023)Figura 17: Prevalencia COVID-19 de acuerdo al distrito y cuartil de pobreza(07-03-2020 a 17-06-2023)Figura 18: Prevalencia COVID-19 de acuerdo al cuartil de pobreza(07-03-2020 a 17-06-2023)Figura 19: Prevalencia COVID-19 de acuerdo a los distritos de lima metropolitana (07-03-2020 a 17-06-2023)Figura 20: Prevalencia COVID-19 de acuerdo a los distritos de lima metropolitana (07-03-2020 a 17-06-2023)Figura 21: Mortalidad COVID-19 por 100K habitantes de acuerdo al departamento (14-03-2020 a 13-06-2023)Figura 22: Mortalidad COVID-19 por 100K habitantes de acuerdo al departamento y sexo (14-03-2020 a 13-06-2023)Figura 23: Mortalidad COVID-19 por 100K habitantes de acuerdo al departamento y grupo de edad (14-03-2020 a 13-06-2023)Figura 24: Mortalidad COVID-19 por 100K habitantes de acuerdo al departamento y Olas COVID (14-03-2020 a 13-06-2023)Figura 25: Mortalidad COVID-19 por 100K habitantes de acuerdo a la región (14-03-2020 a 13-06-2023)Figura 26: Mortalidad COVID-19 por 100K habitantes de acuerdo a la macrorregión (14-03-2020 a 13-06-2023)Figura 27: Letalidad COVID-19 por 100K habitantes de acuerdo a la macrorregión (14-03-2020 a 13-06-2023)Figura 28: Mortalidad COVID-19 de acuerdo al cuartil de pobreza(14-03-2020 a 13-06-2023)Figura 29: Mortalidad COVID-19 de acuerdo a los distritos de lima metropolitana (14-03-2020 a 13-06-2023)Figura 30: Mortalidad COVID-19 de acuerdo a los distritos de lima metropolitana (14-03-2020 a 13-06-2023)Figura 31: Hospitalización COVID-19 de acuerdo a la edad y ola covid (24-03-2020 a 16-06-2023)Figura 32: Tasa de Hospitalización por 1000 positivos COVID-19 de acuerdo al departamento, sexo y edad (24-03-2020 a 16-06-2023)Figura 33: Tasa de Hospitalización por 100 positivos COVID-19 de acuerdo al departamento (24-03-2020 a 16-06-2023)Figura 34: Tasa de Hospitalización por 100 positivos COVID-19 de acuerdo al departamento y sexo(24-03-2020 a 16-06-2023)Figura 35: Tasa de Hospitalización por 100 positivos COVID-19 de acuerdo al departamento y sexo (24-03-2020 a 16-06-2023)Figura 36: Tasa de Hospitalización por 100 positivos COVID-19 de acuerdo al departamento y grupo de edad(24-03-2020 a 16-06-2023)Figura 37: Tasa de Hospitalización por 1000 positivos COVID-19 de acuerdo al departamento y ola (24-03-2020 a 16-06-2023)Figura 38: Tasa de Hospitalización por 100 positivos COVID-19 de acuerdo a la región (24-03-2020 a 16-06-2023)Figura 39: Tasa de Hospitalización por 1000 positivos COVID-19 de acuerdo a la macrorregión (24-03-2020 a 16-06-2023)Figura 40: Mortalidad COVID-19 de acuerdo al cuartil de pobreza(14-03-2020 a 13-06-2023)Figura 41: Tasa de Hospitalización COVID-19 de acuerdo a los distritos de lima metropolitana (24-03-2020 a 16-06-2023)Figura 42: Tasa de Hospitalización COVID-19 de acuerdo a los distritos de lima metropolitana (24-03-2020 a 16-06-2023)Figura 43: Vacunación COVID Población menor de edad de acuerdo a la dosis y ola (03-01-2021 a 17-06-2023)Figura 44: Vacunación COVID Población menor de edad de acuerdo al grupo etáreo y ola (03-01-2021 a 17-06-2023)Figura 45: Tasa de Vacunación COVID-19 de acuerdo al departamento, edad y dosis (03-01-2021 a 17-06-2023)Figura 46: Tasa de Vacunación COVID-19 de acuerdo al departamento y edad (03-01-2021 a 17-06-2023)Figura 47: Tasa de Vacunación COVID-19 de acuerdo al departamento y dosis (03-01-2021 a 17-06-2023)Figura 48: Tasa de Vacunación COVID-19 de acuerdo a la región, edad y dosis (03-01-2021 a 17-06-2023)Figura 49: Tasa de Vacunación COVID-19 de acuerdo a la macrorregión, edad y dosis (03-01-2021 a 17-06-2023)