En este trabajo intentaré hacer una breve descripción de la evolución y distribución de los casos de Covid 19 que se dieron en la provincia de Río Negro, tomando como fuente de información los partes de prensa diarios del Gobierno de Río Negro.
Los datos fueron recopilados en una hoja de excel, donde figura la fecha, la ciudad, cantidad de casos, altas y fallecimientos. En caso de fallecidos se registra también el sexo y la edad. No se trata de una base muy “tidy” ya que la ciudad figura si y solo si es que se registró alguna de estas situaciones en una cierta fecha y la cantidad de casos, altas, fallecimientos se encuentran en tres columnas distintas, como se puede ver en el siguiente extracto:
Plantilla excel con la data
Leo la base de datos convierto la fecha a formato Date y los nombres de las ciudades más “correctos”:
base <- read_excel("trabajo_integrador/CASOS RIO NEGRO 2021 JULIOTI.xlsx") %>% mutate(Fecha=as.Date(Fecha)) %>%
filter(CIUDAD!="VALLE AZUL") %>% #Valle Azul está por error en la base original
mutate(CIUDAD= case_when( CIUDAD=="ALLEN" ~"Allen",
CIUDAD=="BARDA DEL MEDIO" ~ "Barda del Medio",
CIUDAD=="BELISLE" ~ "Belisle" ,
CIUDAD=="BELTRÁN" ~ "Beltrán" ,
CIUDAD=="CATRIEL" ~ "Catriel" ,
CIUDAD=="CERVANTES" ~ "Cervantes",
CIUDAD=="CHIMPAY" ~ "Chimpay" ,
CIUDAD=="CHOELE CHOEL" ~ "Choele Choel" ,
CIUDAD=="CINCO SALTOS" ~ "Cinco Saltos",
CIUDAD=="CIPOLETTI" ~ "Cipolletti" ,
CIUDAD=="COMALLO" ~ "Comallo" ,
CIUDAD=="DINA HUAPI" ~ "Dina Huapi",
CIUDAD=="EL BOLSÓN" ~ "El Bolsón",
CIUDAD=="FERNANDEZ ORO" ~ "Fernández Oro" ,
CIUDAD=="GENERAL CONESA" ~ "Gral. Conesa",
CIUDAD=="GENERAL ROCA" ~ "Gral. Roca" ,
CIUDAD=="INGENIERO HUERGO" ~ "Ingeniero Huergo",
CIUDAD=="JACOBACCI" ~ "Jacobacci",
CIUDAD=="LAMARQUE" ~ "Lamarque" ,
CIUDAD=="LOS MENUCOS" ~ "Los Menucos" ,
CIUDAD=="MAINQUÉ" ~ "Mainqué" ,
CIUDAD=="POMONA" ~ "Pomona" ,
CIUDAD=="RIO COLORADO" ~ "Río Colorado" ,
CIUDAD=="BARILOCHE" ~ "S. C. de Bariloche",
CIUDAD=="VIEDMA" ~ "Viedma" ,
CIUDAD=="VILLA REGINA" ~ "Villa Regina",
CIUDAD=="CAMPO GRANDE" ~ "Campo Grande" ,
CIUDAD=="CHICHINALES" ~ "Chichinales",
CIUDAD=="GENERAL GODOY" ~ "Gral. Godoy",
CIUDAD=="GUARDIA MITRE" ~ "Guardia Mitre",
CIUDAD=="SAN ANTONIO OESTE" ~ "San Antonio Oeste",
CIUDAD=="SIERRA GRANDE" ~ "Sierra Grande",
CIUDAD=="LAS GRUTAS" ~ "Las Grutas",
CIUDAD=="VALCHETA" ~ "Valcheta",
CIUDAD=="MAQUINCHAO" ~ "Maquinchao",
CIUDAD=="ÑORQUINCO" ~ "Ñorquinco",
CIUDAD=="PILCANIYEU" ~ "Pilcaniyeu",
CIUDAD=="DARWIN" ~ "Darwin",
CIUDAD=="CORDERO" ~ "Cordero",
CIUDAD=="SIERRA COLORADA" ~ "Sierra Colorada",
CIUDAD=="RAMOS MEXIA" ~ "Ramos Mexía",
CIUDAD=="EL CUY" ~ "El Cuy",
TRUE ~"PROBLEMAS!"))
Para ordenarla un poco se me ocurre primero crear tres tablas: una con nuevos casos, otra con altas, y otra con fallecimientos, para luego hacer un join por fecha y ciudad:
base_casos= base %>% filter(CASO>0) %>% select(Fecha, CIUDAD, CASO)
base_altas= base %>% filter(RECUPERADO>0) %>% select(Fecha, CIUDAD, RECUPERADO)
base_muertes= base %>% filter(MUERTE>0)%>%
mutate(sexo_mujer=case_when(SEXO == "MUJER"~1,
SEXO == "HOMBRE"~0),
edad=as.numeric(EDAD)) %>%
select(Fecha, CIUDAD, MUERTE, edad, sexo_mujer)
#Ya que la data de muertes está individualizada por fallecimiento (siempre la cantidad de fallecimientos es 1, y se repite si hubo varios en la localidad en un día) construyo una tabla de muertes "totalizada" por ciudad y fecha:
base_muertes_t=base_muertes %>%
group_by(Fecha, CIUDAD) %>%
summarize(muertes=sum(MUERTE),
porc_mujeres=round(mean(sexo_mujer,na.rm=TRUE),2),
prom_edad=round(mean(edad, na.rm=TRUE),0)) %>% #no es lo óptimo, pero es para un primer acercamiento
ungroup()
base_total=base_casos %>% full_join(base_altas) %>% full_join(base_muertes_t)%>%
mutate(CASO=ifelse(is.na(CASO), 0, CASO),
RECUPERADO=ifelse(is.na(RECUPERADO), 0, RECUPERADO),
muertes=ifelse(is.na(muertes), 0, muertes)) %>%
rename(casos=CASO, altas=RECUPERADO) %>%
arrange(CIUDAD,Fecha) %>%
group_by(CIUDAD) %>%
mutate(acum_casos= cumsum(casos),
acum_altas= cumsum(altas),
acum_muertes= cumsum(muertes),
activos=acum_casos-acum_altas-acum_muertes)
…y con información de nuevos casos, altas, muertes acumulados y la cantidad de casos por día
head(base_total)
Hacer click en el íconos para obtener más información sobre la situación epidemiológica en cada ciudad.
RN=sf::read_sf("C:/DANIELA 2020/Mapas/Cartografia/Argentina/provincia.json") %>% filter(nam=="Río Negro")
base_mapa = base_total %>%
mutate( lat = case_when( CIUDAD == "Allen" ~ -38.72466,
CIUDAD== "Barda del Medio" ~ -38.72466,
CIUDAD == "Belisle" ~ -39.18583,
CIUDAD == "Beltrán" ~ -39.30888,
CIUDAD == "Catriel" ~ -37.88153,
CIUDAD == "Cervantes" ~ -39.05158,
CIUDAD == "Chimpay" ~ -39.16515,
CIUDAD == "Choele Choel" ~ -39.28845,
CIUDAD == "Cinco Saltos" ~ -38.82756,
CIUDAD == "Cipolletti" ~ -38.92456,
CIUDAD == "Comallo" ~ -41.02987,
CIUDAD == "Dina Huapi" ~ -41.06919,
CIUDAD == "El Bolsón" ~ -41.98049,
CIUDAD == "Fernández Oro" ~ -38.95436,
CIUDAD == "Gral. Conesa" ~ -40.10474,
CIUDAD == "Gral. Roca" ~ -39.02670,
CIUDAD == "Ingeniero Huergo" ~ -39.07118,
CIUDAD == "Jacobacci" ~ -41.32681,
CIUDAD == "Lamarque" ~ -39.42327,
CIUDAD == "Los Menucos" ~ -40.84519,
CIUDAD == "Mainqué" ~ -39.06376,
CIUDAD == "Pomona" ~ -39.48464,
CIUDAD == "Río Colorado" ~ -38.99141,
CIUDAD == "S. C. de Bariloche" ~ -41.13693,
CIUDAD == "Viedma" ~ -40.80932,
CIUDAD == "Villa Regina" ~ -39.09630,
CIUDAD == "Campo Grande" ~ -38.68333,
CIUDAD == "Chichinales" ~ -39.114908,
CIUDAD == "Gral. Godoy" ~ -39.079764,
CIUDAD == "Guardia Mitre" ~ -40.431351,
CIUDAD == "San Antonio Oeste" ~ -40.736712,
CIUDAD == "Sierra Grande" ~ -41.605198,
CIUDAD == "Las Grutas" ~ -40.810001,
CIUDAD == "Valcheta" ~ -40.679508,
CIUDAD == "Maquinchao" ~ -41.249440,
CIUDAD == "Ñorquinco" ~ -41.850925,
CIUDAD == "Pilcaniyeu" ~ -41.123129,
CIUDAD == "Darwin" ~ -39.203370,
CIUDAD == "Cordero" ~ -38.75387,
CIUDAD == "Sierra Colorada" ~ -40.553675,
CIUDAD == "Ramos Mexía" ~ -40.507580,
CIUDAD == "El Cuy" ~ -39.926769,
TRUE~0)) %>%
mutate( long=case_when ( CIUDAD=="Allen" ~ -67.82802,
CIUDAD== "Barda del Medio" ~ -68.15806,
CIUDAD== "Belisle" ~ -65.95632,
CIUDAD== "Beltrán" ~ -65.76487,
CIUDAD== "Catriel" ~ -67.79456,
CIUDAD== "Cervantes" ~ -67.39306,
CIUDAD== "Chimpay" ~ -66.14471,
CIUDAD== "Choele Choel" ~ -65.66328,
CIUDAD== "Cinco Saltos" ~ -68.06610,
CIUDAD== "Cipolletti" ~ -68.03538,
CIUDAD== "Comallo" ~ -70.26998,
CIUDAD== "Dina Huapi" ~ -71.16219,
CIUDAD== "El Bolsón" ~ -71.53362,
CIUDAD== "Fernández Oro" ~ -67.92511,
CIUDAD== "Gral. Conesa" ~ -64.45296,
CIUDAD== "Gral. Roca" ~ -67.57485,
CIUDAD== "Ingeniero Huergo" ~ -67.23289,
CIUDAD== "Jacobacci" ~ -69.54413,
CIUDAD== "Lamarque" ~ -65.70145,
CIUDAD== "Los Menucos" ~ -68.08320,
CIUDAD== "Mainqué" ~ -67.30428,
CIUDAD== "Pomona" ~ -65.61012,
CIUDAD== "Río Colorado" ~ -64.08747,
CIUDAD== "S. C. de Bariloche" ~ -71.29906,
CIUDAD== "Viedma" ~ -62.98532,
CIUDAD== "Villa Regina" ~ -67.08281,
CIUDAD== "Campo Grande" ~ -68.18333,
CIUDAD=="Chichinales" ~ -66.93987,
CIUDAD=="Sierra Grande" ~ -65.356685,
CIUDAD=="Gral. Godoy" ~ -67.157753,
CIUDAD=="Guardia Mitre" ~ -63.674491,
CIUDAD=="San Antonio Oeste" ~ -64.953343,
CIUDAD=="Las Grutas" ~ -65.094547,
CIUDAD=="Valcheta" ~ -66.163562,
CIUDAD=="Ñorquinco" ~ -70.902247,
CIUDAD=="Maquinchao" ~ -68.698700,
CIUDAD=="Pilcaniyeu" ~ -70.721454,
CIUDAD=="Sierra Colorada" ~ -67.750193,
CIUDAD=="Darwin" ~ -65.740914,
CIUDAD=="Cordero" ~ -68.100439,
CIUDAD=="Ramos Mexía" ~ -67.26030387,
CIUDAD=="El Cuy" ~ -68.345465,
TRUE~0)) %>%
group_by(CIUDAD) %>%
filter(Fecha==max(Fecha)) %>%
select(-(casos:prom_edad))
long_centro=mean(base_mapa$long)
lat_centro=mean(base_mapa$lat)
bbox <- make_bbox(base_mapa$long, base_mapa$lat)
mapa=leaflet() %>%
addTiles() %>%
fitBounds(bbox[["right"]], bbox[["bottom"]], bbox[["left"]],bbox[["top"]]) %>%
addAwesomeMarkers(data=base_mapa, lng= ~long, lat= ~lat,
popup = paste('<strong>',base_mapa$CIUDAD, '</strong>',"<br>",
"Total: ", base_mapa$acum_casos,"<br>",
"Activos: ", base_mapa$activos,"<br>",
"Altas: ", base_mapa$acum_altas,"<br>",
"Muertes: ", base_mapa$acum_muertes)) %>%
addPolygons(data=RN)
mapa
cantidad_ciudades=9
ciudades_filtrada = base_casos %>%
group_by(CIUDAD) %>%
summarize(CASO=sum(CASO)) %>%
arrange(-CASO) %>%
mutate(ranking=row_number()) %>%
filter(ranking<=cantidad_ciudades)
base_casos_filtrada=base_casos %>% filter(CIUDAD %in% ciudades_filtrada$CIUDAD)
Para hacer más claro el análisis trabajaremos solo con las 9 ciudades con mayor cantidad de casos en el periodo estudiado, que representan el 76% de los casos de la Provincia de Río Negro. Fuente para los datos poblacionales: [https://www.municipalidad-argentina.com.ar/provincia-rio-negro.html] La población de las localidades de Barda del Medio, Chichinales, Guardia Mitre, Las Grutas y Sierra Grande corresponden al Censo 2010. Fuente:https://www.citypopulation.de/php/argentina-rionegro_s.php
base_casos_filtrada= base_casos_filtrada %>%
mutate(poblacion= case_when (
CIUDAD== "Allen" ~ 30000,
CIUDAD== "Barda del Medio" ~ 1651,
CIUDAD== "Belisle" ~ 2000,
CIUDAD== "Beltrán" ~ 10000,
CIUDAD== "Catriel" ~ 20000,
CIUDAD== "Cervantes" ~ 10000,
CIUDAD== "Chimpay" ~ 5000,
CIUDAD== "Choele Choel" ~ 15000,
CIUDAD== "Cinco Saltos" ~ 30000,
CIUDAD== "Cipolletti" ~ 100000,
CIUDAD== "Comallo" ~ 1500,
CIUDAD== "Dina Huapi" ~ 10000,
CIUDAD== "El Bolsón" ~ 20000,
CIUDAD== "Fernández Oro" ~ 10000,
CIUDAD== "Gral. Conesa" ~ 10000,
CIUDAD== "Gral. Roca" ~ 100000,
CIUDAD== "Ingeniero Huergo" ~ 10000,
CIUDAD== "Jacobacci" ~ 10000,
CIUDAD== "Lamarque" ~ 10000,
CIUDAD== "Los Menucos" ~ 10000,
CIUDAD== "Mainqué" ~ 3000,
CIUDAD== "Pomona" ~ 1500,
CIUDAD== "Río Colorado" ~ 15000,
CIUDAD== "S. C. de Bariloche" ~ 150000,
CIUDAD== "Viedma" ~ 75000,
CIUDAD== "Villa Regina" ~ 40000,
CIUDAD== "Campo Grande" ~ 10000,
CIUDAD== "Chichinales" ~ 3057,
CIUDAD== "Sierra Grande" ~ 7404,
CIUDAD== "Gral. Godoy" ~ 4000,
CIUDAD== "Guardia Mitre" ~ 856,
CIUDAD== "San Antonio Oeste" ~ 30000,
CIUDAD== "Las Grutas" ~ 4807,
CIUDAD== "Valcheta" ~ 4000,
CIUDAD== "Ñorquinco" ~ 1000,
CIUDAD== "Maquinchao" ~ 2500,
CIUDAD== "Pilcaniyeu" ~ 1000,
CIUDAD== "Sierra Colorada" ~ 2000,
CIUDAD== "Darwin" ~ 1500,
CIUDAD== "Cordero" ~ 4000,
CIUDAD== "Ramos Mexía" ~ 1000,
CIUDAD== "El Cuy" ~ 500,
TRUE~0))
g=ggplot(base_casos_filtrada, aes(x=Fecha, y=CASO))+
geom_point(color="blue", alpha=0.5)+
geom_line(color="gray", alpha=0.8)+
geom_smooth(color="black")+
facet_wrap(vars(CIUDAD))+
labs(title = "Casos diarios de Covid 19 reportados",
subtitle = paste(cantidad_ciudades, " ciudades con mayor cantidad de casos totales"),
x=NULL,
y= "Cantidad de casos diarios",
caption="Fuente: Gobierno de Río Negro")+
theme_minimal()
g
Las ciudades de Bariloche, Cipolletti, General Roca y Viedma presentan un mayor volumen de casos pero son también las únicas ciudades con más de 70.000 habitantes. Con el fin de poder hacer una mejor comparación sobre la evolución de los casos de Covid 19 en las 9 ciudades con mayor cantidad de casos de la provincia de Río Negro, estudiaremos la cantidad de casos por cada 10.000 habitantes.
g=ggplot(base_casos_filtrada , aes(x=Fecha, y=CASO/poblacion*10000, color=CIUDAD))+
geom_smooth()+
labs(title = "Casos diarios de Covid 19 reportados",
subtitle = paste(cantidad_ciudades, " ciudades con mayor cantidad de casos totales"),
x=NULL,
y= "Casos/10.000 habitantes",
caption="Fuente: Gobierno de Río Negro")+
theme_minimal()
g
La ciudad de El Bolsón es la que presenta una mayor cantidad de casos diarios por cada 10.000 superando, desde finales del 2020, a la ciudad de Bariloche. Muestra también un comportamiento diferenciado, con dos picos muy claros. En Bariloche la evolución de los casos fue también diferencia, con una gran oleada de casos, que recién ahora parece que está comenzando a disminuir. El resto de las ciudades, que se encuentran localizada en el Alto Valle y la Zona Atlántica se comportan de manera similar, en cuanto a la aparición de casos de Covid 19.
Debido a que la ciudad de Bariloche es la que tuvo la mayor cantidad de casos de Covid 19 registrados desde el inicio de la pandemia mostraremos la cantidad de casos acumulados, activos, muertes y altas, desde la fecha del primer caso.
Para desactivar una categoría hacer “click” sobre ella
base_bari=base_total %>% filter(CIUDAD=="S. C. de Bariloche")
fig <- plot_ly(base_bari, x = ~Fecha, y = ~acum_casos, name = 'Totales', type = 'scatter', mode = 'lines+markers',color = I('blue')) %>%
add_trace(y = ~acum_altas, name = 'Altas', mode = 'lines+markers', color = I('darkgreen')) %>%
add_trace(y = ~activos, name = 'Activos', mode = 'lines+markers' ,color = I('orange'))%>%
add_trace(y = ~acum_muertes, name = 'Muertes', mode = 'lines+markers',color = I('black')) %>%
config(locale = 'es-ar') %>% # cambia el idioma de la fecha a español
layout(title = "",
yaxis=list(title="", fixedrange=TRUE),
xaxis=list(title=""),
legend=list(x=0.1, y=0.9))
fig
En los primeros meses de la pandemia la cantidad de casos activos se mantuvo bajo, pero desde principio de agosto, justamente luego de 15 días de la primera temporada de turismo invernal, comenzó un crecimiento sostenido,con una gran cantidad de casos activos, lo que tuvo como consecuencia un colapso en el sistema sanitario. A mediados de enero, luego del pico correspondiente a las fiestas de fin de año, comienza a decrecer, pero la segunda ola genera un gran pico de casos, que comenzó con un un piso de 600 casos activos. A partir de mayo, con el la vuelta a clases no presenciales y mayores restricciones, los casos activos comienzan a decrecer, aunque todavía no es posible bajar de los 600 casos activos. La curva de la cantidad de fallecidos es creciente y por tramos es exponecial, coincidiendo (con un desfase de aprox. 10 días) con la cantidad de casos.