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")
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)
% 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
% 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")
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.
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.
% 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%.
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ó.
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"))
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.
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))