Social Analytics and Strategic Intelligence
Session 1: Explore and Query Let’s bring the data in long format (ByYear_LongStats):
rm(list = ls())
denguelink1='https://github.com/SocialAnalytics-StrategicIntelligence/TableOperations/raw/main/dataFiles/ByYear_LongStats.pkl'
library(reticulate)
## Warning: package 'reticulate' was built under R version 4.3.3
use_python("C:/Users/dyobr/anaconda3")
#py_install("pandas") # install pandas for R environment
py_install("pandas")
## + "C:/Users/dyobr/anaconda3/condabin/conda.bat" "install" "--yes" "--prefix" "C:/Users/dyobr/anaconda3" "-c" "conda-forge" "pandas"
pd <- import("pandas")
dengueLongStats <- pd$read_pickle(denguelink1)
reticulate::py_last_error()
## NULL
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)
edad <- subset(dengueLongStats, statsName == "edad_mean")
edad
#Gráfico
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
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
last_mean <- edad %>%
group_by(enfermedad) %>%
filter(ano == max(ano))
ggplot(data=edad, aes(x=ano, y=statsValue, color=enfermedad)) +
geom_smooth(se=TRUE, method="loess")+
scale_y_log10(labels=scales::comma) +
scale_color_manual(values=c("SIN_SEÑALES" = "pink", "ALARMA" = "purple", "GRAVE" = "skyblue")) +
theme_light() +
labs(title="Edad media del contagiado (2010-2022)",
x="Año",
y="Edad Promedio",
color="Grado de la enfermedad")+
theme(plot.title = element_text(hjust = 0.4, face="bold", size=18))+
geom_text(data=last_mean, aes(label=round(statsValue)), hjust=-0.1, vjust=0.5, color="black", show.legend = FALSE)
## `geom_smooth()` using formula = 'y ~ x'
La edad media del contagiado de dengue vario a través de los años? Fue
lo mismo segun gravedad? Respuesta: Se observa en el gráfico que la edad
media de los contagiados de dengue ha experimentado variaciones a lo
largo de los años. Sin embargo, las fluctuaciones más significativas
ocurrieron en años anteriores a 2010. Desde entonces, la edad promedio
de los contagiados no ha experimentado cambios notorios. Hasta el año
2022, los grupos más afectados por el dengue han sido los adultos
jóvenes, principalmente aquellos en sus 30 años tempranos o en sus 20
tardíos, en los tres grados de la enfermedad.
datacase <- subset(dengueLongStats, statsName == "case_sum")
datacase
#Gráfico
library(ggplot2)
library(dplyr)
last_values <- datacase %>%
group_by(enfermedad) %>%
filter(ano == max(ano))
ggplot(data=datacase, aes(x=ano, y=statsValue, color=enfermedad)) +
geom_smooth(se=TRUE, method="loess")+
scale_y_log10(labels=scales::comma) +
scale_color_manual(values=c("SIN_SEÑALES" = "pink", "ALARMA" = "purple", "GRAVE" = "skyblue")) +
theme_light() +
labs(title="Número de casos a lo largo del tiempo (2010-2022)",
x="Año",
y="Número de casos",
color="Grado del dengue")+
theme(plot.title = element_text(hjust = 0.5, face="bold", size=18))+
geom_text(data=last_values, aes(label=statsValue), hjust=-0.1, vjust=0.5, color="black", show.legend = FALSE) +
scale_x_continuous(limits = c(min(datacase$ano), max(datacase$ano) + 1.5))
## `geom_smooth()` using formula = 'y ~ x'
La cantidad de casos varió a través de los años? Fue lo mismo según
gravedad? Respuesta: En relación a la cantidad de casos, el análisis del
gráfico revela un notable aumento en los casos de dengue de grado de
alarma (con síntomas) entre los años 2005 y 2015, llegando a alcanzar
7370 casos al año 2022. Sin embargo, este incremento no se compara con
la cantidad de casos sin señales (sin síntomas), que para el año 2022
registraban 48625 casos. Aunque los casos sin síntomas han mantenido una
tendencia relativamente constante a lo largo de los años, en contraste,
los casos de alarma han experimentado fluctuaciones más notorias. Por
otro lado, los casos de dengue grave han mantenido una estabilidad
relativa, sin evidenciar aumentos ni disminuciones significativas a lo
largo del periodo analizado.
Most affected provinces through the years?
The data worst_ProvYear_alarma_Frequency tell us the frequency of the worst province by region by year:
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 ...
For instance, LORETO has data for 14 years:
dengueProvWorst[dengueProvWorst$departamento=='LORETO',]
In one year, ALTO AMAZONAS was the worst case of people with alarm situation; while MAYNAS had that position for 13 years.
What is the worst cases?
dengueProvWorst[order(-dengueProvWorst$case),]
We could see the distribution of the worst provinces:
denguePeor <- dengueProvWorst %>% filter(case >= 10)
ggplot(denguePeor, aes(x = provincia, y = case), fill = case) +
geom_bar(stat = "identity") +
coord_flip()+
labs(title = "Años con mayor cantidad de casos de Dengue",
subtitle = "Provincias por año con más casos de dengue",
x = "Provincia",
y = "Escala 0 - 13") +
geom_text(aes(label=paste0(round(case,1),"%")), vjust=1, hjust = 1,color="pink", size=2)
theme()
## Named list()
## - attr(*, "class")= chr [1:2] "theme" "gg"
## - attr(*, "complete")= logi FALSE
## - attr(*, "validate")= logi TRUE
Cuales fueron las provincias mas afectadas con contagiados a lo largo de los años?
A lo largo de los años, las provincias más afectadas por el dengue han sido Maynas y Tambopata, registrando el mayor número de casos en sus respectivos departamentos en 13 ocasiones. Estas provincias son seguidas por Tumbes y Coronel Portillo. Es notable que estas provincias más afectadas se encuentran en la región selvática, caracterizada por climas cálidos y lluviosos.
Let’ see the info about rateAlarma:
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)
Basic stats:
summary(dengueYearPlace)
## ano departamento rateAlarma rateAlarma.cut
## Min. :2012 Length:203 Min. :0.00000 less10% :97
## 1st Qu.:2015 Class :character 1st Qu.:0.03673 10-25% :46
## Median :2017 Mode :character Median :0.10378 25-50 :47
## Mean :2017 Mean :0.19514 51-75% : 5
## 3rd Qu.:2020 3rd Qu.:0.28067 75-100% : 5
## Max. :2022 Max. :1.58333 above100%: 3
Where and when?
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 = "")
## Warning in pal_name(palette, type): Unknown palette
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))
Qué relación habia entre los casos alarmantes no graves y los
asintomaticos segun departamento a lo largo de los años?
A lo largo de los años, se observa una tendencia en la que los casos alarmantes no graves han disminuido su proporción en comparación con el número de casos asintomáticos. Esta relación podría indicar una serie de posibles escenarios, como una mejora en la detección temprana y el tratamiento efectivo del dengue, lo que reduce la incidencia de casos con síntomas alarmantes pero no graves. También podría reflejar una mayor conciencia y educación sobre la enfermedad, lo que lleva a una búsqueda de atención médica más rápida y eficiente, disminuyendo así la proporción de casos alarmantes no graves en comparación con los asintomáticos. Sin embargo, es importante tener en cuenta que esta observación se basa en una tendencia general y puede variar según el contexto específico de cada departamento y año.