rm(list = ls())
denguelink1='https://github.com/SocialAnalytics-StrategicIntelligence/TableOperations/raw/main/dataFiles/ByYear_LongStats.pkl'
library(reticulate)
use_python("C:/Users/tra19/anaconda3")
pd<-import("pandas")
dengueLongStats<-pd$read_pickle(denguelink1)
str(dengueLongStats)
## 'data.frame': 177 obs. of 4 variables:
## $ ano : num 2000 2000 2000 2001 2001 ...
## $ enfermedad: Ord.factor w/ 3 levels "SIN_SEÑALES"<..: 1 1 1 1 1 1 3 3 3 1 ...
## $ statsName : chr "edad_mean" "edad_median" "case_sum" "edad_mean" ...
## $ statsValue: num 29.5 27 4324 30.6 28 ...
## - attr(*, "pandas.index")=RangeIndex(start=0, stop=177, step=1)
#Subset
datacase <- subset(dengueLongStats, statsName == "edad_mean" & ano >= 2010)
#Graphic
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datacase$enfermedad <- factor(datacase$enfermedad,
levels = c("SIN_SEÑALES", "ALARMA", "GRAVE"),
labels = c("Sin señales", "Alarma", "Grave"))
facets <- ggplot(data = datacase,
aes(x = ano, y = statsValue, color = enfermedad)) +
theme_light() +
scale_y_log10(labels = scales::comma) +
geom_smooth(fill = NA) +
scale_color_manual(values = c("palegreen2", "gold1", "firebrick1"),
labels = c("Sin señales", "Alarma", "Grave", "Other1", "Other2")) + # Cambiar nombres en la leyenda
scale_x_continuous(breaks = seq(2010, max(datacase$ano), by = 3), labels = as.integer) +
labs(x = "Año", y = "Edad promedio", color = "Enfermedad") +
guides(color = guide_legend(title = "Enfermedad")) +
theme(legend.title = element_text(hjust = 0)) +
ggtitle("Edad promedio de reportados por dengue (2010-2022)") +
theme(plot.title = element_text(hjust = 0.5)) # Alinear el título general al centro
facets
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Dado que la recopilación de datos era limitada antes de 2010, se ha decidido evaluar la edad media de los contagiados según su gravedad a partir de ese año.
En cuanto a la pregunta planteada, ciertamente se observan fluctuaciones significativas. En particular, se puede notar que en los años anteriores a 2016, la edad promedio de los contagiados graves fue menor de 35 años, llegando incluso hasta los 27. Sin embargo, después de 2016, ha sido más frecuente encontrar contagiados entre los 30 y 36 años. Es decir, se cuenta con una edad promedio más alta.
No obstante, la situación es ligeramente diferente en el caso de los contagiados en alarma y sin señales. Las edades promedio por año antes de 2016 muestran un rango similar a las edades promedio de los contagiados posterior a dicho año. Este mismo patrón se repite con los infectados sin señales.
#Subset
datacase2 <- subset(dengueLongStats, statsName == "case_sum" & ano >= 2010)
#Graphic
library(ggplot2)
factor(datacase2$enfermedad,
levels = c("SIN_SEÑALES", "ALARMA", "GRAVE"),
labels = c("Sin señales", "Alarma", "Grave"))
## [1] Sin señales Alarma Grave Sin señales Alarma Grave
## [7] Sin señales Alarma Grave Sin señales Alarma Grave
## [13] Sin señales Alarma Grave Sin señales Alarma Grave
## [19] Sin señales Alarma Grave Sin señales Alarma Grave
## [25] Sin señales Alarma Grave Sin señales Alarma Grave
## [31] Sin señales Alarma Grave Sin señales Alarma Grave
## [37] Sin señales Alarma Grave
## Levels: Sin señales < Alarma < Grave
facets <- ggplot(data = datacase2,
aes(x = ano, y = statsValue, color = enfermedad)) +
theme_light() +
scale_y_log10(labels = scales::comma) +
geom_smooth(fill = NA) +
scale_color_manual(values = c("palegreen2", "gold1", "firebrick1"),
labels = c("Sin señales", "Alarma", "Grave", "Other1", "Other2")) + # Cambiar nombres en la leyenda
scale_x_continuous(breaks = seq(2010, max(datacase2$ano), by = 3), labels = as.integer) +
labs(x = "Año", y = "Cantidad de infectados", color = "Enfermedad") +
guides(color = guide_legend(title = "Enfermedad")) +
theme(legend.title = element_text(hjust = 0)) +
ggtitle("Número de casos reportados por dengue (2010-2022)") +
theme(plot.title = element_text(hjust = 0.5)) # Alinear el título general al centro
facets
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Sí, la cantidad de infectados ha variado a lo largo de los años y ha fluctuado según la gravedad del caso. El gráfico muestra un aumento en los casos de infectados sin señales y en alarma en un primer momento, después del año 2010, y en un segundo momento, después del año 2018. Es importante mencionar una ligera disminución de los casos en ambos grupos después de 2016.
Sin embargo, en lo que respecta a los infectados graves, el incremento ha sido relativamente constante, aunque no en la misma proporción que en los grupos de sin señales y en alarma. De hecho, se mantiene muy por debajo de esos grupos.
denguelink2='https://github.com/SocialAnalytics-StrategicIntelligence/TableOperations/raw/main/dataFiles/worst_ProvYear_alarma_Frequency.csv'
dengueProvWorst <- read.csv(denguelink2)
str(dengueProvWorst)
## 'data.frame': 43 obs. of 3 variables:
## $ departamento: chr "AMAZONAS" "AMAZONAS" "ANCASH" "ANCASH" ...
## $ provincia : chr "BAGUA" "UTCUBAMBA" "CASMA" "SANTA" ...
## $ case : int 6 6 5 3 1 7 1 1 10 2 ...
dengueProvWorst[dengueProvWorst$departamento=='LORETO',]
## departamento provincia case
## 28 LORETO ALTO AMAZONAS 1
## 29 LORETO MAYNAS 13
dengueProvWorst[order(-dengueProvWorst$case),]
## departamento provincia case
## 29 LORETO MAYNAS 13
## 30 MADRE DE DIOS TAMBOPATA 13
## 41 TUMBES TUMBES 12
## 43 UCAYALI CORONEL PORTILLO 12
## 31 PASCO OXAPAMPA 11
## 9 CAJAMARCA JAEN 10
## 13 HUANUCO LEONCIO PRADO 10
## 33 PIURA PIURA 10
## 11 CUSCO LA CONVENCION 9
## 19 JUNIN CHANCHAMAYO 9
## 27 LIMA LIMA 9
## 39 SAN MARTIN SAN MARTIN 8
## 6 AYACUCHO LA MAR 7
## 1 AMAZONAS BAGUA 6
## 2 AMAZONAS UTCUBAMBA 6
## 23 LA LIBERTAD TRUJILLO 6
## 3 ANCASH CASMA 5
## 20 JUNIN SATIPO 4
## 24 LAMBAYEQUE CHICLAYO 4
## 4 ANCASH SANTA 3
## 16 ICA ICA 3
## 26 LAMBAYEQUE LAMBAYEQUE 3
## 10 CALLAO CALLAO 2
## 14 HUANUCO PUERTO INCA 2
## 18 ICA PALPA 2
## 21 LA LIBERTAD ASCOPE 2
## 22 LA LIBERTAD CHEPEN 2
## 25 LAMBAYEQUE FERREÑAFE 2
## 36 PUNO CARABAYA 2
## 38 SAN MARTIN MARISCAL CACERES 2
## 40 SAN MARTIN TOCACHE 2
## 5 AREQUIPA AREQUIPA 1
## 7 AYACUCHO SUCRE 1
## 8 CAJAMARCA CAJAMARCA 1
## 12 CUSCO QUISPICANCHI 1
## 15 ICA CHINCHA 1
## 17 ICA NAZCA 1
## 28 LORETO ALTO AMAZONAS 1
## 32 PIURA HUANCABAMBA 1
## 34 PIURA SULLANA 1
## 35 PIURA TALARA 1
## 37 SAN MARTIN HUALLAGA 1
## 42 TUMBES ZARUMILLA 1
baseHeat = ggplot(dengueProvWorst, aes(x = reorder(departamento,case), y = reorder(provincia,case), fill=case)) + theme_classic()
heatDefault = baseHeat + geom_tile() #here
heatBetter=heatDefault +scale_fill_gradient(low = 'yellow',high = 'red')
heatBetter + theme(axis.text.x = element_text(angle = 60,vjust = 1,hjust = 1),
axis.text.y = element_text(size=4)) +
geom_text(aes(label=ifelse(case>=10,case,"")),
size=6,fontface='bold', color='white')
Las provincias más afectadas han sido Maynas y Tambopata, ambas registraron el mayor número de casos de dengue en su departamento, con un total de 13 ocasiones cada una. Les siguen en la lista Tumbes y Coronel Portillo. De esta forma, es evidente que las regiones más afectadas son aquellas situadas en la selva peruana. El dengue tiene una presencia significativa en estas áreas debido a que presentan condiciones climáticas propicias para su propagación, caracterizadas por climas extremos de lluvia.
denguelink3='https://raw.githubusercontent.com/SocialAnalytics-StrategicIntelligence/TableOperations/main/dataFiles/ByYearPlace.pkl'
dengueYearPlace <- pd$read_pickle(denguelink3)
str(dengueYearPlace)
## 'data.frame': 203 obs. of 4 variables:
## $ ano : num 2012 2012 2012 2012 2012 ...
## $ departamento : chr "AMAZONAS" "ANCASH" "CAJAMARCA" "HUANUCO" ...
## $ rateAlarma : num 0.1263 0.0211 0.1772 0.3092 0.0613 ...
## $ rateAlarma.cut: Ord.factor w/ 6 levels "less10%"<"10-25%"<..: 2 1 2 3 1 1 2 2 2 1 ...
## - attr(*, "pandas.index")=RangeIndex(start=0, stop=203, step=1)
baseHeat = ggplot(dengueYearPlace, aes(x = as.factor(ano),
y = reorder(departamento, rateAlarma),
fill=rateAlarma.cut)) + theme_classic()
heatDefault = baseHeat + geom_tile(show.legend = T)
heatBetter=heatDefault +scale_fill_brewer(palette = "Reds")
heatBetter + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1, size=8),
axis.text.y = element_text(size=4),
legend.text = element_text(size=8)) +
labs(x = "Año", y = "Departamento", fill = "Casos alarmantes", title = "Evolución de los casos alarmantes de dengue por departamento")+
theme(plot.title = element_text(hjust = 0.3, face="bold", size=12))
Contrario a lo esperado, el porcentaje de casos alarmantes no graves ha disminuido en comparación con el número de casos asintomáticos a lo largo de los años. Para el año 2018, ha sido cada vez menos común encontrar departamentos con un porcentaje de casos alarmantes de 51-75%, 75-100%, o incluso mayor al 100%.