--- title: "Analyse de l'incidence de la varicelle" author: "Martin ADECHI" date: "12/10/2024" output: html_document --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` Nous allons charger les données de la source. Mais a cause d"une éventuelle non pérrenité du lien,nous allons aussi publier les données de l'analyse dans le même emplacement ```{r} data_url = "https://www.sentiweb.fr/datasets/all/inc-7-PAY.csv" ``` Nous téléchargeons les données de la source si les données locales ne sont pas disponibles ```{r} data_file = "varicelle.csv" ``` ```{r} if(!file.exists(data_file)){ download.file(data_url,data_file,method = "auto") } ``` ## Lecture des données ```{r} data_source = read.csv(data_file,skip = 1) ``` Voyons la structure des données ```{r} str(data_source) ``` la variable inc est bien compris comme une colonne d'entiers. Ce qui exactement ce a quoi on s'attendait Voyons s'il y a des manquants dans notre jeu de données ```{r} lignes_na = apply(data_source,1,function(x) any(is.na(x))) data_source[lignes_na,] ``` Parfait, il n'y a pas de manquants dans notre jeu de données ## Traitement des dates ```{r} library(parsedate) ``` ```{r} convert_week <- function(weeks){ w = paste0(weeks) year = substr(w,1,4) week = substr(w,5,6) iso = parse_iso_8601(paste0(year,'-W',week)) as.character(iso) } ``` Nous créons une autre colonne date qui va conténir les dates ```{r} data_source$Date = as.Date(convert_week(data_source$week)) ``` ```{r} class(data_source$Date) ``` Nous allons vérifier si l'écart entre les données sont effectivement d'une semaine.Pour cela nous allons ordonner les données pour qu'ils partent des plus anciennes dates aux plus nouvelles. ```{r} data_source = data_source[order(data_source$Date),] ``` Maintenant a l'étape de l'état de vérification des données ```{r} all(diff(data_source$Date) == 7) ``` Toutes nos données sont cohérentes. Donc nous allons passer a une visualisation de nos données ```{r} plot(data_source$Date,data_source$inc,type = 'l',col = "blue",lwd = 2) ``` Nous allons regarder de près ce qui se passe. ```{r} with(tail(data_source,400),plot(Date,inc,type = 'l',col = "blue",lwd = 2,main="Incidence de la varicelle en France",ylab='Taux de contamination')) ``` ## Incidence annuelle ### Calcul Nous allons définir comme début de chaque période annuelle le 1er septembre et nous allons compter les incidences annuelles ```{r} pic_annuelle <- function(annee) { debut = paste0(annee-1,'-09-01') fin = paste0(annee,'-09-01') inc = data_source$Date > debut & data_source$Date <= fin inc = sum(data_source$inc[inc]) } ``` Cette fonction définit sera appliqué a chaque année. Malheureusement comme le début de notre période annuelle commence le 1er septembre,l'année 1990 servira uniquement a définir la période annuelle de 1991 ```{r} annee = 1991:2024 inc = sapply(annee,pic_annuelle) ``` Nous allons définir la série qui contient les incidences annuelles de chaque année ```{r} incidence_annuelle <- data.frame(Annee = annee,inc = inc) incidence_annuelle ``` ### Inspection ```{r} plot(incidence_annuelle,col = 'blue') ``` ### Identification des épidémies les plus fortes Pour pouvoir les épidémies les plus fortes, nous allons ordonner les incidences annuelles ```{r} incidence_annuelle <- incidence_annuelle[order(-incidence_annuelle$inc),] head(incidence_annuelle) ``` ```{r} tail(incidence_annuelle) ``` Enfin, un histogramme montre bien que les épidémies fortes, qui touchent environ 10% de la population française, sont assez rares: il y en eu trois au cours des 35 dernières années. ```{r} hist(incidence_annuelle$inc,breaks = 10,col = 'blue') ```