Import des données

data<-read.csv("/Users/jeromeriera/Library/Mobile Documents/com~apple~CloudDocs/Thèse/MOOC RR/mooc rr/module3/inc-3-PAY.csv", skip = 1)
class(data$week)
## [1] "integer"
class(data$inc)
## [1] "character"
class(data$inc)='character'
class(data$inc)
## [1] "character"
data<-read.csv("/Users/jeromeriera/Library/Mobile Documents/com~apple~CloudDocs/Thèse/MOOC RR/mooc rr/module3/inc-3-PAY.csv", skip = 1, na.strings = "-")
class(data$inc)
## [1] "integer"

Mise en forme des dates au format iso 8601

Nous utilisons la librairie parsedate pour cela et créons une fonction afin d’appliquer le code à l’ensemble des données

library(parsedate)
convert_week = function(date){
   ws=paste(date)
   iso=paste0(substring(ws, 1, 4),"-W", substring(ws, 5, 6))
   as.character(parse_iso_8601(iso))  
}

Nous créons une nouvelle colone dans notre dataframe avec les dates converties et nous assurons qu’elles soint bine au format Date

data$date = as.Date(sapply(data$week, convert_week))
class(data$date)
## [1] "Date"

Nous ordonnons les données dans l’ordre chronologique, vérifions que les semaines font bien 7 jours, et vérifions à l’aide du code.

data=data[order(data$date),]
head(data)
##        week indicator    inc inc_low inc_up inc100 inc100_low inc100_up
## 2078 198444         3  68422   20056 116788    125         37       213
## 2077 198445         3 135223  101414 169032    246        184       308
## 2076 198446         3  87330   67686 106974    159        123       195
## 2075 198447         3  72029   54274  89784    131         99       163
## 2074 198448         3  78620   60634  96606    143        110       176
## 2073 198449         3 101073   81684 120462    184        149       219
##      geo_insee geo_name       date
## 2078        FR   France 1984-10-29
## 2077        FR   France 1984-11-05
## 2076        FR   France 1984-11-12
## 2075        FR   France 1984-11-19
## 2074        FR   France 1984-11-26
## 2073        FR   France 1984-12-03
all(diff(data$date)==7)
## [1] TRUE

Visualisation des données

with(data, plot(date, inc, type='l'))

Nous faisons un zoom afin de préciser ce qui est observable sur la premier graphique (pic d’incidence régulier à la période hivernale)

with(tail(data,200), plot(date, inc, type='l'))

## Réponses aux questions

Quelles sont les années où l’incidence est la plus élevée ?

Nos données sont basées sur des semaines nous devons donc effectué une sommation pour observer les annés. Les pics étant à l’hiver, et afin de ne pas avoir d’erreur du fait de la variations du nombre de jour par an, nous définnissons les années comme allant du 1 aout au premier aout suivant et créons une fonction pour appliquer cela à l’ensemble des données.

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)  
}

N’ayant potentiellement pas les données complète de l’hiver 1984 nous ne prendrons en compte les données qu’à partir de l’année 1986

annees = 1986:2024

Nous créons un nouveau tableau ‘incidence_annuelle’ avec les colonnes ‘annee’ et ‘incidence’ en appliquant la fontion pic_annuelcrée juste avant.

incidence_annuelle = data.frame(annee=annees,
                                incidence = sapply(annees, pic_annuel))
head(incidence_annuelle)
##   annee incidence
## 1  1986   5100540
## 2  1987   2861556
## 3  1988   2766142
## 4  1989   5460155
## 5  1990   5233987
## 6  1991   1660832

Nous visualisons les données ainsi traitées

plot(incidence_annuelle, type="p")

Le graphique nous permet de voir que trois années ressortent du lot. Nous ordonnons le tableau ‘incidence-annuelle’ afin de visualiser les incidences en ordre décroissant.

head(incidence_annuelle[order(-incidence_annuelle$incidence),])
##    annee incidence
## 4   1989   5460155
## 5   1990   5233987
## 1   1986   5100540
## 28  2013   4182265
## 25  2010   4085126
## 14  1999   3897443

Le tableau nous informe que ce sont les annéees 1989, 1990 et 1986 qui ont les incidences les plus élevées.

Fréquences des épidémies

la réalisation d’un histogramme va nous permettre de visualiser la fréquence des épidémies de grippe.

hist(incidence_annuelle$incidence, breaks = 10)