Muertes Perú: Mayo 2020

COVID-19 Perú

En este post voy analizar la información de SINADEF y los reportes del MINSA hasta el 31 de Mayo. El código está al final del post. La idea original es replicar los cálculos del FT.

En el SINADEF encontramos información desde el 2017. En la siguiente tabla se muestra el número de muertos por año y mes en cada departamento.

Nota: no considero los casos en los que “Departamento” está codificado como “NO REGISTRADO”,“EXTRANJERO”

MES 2017 2018 2019 2020
1 7525 8642 9601 9602
2 7256 7807 9192 9113
3 8451 8573 9804 9345
4 7494 8472 8846 12258
5 7877 9506 8915 23317

Tomando el 2019 vemos que los números son muy parecidos en enero, febrero, marzo del 2020.

  • En abril del 2019 hubieron 8846 y en 2020 hubieron 12258.La brecha es de 3412 fallecidos. Los fallecidos reportados por COVID fueron 1051. Entonces el “exceso de muertos” fueron alrededor de 2361.

  • En mayo la diferencia crece mucho más, la brecha es de 14402 (8915-23317). Los muertos reportados por COVID son 3455, es decir los “exceso de muertos” es de alrededor de 10900 approx.

  • Entonces approximadamente el exceso de muertos sería, contando abril y mayo,más de 13 mil

A que se debe el exceso?

Veamos Edad

  • “Niño-Adolsecente”: Menor a 18 años
  • “Jóven”: 19 a 30
  • “Adulto”:30 a 60
  • “Adulto Mayor”: mayor a 60

Como se puede apreciar la curva se dispara en dos grupos: adultos y adultos mayores.

Exceso de muertos por mes. La columna diferencia muestra las diferencias absolutas mayores a 100.

## Warning: NAs introduced by coercion
## Warning: Factor `REDAD` contains implicit NA, consider using
## `forcats::fct_explicit_na`
MES REDAD 2017 2018 2019 2020 dif20_19
1 Niño-Adolsecente 512 623 636 637
1 Adulto 1569 1835 1923 1984
1 Adulto Mayor 4980 5668 6477 6380
2 Niño-Adolsecente 531 535 620 632
2 Adulto 1511 1602 1812 1778
2 Adulto Mayor 4788 5179 6214 6209
3 Niño-Adolsecente 590 562 635 497 -138
3 Adulto 1626 1714 1971 1738 -233
3 Adulto Mayor 5767 5769 6604 6669
4 Niño-Adolsecente 552 596 552 413 -139
4 Adulto 1505 1763 1746 2694 948
4 Adulto Mayor 4981 5612 6025 8636 2611
5 Niño-Adolsecente 584 620 628 410 -218
5 Adulto 1664 1960 1799 5419 3620
5 Adulto Mayor 5174 6351 5933 16621 10688
  • La brecha entre 2019 y 2020 en el grupo mayor a 60 años, en abril y mayo es de 13299 (2020-2019), descontando los muertos por COVID (3100 approx) , la brecha es approx 10 mil fallecidos. Es decir representan casi el 70% del exceso de muertos total.

  • Dato curioso es que en la categoría niños-adolescentes la brecha es negativa.

Lugar de deceso

La información de SINADEF tienen también la ubicación de los decesos. Para estos gráficos he agrupado las categorías:

  • “DOMICILIO”,“EN TRANSITO”,“VIA PUBLICA”=“DOMICILIO”
  • “CENTRO LABORAL”,“IGNORADO”,“OTRO”,“SIN REGISTRO” = “OTRO”
  • EESS= EESS

Cómo se puede apreciar las muertes en EESS son mayores que las que ocurren en los domicilos/tránsito/Vía-Pública. Una hipótesis que tenía es que “los excesos de muertes” eran muchos por que la mayoría fallecía en sus domicilios. Sin embargo, las líneas parecieran descartar esa hipótesis pero veamos los datos agrupados por mes.

MES LUGAR 2019 2020 dif
1 DOMICILIO 4021 3726 -295
1 EESS 5321 5581 260
1 OTRO 259 295 36
2 DOMICILIO 3592 3630 38
2 EESS 5275 5173 -102
2 OTRO 325 310 -15
3 DOMICILIO 3940 4079 139
3 EESS 5546 5025 -521
3 OTRO 318 241 -77
4 DOMICILIO 3553 5217 1664
4 EESS 5033 6813 1780
4 OTRO 260 228 -32
5 DOMICILIO 3569 8695 5126
5 EESS 5069 14335 9266
5 OTRO 277 287 10

MINSA reporta que los fallecidos por COVID en domicilio son approx 665, si tomamos la brecha entre 2019 y 2020 contamos 6790. Entonces, “exceso de muertos” es de approx 6125. Es decir del total de “exceso de muertos” los que fallecen en domicilio representan casi el 47% del “exceso total”

En el caso las EESS MINSA reporta 3955 fallecidos, tomando la brecha entre 2019 y 2020 tenemos que son casi 11 mil. El “exceso de muertos” estaría en approx 7000 fallecidos lo que representa el 53% del “exceso total”.

Viendo los datos me parece que el “exceso de fallecidos” en domicilio es mucho mayor a lo que debería ser (si vemos las tendencias antes de la pandemia)

REGIONES

He hecho el ejercicio de graficar tres líneas para cada región: 2019, 2020 y “covid”. La línea covid es el número de fallecidos histórico-promedio de los últimos tres años-más los reportados por covid.

  • La línea roja representa el número de fallecidos reportados por “SINADEF” para el 2020 (semana 10 a 22)
  • La línea gris representa el número de fallecidos reportados por “SINADEF” para el 2019 (semana 10 a 22)
  • La línea negra representa el número de fallecidos por coronavirus reportados por MINSA más un promedio historico.

Sin mucha diferencia

En estas regiones las diferencias no son grandes y las tendencias no tienen una pendiente pronunciada. En estas regiones el “exceso de fallecidos” es 0 o cercano a 0.

Las que se recuperaron?

La tendencia de la data de SINADEF, que se puede ver también con la línea COVID es de una U invertida para estas regiones. PIURA empezaría a mostrar esa tendencia. No se debe cantar victoria todavía, estas son curvas descriptivas.

Las que están subiendo

Estas regiones estarían mostrando una tendencia preocupante hacia arriba. Lima sigue en esa trayectoria

Y Callao

Código

## tabla1
library(rio)
library(dplyr)
library(readxl)
library(tidyr)
library(lubridate)
library(ggplot2)

sinadef1=import("SINADEF_DATOS_ABIERTOS_01062020.xlsx", skip=2)
rminsa <- read_excel("COVID_19_PERU/reportes_minsa.xlsx", 
                             sheet = "Sheet3")%>%
  select(REGION,Fallecidos,Fecha)

sinadef1%>%dplyr::select(FECHA,AÑO,MES,
                                    LUGAR=`TIPO LUGAR`,
                                    VIOLENTA=`MUERTE VIOLENTA`,
                                    EDAD,
                                    DEPARTAMENTO=`DEPARTAMENTO DOMICILIO`,
                                    PROVINCIA=`PROVINCIA DOMICILIO`,
                                    DISTRITO=`DISTRITO DOMICILIO`)%>%
  filter(!DEPARTAMENTO%in%c("NO REGISTRADO","EXTRANJERO"))%>%
  dplyr::select(DEPARTAMENTO,AÑO,MES)%>%
  group_by(AÑO,MES)%>%
  summarise(fallecidos=n())%>%
  ungroup()%>%
  mutate(MES=as.numeric(MES))%>%
  spread(AÑO,fallecidos)%>%
  filter(MES<6)%>%
  kableExtra::kable("markdown")

## Gráfico por Edad

sinadef1%>%dplyr::select(FECHA,AÑO,MES,
                           LUGAR=`TIPO LUGAR`,
                           VIOLENTA=`MUERTE VIOLENTA`,
                           EDAD,
                           DEPARTAMENTO=`DEPARTAMENTO DOMICILIO`,
                           PROVINCIA=`PROVINCIA DOMICILIO`,
                           DISTRITO=`DISTRITO DOMICILIO`)%>%
  filter(!DEPARTAMENTO%in%c("NO REGISTRADO","EXTRANJERO"))%>%
  mutate(FECHA2=as.Date(FECHA),
         DIA=format(FECHA2, "%d-%m"),
         Week=epiweek(FECHA2))%>%
  mutate(EDAD2=as.numeric(EDAD),
         REDAD=ifelse(EDAD2<18,"Niño-Adolsecente",
                      ifelse(EDAD2>=19&EDAD2<30,"Joven",
                             ifelse(EDAD2>=30&EDAD2<60,"Adulto",
                                    ifelse(EDAD2>=60,"Adulto Mayor",NA)
                             ))),
         REDAD=factor(REDAD,levels=c("Niño-Adolsecente",
                                     "Joven",
                                     "Adulto",
                                     "Adulto Mayor")))%>%
  group_by(AÑO,Week,REDAD)%>%
  summarise(fallecidos=n())%>%
  ungroup()%>%na.omit()%>%
  filter(AÑO>2018&Week<23)%>%
  ggplot(aes(x=Week,y=fallecidos,group=AÑO))+
  geom_line(aes(color=AÑO))+
  facet_wrap(~REDAD)

#- Tabla 

sinadef1%>%dplyr::select(FECHA,AÑO,MES,
                         LUGAR=`TIPO LUGAR`,
                         VIOLENTA=`MUERTE VIOLENTA`,
                         EDAD,
                         DEPARTAMENTO=`DEPARTAMENTO DOMICILIO`,
                         PROVINCIA=`PROVINCIA DOMICILIO`,
                         DISTRITO=`DISTRITO DOMICILIO`)%>%
  filter(!DEPARTAMENTO%in%c("NO REGISTRADO","EXTRANJERO"))%>%
  mutate(EDAD2=as.numeric(EDAD),
         REDAD=ifelse(EDAD2<18,"Niño-Adolsecente",
                      ifelse(EDAD2>=20&EDAD2<30,"Jóven",
                             ifelse(EDAD2>=30&EDAD2<60,"Adulto",
                                    ifelse(EDAD2>60,"Adulto Mayor",NA)
                             ))),
         REDAD=factor(REDAD,levels=c("Niño-Adolsecente",
                                     "Joven",
                                     "Adulto",
                                     "Adulto Mayor")))%>%
  dplyr::select(AÑO,MES,REDAD)%>%
  group_by(AÑO,MES,REDAD)%>%
  summarise(fallecidos=n())%>%
  ungroup()%>%
  mutate(MES=as.numeric(MES))%>%
  spread(AÑO,fallecidos)%>%
  filter(MES<6)%>%
  na.omit()%>%
  mutate(dif20_19=`2020`-`2019`,
         dif20_19=ifelse(abs(dif20_19)<100," ",dif20_19))%>%
  kableExtra::kable("markdown")

### Graficos Regiones

data1=sinadef1%>%dplyr::select(FECHA,AÑO,MES,
                               LUGAR=`TIPO LUGAR`,
                               VIOLENTA=`MUERTE VIOLENTA`,
                               EDAD,
                               DEPARTAMENTO=`DEPARTAMENTO DOMICILIO`,
                               PROVINCIA=`PROVINCIA DOMICILIO`,
                               DISTRITO=`DISTRITO DOMICILIO`)%>%
  filter(!DEPARTAMENTO%in%c("NO REGISTRADO","EXTRANJERO"))%>%
  mutate(FECHA2=as.Date(FECHA),
         DIA=format(FECHA2, "%d-%m"))%>%
  mutate(Week=epiweek(FECHA2))%>%group_by(DEPARTAMENTO, AÑO,FECHA2,DIA,Week)%>%
  summarise(fallecidos=n())%>%
  ungroup()%>%
  group_by(DEPARTAMENTO,AÑO,Week)%>%
  summarise(suma_semanal=sum(fallecidos),
            media_movil_semanal=mean(fallecidos,na.rm=TRUE),
            sd_semanas=sd(fallecidos,na.rm = TRUE),
            lq=quantile(fallecidos,0.05,na.rm=TRUE),
            hq=quantile(fallecidos, 0.95,na.rm=TRUE))%>%
  select(AÑO,DEPARTAMENTO,Week,suma_semanal)%>%
  filter(Week<24)%>%
  spread(AÑO,suma_semanal)%>%
  select(DEPARTAMENTO,Week,
         a2017=`2017`,
         a2018=`2018`,
         a2019=`2019`,
         a2020=`2020`)%>%
  mutate_all(~replace_na(., 0))%>%
  rowwise()%>%
  mutate(promedio_sum=mean(c(a2017,a2018,a2019), na.rm = TRUE),
         max_sum=max(c(a2017,a2018,a2019), na.rm = TRUE),
         sd_sum=sd(c(a2017,a2018,a2019), na.rm = TRUE))

rminsa1=rminsa%>%na.omit()%>%
  mutate(Fecha2=as.Date(Fecha),
         Week=epiweek(Fecha2))%>%
  group_by(REGION)%>%
  mutate(lag_fallecidos=lag(Fallecidos,1,0),
         new=Fallecidos-lag_fallecidos)%>%
  ungroup()%>%
  group_by(REGION,Week)%>%
  summarise(suma_covid=sum(new))%>%
  ungroup()


data4=data1%>%
  left_join(rminsa1, by=c("DEPARTAMENTO"="REGION", "Week"))%>%
  mutate(suma_covid=replace_na(suma_covid,0))%>%
  mutate(covid_normal=round(suma_covid+promedio_sum,0))

data4%>%
  filter(DEPARTAMENTO%in%c("LIMA")&Week>10&Week<23)%>%
  ggplot(aes(x=Week))+
  geom_line(aes(y=covid_normal))+
  geom_line(aes(y=a2020),col="red")+
  geom_line(aes(y=a2019),col="grey")+
  facet_wrap(~DEPARTAMENTO)+
  theme_minimal() +
  theme(legend.position="bottom")+
  labs(y = "Número de fallecidos",
       x= "semana",color = " Casos", fill = " ", 
       #title = paste0("Numero de casos confirmados"),
       caption = paste0("Adapatación de FT por José Incio"))
Avatar
José Incio
Ph.D. Candidate Political Science

My research interests include subnational politics, democracy, representation and political methodology.

Related