diff --git a/module3/exo2/exercice_fr.Rmd b/module3/exo2/exercice_fr.Rmd index 474843b856ba9d8646fb5d0ae675cb7ebc6f75e5..4985d9aa1f8a023e5025a01da86656a80dc3a2dc 100644 --- a/module3/exo2/exercice_fr.Rmd +++ b/module3/exo2/exercice_fr.Rmd @@ -116,8 +116,8 @@ Une première analyse de l'incidence de la varicelle peut être faite visuelleme ```{r} ggplot(varicelle, aes(x = iso_week, y = inc)) + geom_line(col = "blue", alpha = 0.6) + - labs(title = "Incidence de la varicelle", - x = "Semaine", y = "Incidence") + + labs(title = "Incidence (hebdomadaire) de la varicelle", + x = "Semaine", y = "Nb de cas par semaine") + theme_bw() ``` @@ -127,8 +127,8 @@ varicelle %>% filter(row_number() >= length(week) - 200) %>% ggplot(aes(x = iso_week, y = inc)) + geom_line(col = "blue", alpha = 0.6) + - labs(title = "Incidence de la varicelle", - x = "Semaine", y = "Incidence") + + labs(title = "Incidence (hebdomadaire) de la varicelle", + x = "Semaine", y = "Nb de cas par semaine") + scale_x_datetime(date_breaks = "6 months", date_labels = "%Y-%m") + theme_bw() ``` @@ -138,8 +138,80 @@ Les pics d'incidence semblent avoir lieu au mois d'avril chaque année, alors qu ## Analyse de l'incidence +### Modification de la période de référence + +Étant donné que le pic de l'épidémie semble se situer au mois d'avril, à cheval entre deux années civiles, nous définissons la période de référence entre deux minima de l'incidence, du 1er septembre de l'année $N$ au 1er septembre de l'année $N+1$. +Nous mettons l'année $N+1$ comme étiquette sur cette année décalée, car le pic de l'épidémie est toujours au début de l'année $N+1$. Comme l'incidence de la varicelle est très faible en été, cette modification ne risque pas de fausser nos conclusions. +```{r} +pic_annuel = function(annee) { + debut = paste0(annee-1,"-08-01") + fin = paste0(annee,"-08-01") + semaines = data$date > debut & data$date <= fin + sum(data$inc[semaines], na.rm=TRUE) + } +``` + +```{r} +varicelle <- varicelle %>% + # extraire l'année "civile" pour chaque ligne + mutate(annee_civile = as.numeric(format(iso_week, format = "%Y"))) %>% + group_by(annee_civile) %>% + # si la date est avant le 1er septembre, année précédente, sinon année en cours + mutate(annee_ref = ifelse(iso_week < as.POSIXct(paste0(annee_civile, "-09-01"), format = "%Y-%m-%d"), + annee_civile - 1, annee_civile)) %>% + ungroup() +``` + +On peut regarder le résultat en extrayant quelques données autour du 1er septembre 2005. +```{r} +varicelle %>% + filter(between(iso_week, as.POSIXct("2005-08-10"), as.POSIXct("2005-09-20"))) %>% + select(week, iso_week, annee_civile, annee_ref) +``` + +Enfin, l'année en cours n'étant pas complète, on peut supprimer les données liées à celle-ci. +```{r} +varicelle <- varicelle %>% + filter(annee_ref != max(annee_ref)) +``` +### Visualisation + +On peut maintenant observer l'incidence par année de référence. +```{r} +var_tableau <- varicelle %>% + group_by(annee_ref) %>% + summarise(inc_totale = sum(inc)) %>% + ungroup() %>% + mutate(inc_totale_format = cell_spec(inc_totale, format = "html", + bold = TRUE, + color = "white", + background = ifelse(inc_totale == min(inc_totale), "lightgreen", + ifelse(inc_totale == max(inc_totale), "red", "white")))) + +var_tableau %>% + filter(inc_totale %in% c(min(inc_totale), max(inc_totale))) %>% + select(`Année` = annee_ref, `Incidence totale` = inc_totale_format) %>% + kable(format = "html", escape = F) %>% + kable_styling(bootstrap_options = "striped", full_width = F, position = "left") +``` +On retrouve les résultats du tableau dans le graphe suivant : +```{r} +ggplot(var_tableau, aes(x = annee_ref, y = inc_totale)) + + geom_line(col = "blue", alpha = 0.6) + + geom_label(data = var_tableau %>% filter(inc_totale == min(inc_totale)), + aes(x = annee_ref, y = inc_totale, label = paste("Année", annee_ref, ":", inc_totale, "cas")), + color = "green", + nudge_y = -20000) + + geom_label(data = var_tableau %>% filter(inc_totale == max(inc_totale)), + aes(x = annee_ref, y = inc_totale, label = paste("Année", annee_ref, ":", inc_totale, "cas")), + color = "red", + nudge_y = 20000) + + labs(title = "Incidence (annuelle) de la varicelle", + x = "Année de référence", y = "Nb de cas par année") + + theme_bw() +```