Commit afc8d7e9 authored by Marc Oudart's avatar Marc Oudart

Début module 3 et essais notebooks

parent 87648fde
......@@ -226,7 +226,16 @@ Tout est dans le dossier des modules 2.
Notamment le fichier de l'exercice 4.
- Exercice 5 :
Done dans le dossier associé.
# Module 3 : La main à la pate - une analyse réplicable
## L'étude de cas : Grippe
Téléchargement des données hebdomadaires des cas de syndrome grippaux depuis 1985 sur le site du [réseau sentinnelles](https://www.sentiweb.fr/france/fr/?page=table).
S'il y a des données manquantes dans le fichier --> __NE JAMAIS LES MODIFIER A LA MAIN mais toujours dans du code pour les personnes voulant réutiliser l'étude puissent comprendre pourquoi la ligne a été supprimée.__
# Importation des données
Voir le document RMardown _Analyse syndrome grippal_.
<!-- ## R Markdown
......
......@@ -3,8 +3,8 @@ title: "Exo4 module 2"
author: "Marc"
date: "07/04/2020"
output:
html_document: default
pdf_document: default
html_document: default
---
```{r setup, include=FALSE}
......
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6500 64-bit) (preloaded format=pdflatex 2018.1.29) 8 APR 2020 12:31
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (MiKTeX 2.9.6500 64-bit) (preloaded format=pdflatex 2018.1.29) 9 APR 2020 11:04
entering extended mode
**./Calcul_téléphone.tex
(Calcul_téléphone.tex
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
---
title: "Analyse de l'incidence du syndrome grippal"
author: "Marc"
date: "10/04/2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
Récupération des données à partir du site du réseau sentinelle.
```{r}
data_url = "https://www.sentiweb.fr/datasets/incidence-PAY-3.csv"
```
Importer les données dans la variable data en sautant la première ligne de commentaire du fichier.
```{r}
data = read.csv(data_url, skip=1)
head(data)
```
Voir la fin du document :
```{r}
tail(data)
```
Regarder s'il y a des données manquantes :
```{r}
lignes_na = apply(data, 1, function(x) any(is.na(x)))
data[lignes_na,]
```
Traverser data ligne par ligne (`data, 1`) et appliquer la fonction qui traverse colonne par colonne qui retourne tout (`any`) s'il y a valeur manquante (`is.na`).
`data[lignes_na,]` pour voir le contenu de ces lignes.
Quelles types de données ?
Pour la colonne semaine et la colonne indice :
```{r}
class(data$week)
class(data$inc)
```
Tous les deux sont des entiers (différent de la vidéo).
En fait la donnée manquante de inc a été remplacée par 0.
Il faut que R comprenne que la 1ère colonne sont des dates.
Il nous faut donc la librairie `parsedate`.
```{r message=FALSE, warning=FALSE}
install.packages("parsedate")
library("parsedate")
```
Création d'une fonction (`convert_week`) pour transformer la 1ère colonne en date.
```{r}
convert_week = function(date){
ws = paste(date)
iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6))
as.character(parse_iso_8601(iso))
}
```
Appliquer la fonction à toute les lignes.
```{r}
data$date = as.Date(sapply(data$week, convert_week))
class(data$date)
```
Trier le jeu de données par ordre chronologique.
```{r}
data = data[order(data$date),]
head(data)
```
Est-ce que les lignes sont bien séparées d'1 semaine ?
```{r}
all(diff(data$date) == 7)
```
On peut plotter les données :
```{r}
with(data, plot(date, inc, type ="l"))
```
Le `with` spécifie juste que c'est de la variable `data` qu'il faut prendre (au lieu d'utiliser `data$date`).
Appliquer seulement aux 200 derniers points :
```{r}
with(tail(data, 200), plot(date, inc, type ="l"))
```
## L'analyse
On va analyser d'années en années et non pas de semaine en semaine.
On va faire des années du 1er août au 1er août de chaque année pour ne pas tomber au milieu d'un pic.
On va faire une fonction pour ça :
```{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)
}
```
L'année 1984 commence en hiver donc dans le pic donc il vaut mieux prendre des années à partir de 1985.
```{r}
annees = 1985:2020
```
On va créer un nouveau tableau des incidences par année.
```{r}
incidence_annuelle = data.frame(année = annees, incidence = sapply(annees, pic_annuel))
head(incidence_annuelle)
```
```{r}
plot(incidence_annuelle, type="p")
```
Voir les pics les plus importants en faisant un tri par l'incidence.
```{r}
head(incidence_annuelle[order(-incidence_annuelle$incidence),])
```
Histogramme de la fréquence des incidences en 10 catégories.
```{r}
hist(incidence_annuelle$incidence, breaks=10)
```
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment