EJERCICIO

Utilizando la información brindada por la Secretaria de Salud Federal sobre los casos de COVID-19 detectados en la República Mexicana, y considerando solamente los casos positivos, obtener lo siguiente:

Para realizar los siguientes ejercicios, primero cargamos la base de datos (correspondiente al 15 de diciembre de 2021)

base_covid<-read.csv("/Users/karlajazminlopezpasion/Downloads/211215COVID19MEXICO.csv")

1. Guanajuato

Eligiendo un estado de la república de residencia del paciente que tenga más de 20 municipios, obtener lo solicitado.

Para cumplir con lo anterior eligí Guanajuato, entonces, como nos interesa la residencia del paciente trabajaremos con la variable ENTIDAD_RES debido a que identifica la entidad de residencia del paciente. Asimismo, como elegimos el estado de Gauanajuato, trabajaré con la CLAVE_ENTIDAD 11, que es la clave que identifica a dicho estado.

covid_positiv<-filter(base_covid, CLASIFICACION_FINAL %in% c(1,2,3))
dim(covid_positiv)
## [1] 3924638      40

Como podemos verificar, es el número de casos covid confirmados positivos en el país a nivel nacional.

Fuente: Secretaría de Salud, CONACyT

Ahora bien, filtramos la información unicamente para el estado de Guanajuato

covid_guanajuato<-filter(covid_positiv, ENTIDAD_RES==11)
dim(covid_guanajuato)
## [1] 199804     40

Como podemos verificar, es el número de casos covid confirmados positivos en el estado:

Asimismo, para trabajar los siguientes ejercicios, debemos de emparejar MUNICIPIO_RES con la base de datos

entidades_catalogo<-read_excel("/Users/karlajazminlopezpasion/Downloads/201128 Catalogos.xlsx",sheet = "Catálogo de ENTIDADES")
municipios_catalogo<-read_excel("/Users/karlajazminlopezpasion/Downloads/201128 Catalogos.xlsx",sheet = "Catálogo MUNICIPIOS")
sexo_catalogo<-read_excel("/Users/karlajazminlopezpasion/Downloads/201128 Catalogos.xlsx",sheet = "Catálogo SEXO")
municipios_guanajuato<-filter(municipios_catalogo, CLAVE_ENTIDAD==11)
covid_municipios_guanajuato<-merge(covid_guanajuato,municipios_guanajuato,by.x="MUNICIPIO_RES",by.y="CLAVE_MUNICIPIO", sort = FALSE)

1.1

% de defunciones por municipio (total de defunciones / total de casos positivos)

Primero obtendré los casos positivos por municipio:

positivos_g<-aggregate(casos ~ MUNICIPIO, covid_municipios_guanajuato, sum)
# Para poder trabajar correctamente, quitaré los datos donde no se especifica el municipio al que pertenece los casos positivos
positivos_guanajuato<-positivos_g[-21,]

Y ahora las defunciones. Primero, vemos que las personas que no murieron, tienen de fecha de defunción “9999-99-99”, entonces obtenemos las personas que no murieron:

no_defunciones_guanajuato<-which(covid_municipios_guanajuato$FECHA_DEF=="9999-99-99")

De esta manera, ya podemos obtener el número de defunciones por municipio de la siguiente manera:

defunciones_guanajuato<-aggregate(casos ~ MUNICIPIO, covid_municipios_guanajuato[-no_defunciones_guanajuato,],sum)
sum(defunciones_guanajuato$casos)
## [1] 13229

Podemos comprobar que este número de defunciones, coincide con lo reportado por la Secretaría de Salud:

Ahora saco el porcentaje de defunciones por municipio y lo expongo en una tabla bonita:

defunciones_porcentaje<-((defunciones_guanajuato$casos/positivos_guanajuato$casos)*100)
defunciones_porcentaje_df<-data.frame(defunciones_guanajuato, positivos_guanajuato$casos, defunciones_porcentaje)
colnames(defunciones_porcentaje_df)<-c("Municipio","Defunciones", "Casos Positivos", "% de defunciones")
datatable(defunciones_porcentaje_df,class="hover")

Como se muestra en la tabla anterior, es importante conocer los porcentajes de defunciones por municipio porque nos pueden expresar de mejor manera la cantidad de personas que murieron por municipio, debido a que si consideramos solamente las defunciones por municipio, no estaríamos comparando esta variable de manera correcta

1.2

% de casos positivos con al menos una comorbilidad a nivel municipal.

covid_c <- covid_municipios_guanajuato %>% 
  mutate(
    comorbilidades = case_when(
      DIABETES==1 | EPOC==1 | ASMA==1 | INMUSUPR==1 | HIPERTENSION==1 |
        OTRA_COM==1 | CARDIOVASCULAR==1 | OBESIDAD==1 | RENAL_CRONICA==1 | TABAQUISMO==1 ~ 1,
      TRUE ~ 0
    )
  )
comorbilidades_uno <- which(covid_c$comorbilidades == 1)
comorbilidad <- aggregate(casos ~  MUNICIPIO,covid_c[comorbilidades_uno,],sum)

comorbilidades_df <- data.frame(municipio = comorbilidad$MUNICIPIO,
  comorbilidadc = round(comorbilidad$casos /  positivos_g[,2] * 100,2))
colnames(comorbilidades_df)<-c("Municipio","% positivos con al menos una comorbilidad")
datatable(comorbilidades_df,class="hover")

1.3

Total de casos positivos acumulados por día a nivel estatal.

casos_diarios_guanajuato<-aggregate(casos~FECHA_INGRESO,data=covid_municipios_guanajuato, sum)
acumulados_diarios<-cumsum(casos_diarios_guanajuato$casos)
acumulados_diarios_df<-data.frame(casos_diarios_guanajuato$FECHA_INGRESO, acumulados_diarios)
colnames(acumulados_diarios_df)<-c("Fecha de ingreso", "Casos positivos acumulados")
datatable(acumulados_diarios_df,class="hover")

Como podemos observar, el primer caso que requirió hospitalización en el estado de Guanajuato ocurrió el 1 de marzo del 2020. Asimismo, el último día registrado en la base de datos utilizada fue el 14 de diciembre de 2021, donde se registran 199804 casos positivos acumulados, lo cual coincide con lo reportado por la Secretaría de Salud.

1.4

Total acumulado de defunciones por día a nivel estatal.

defunciones_diarias_guanajuato1<-aggregate(casos~FECHA_DEF,data=covid_municipios_guanajuato, sum)
defunciones_diarias_guanajuato<-defunciones_diarias_guanajuato1[-588,] #Quitamos los casos de las personas que no fallecieron
defunciones_acumuladas<-cumsum(defunciones_diarias_guanajuato$casos)
defunciones_acumuladas_df<-data.frame(defunciones_diarias_guanajuato$FECHA_DEF, defunciones_acumuladas)
colnames(defunciones_acumuladas_df)<-c("Fecha de defunción", "Defunciones acumuladas")
datatable(defunciones_acumuladas_df,class="hover")

Como podemos observar, las primeras defunciones por COVID-19 en el estado de Guanajuato ocurrieron el 5 de abril del 2020. Asimismo, el último día registrado en la base de datos utilizada es el 14 de diciembre de 2021, donde se registran 13229 defunciones acumuladas, lo cual coincide con lo reportado por la Secretaría de Salud.

1.5

% de mujeres, a nivel municipal, que representan un caso positivo (Número de mujeres positivas en el municipio / Número de casos positivos en ese municipio).

Como recordamos, al principio cargamos el Catálogo Sexo, donde se especifica que la CLAVE 1 representa a las mujeres. Podemos hacer una visualización de cuántas mujeres positivas hay en el estado

sexo_g<-aggregate(casos~SEXO,data=covid_municipios_guanajuato,sum)
mujeres_positivas<-which(covid_municipios_guanajuato$SEXO==1)
mujeres_positivas_guanajuato<-aggregate(casos~MUNICIPIO, covid_municipios_guanajuato[mujeres_positivas,], sum)
mujeres_porcentaje<-((mujeres_positivas_guanajuato$casos/positivos_guanajuato$casos)*100)
mujeres_porcentaje_df<-data.frame(mujeres_positivas_guanajuato, positivos_guanajuato$casos, mujeres_porcentaje)
colnames(mujeres_porcentaje_df)<-c("Municipio","Mujeres positivas", "Casos Positivos", "% de mujeres positivas")
datatable(mujeres_porcentaje_df,class="hover")

Estos datos también concuerdan con lo reportado por la Secretaría de Salud.Como podemos observar en la tabla anterior, en casi todos los municipios del estado de Gauanajuato (43 de 46 municipios) las mujeres representan más del 50% del total de los casos positivos, excepto Irapuato (49.90%), Ocampo (47.28%) y San José Iturbide (49.05%) donde los porcentajes son muy cercanos al 50%.

2. Gráfica 1. Defunciones

Gráfico de barras de los 10 municipios con mayor % de defunciones

Como ya teníamos el porcentaje de defunciones por municipio, ahora solamente obtenemos los 10 minucipios con mayor porcentaje.

defunciones_porcentaje_orden_guanajuato<-defunciones_porcentaje_df[with(defunciones_porcentaje_df, order(-defunciones_porcentaje)), ][1:10,]
defunciones_porcentaje_diez<-defunciones_porcentaje_orden_guanajuato[,c(-2,-3)]
defunciones_diez<-data.frame(defunciones_porcentaje_diez,row.names = c(1:10))

De esta manera, se realiza la gráfica:

defunciones_texto <- paste( "Municipio: ",defunciones_diez$Municipio,"\n","% Defunciones: ", defunciones_diez$X..de.defunciones,"%")

grafica_defunciones_1<-ggplot(defunciones_diez)+
  aes(x=Municipio, y=X..de.defunciones, text=defunciones_texto)+
  geom_bar(stat = "identity", fill="pink", col="black",width = .7, lwd=0.5)+
  labs(x="Municipio", y="% de defunciones", title="Gráfica 1. Los 10 municipios con más porcentaje de defunciones en Guanajuato por COVID-19")+
   theme_classic(base_size = 4)

ggplotly(grafica_defunciones_1, tooltip = c("defunciones_texto"))

En la Gráfica 1 se muestran los 10 municipios con más porcentaje de defunciones en Guanajuato por COVID-19. Es importante conocer los porcentajes de defunciones por municipio porque nos pueden expresar de mejor manera la cantidad de personas que murieron por municipio, debido a que si consideramos solamente las defunciones por municipio, no estaríamos comparando esta variable de manera correcta. Al considerar el porcentaje podríamos realizar hipotesis acerca de los motivos por los cuales un gran porcentaje de la población que se contagió de la enferdad murió.

3. Gráfica 2. Los 10 municipios con un mayor número casos positivos

Gráfico de barras de los 10 municipios con mayor número de casos positivos detectados, divido por hombres y por mujeres.

% de mujeres, a nivel municipal, que representan un caso positivo (Número de mujeres positivas en el municipio / Número de casos positivos en ese municipio).

positivos_guanajuato_orden<-positivos_guanajuato[with(positivos_guanajuato,order(-casos)),][1:10,]
positivos_mun_sexo<-aggregate(casos ~ MUNICIPIO+SEXO, covid_municipios_guanajuato, sum)
filtro_sexo<-filter(positivos_mun_sexo, MUNICIPIO %in% positivos_guanajuato_orden$MUNICIPIO)
filtro_sexo$Sexo<-"a"
for (s in 1:20) {
  if (filtro_sexo[s,2]==1){filtro_sexo[s,4]<-"Mujer"}
  else {filtro_sexo[s,4]<-"Hombre"}
}
filtro_sexo_texto <- paste( "Municipio: ", filtro_sexo$MUNICIPIO,"\n","Total de  casos positivos: ", filtro_sexo$casos)

grafica_sexo_1<-ggplot(filtro_sexo)+
  aes(x=MUNICIPIO, y=casos, text=filtro_sexo_texto, fill=Sexo)+
  geom_bar(stat = "identity", col="black",width = .7, lwd=0.5, position = "dodge")+
  labs(x="Municipio", y="Casos positivos", title="Gráfica 2. Los 10 municipios con mayor número de casos positivos por sexo")+
   theme_classic(base_size = 4)

ggplotly(grafica_sexo_1, tooltip = c("filtro_sexo_texto"))

4. Gráfica 4. Defunciones acumuladas

Gráfico de líneas que representa el número acumulado de defunciones a nivel estatal por día.

don <- xts(x=serie_tiempo,order.by=serie_tiempo$FECHA_INGRESO)
dygraph(don) %>%
  dyOptions(labelsUTC = TRUE, fillGraph=TRUE, fillAlpha=0.1, drawGrid = FALSE, colors="orange") %>%
  dyRangeSelector() %>%
  dyCrosshair(direction = "vertical") %>%
  dyHighlight(highlightCircleSize = 5, highlightSeriesBackgroundAlpha = 0.2, hideOnMouseOut = FALSE)  %>%
  dyRoller(rollPeriod = 1)

La gráfica anterior fue reproducida a partir del ejercicio COVID_ejem_Jalisco del Dr. Héctor de la Torre. Podemos observar que hubo un decremento en el periodo de marzo a julio de 2021, probablemente por las jornadas de vacunación.

5. Mapa del % de defunciones

Con ayuda de Qgis obtenemos la capa de la entidad federativa con la cual trabajaremos, en esta ocasión de Guanajuato:

covid_mun_gua<-covid_municipios_guanajuato
covid_mun_gua$MUNICIPIO_RES<-str_pad(covid_mun_gua$MUNICIPIO_RES,3,side="left",pad="0")
covid_mun_gua$casos<-rep(1,nrow(covid_mun_gua))
positivos_covid_mun_gua<-aggregate(casos ~ MUNICIPIO+MUNICIPIO_RES, covid_mun_gua, sum)
positivos_final<-positivos_covid_mun_gua[-47,]
no_defun<-which(covid_mun_gua$FECHA_DEF=="9999-99-99")
defunciones_final<-aggregate(casos ~ MUNICIPIO+MUNICIPIO_RES, covid_mun_gua[-no_defun,],sum)
defunciones_porcentaje_final<-((defunciones_final$casos/positivos_final$casos)*100)
defunciones_df_final<-data.frame(defunciones_final, positivos_final$casos, defunciones_porcentaje_final)
defunciones_df_final
##                                            MUNICIPIO MUNICIPIO_RES casos
## 1                                            ABASOLO           001   112
## 2                                           ACÁMBARO           002   241
## 3                              SAN MIGUEL DE ALLENDE           003   302
## 4                                     APASEO EL ALTO           004   133
## 5                                   APASEO EL GRANDE           005   188
## 6                                            ATARJEA           006     2
## 7                                             CELAYA           007  1171
## 8                                     MANUEL DOBLADO           008    83
## 9                                          COMONFORT           009   134
## 10                                           CORONEO           010    11
## 11                                          CORTAZAR           011   255
## 12                                         CUERÁMARO           012    45
## 13                                       DOCTOR MORA           013    31
## 14 DOLORES HIDALGO CUNA DE LA INDEPENDENCIA NACIONAL           014   277
## 15                                        GUANAJUATO           015   457
## 16                                         HUANÍMARO           016    37
## 17                                          IRAPUATO           017  1367
## 18                                JARAL DEL PROGRESO           018    65
## 19                                         JERÉCUARO           019    52
## 20                                              LEÓN           020  4625
## 21                                          MOROLEÓN           021    59
## 22                                            OCAMPO           022    22
## 23                                           PÉNJAMO           023   242
## 24                                      PUEBLO NUEVO           024    22
## 25                               PURÍSIMA DEL RINCÓN           025   162
## 26                                            ROMITA           026    94
## 27                                         SALAMANCA           027   657
## 28                                       SALVATIERRA           028   184
## 29                             SAN DIEGO DE LA UNIÓN           029    47
## 30                                        SAN FELIPE           030   142
## 31                          SAN FRANCISCO DEL RINCÓN           031   336
## 32                                 SAN JOSÉ ITURBIDE           032   167
## 33                                SAN LUIS DE LA PAZ           033   273
## 34                                    SANTA CATARINA           034     3
## 35                     SANTA CRUZ DE JUVENTINO ROSAS           035   171
## 36                                SANTIAGO MARAVATÍO           036    13
## 37                              SILAO DE LA VICTORIA           037   442
## 38                                       TARANDACUAO           038    16
## 39                                          TARIMORO           039    59
## 40                                     TIERRA BLANCA           040    21
## 41                                         URIANGATO           041    77
## 42                                 VALLE DE SANTIAGO           042   203
## 43                                          VICTORIA           043    31
## 44                                         VILLAGRÁN           044   127
## 45                                             XICHÚ           045    13
## 46                                           YURIRIA           046    58
##    positivos_final.casos defunciones_porcentaje_final
## 1                    943                    11.876988
## 2                   4392                     5.487250
## 3                   4667                     6.470966
## 4                   2147                     6.194690
## 5                   2808                     6.695157
## 6                    112                     1.785714
## 7                  19142                     6.117438
## 8                   1262                     6.576862
## 9                   2032                     6.594488
## 10                   766                     1.436031
## 11                  2613                     9.758898
## 12                   998                     4.509018
## 13                   560                     5.535714
## 14                  3942                     7.026890
## 15                  7612                     6.003678
## 16                   413                     8.958838
## 17                 19584                     6.980188
## 18                  1710                     3.801170
## 19                  1644                     3.163017
## 20                 65599                     7.050412
## 21                  2129                     2.771254
## 22                   793                     2.774275
## 23                  3122                     7.751441
## 24                   322                     6.832298
## 25                  1611                    10.055866
## 26                  1564                     6.010230
## 27                  9070                     7.243660
## 28                  4235                     4.344746
## 29                  1450                     3.241379
## 30                  3014                     4.711347
## 31                  3471                     9.680207
## 32                  2222                     7.515752
## 33                  3628                     7.524807
## 34                    87                     3.448276
## 35                  2379                     7.187894
## 36                   521                     2.495202
## 37                  4473                     9.881511
## 38                   553                     2.893309
## 39                  1079                     5.468026
## 40                   454                     4.625551
## 41                  2417                     3.185767
## 42                  4261                     4.764140
## 43                   469                     6.609808
## 44                  1620                     7.839506
## 45                   263                     4.942966
## 46                  1649                     3.517283
mapa_guanajuato<-readOGR("/Users/karlajazminlopezpasion/Downloads", layer="shp_guanajuato")
## OGR data source with driver: ESRI Shapefile 
## Source: "/Users/karlajazminlopezpasion/Downloads", layer: "shp_guanajuato"
## with 46 features
## It has 4 fields
mapa_guanajuato_covid<-merge(x=mapa_guanajuato@data,y=defunciones_df_final,by.x="CVE_MUN",by.y="MUNICIPIO_RES", sort=FALSE)
mapa_guanajuato@data$porcentaje_defunciones<-mapa_guanajuato_covid$defunciones_porcentaje_final
mapa_guanajuato@data$total_defunciones<-mapa_guanajuato_covid$casos
cut_covid_guanajuato<-cut(mapa_guanajuato@data$porcentaje_defunciones,4)
levels_porcentaje_defunciones<-levels(cut(mapa_guanajuato@data$porcentaje_defunciones,4))