Commit 53ebf0c8 authored by Ariane Ducher's avatar Ariane Ducher

avec des annotations

parent 4d22b5c1
...@@ -17,6 +17,15 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du ...@@ -17,6 +17,15 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du
data_url = "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv" data_url = "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv"
``` ```
Pour nous protéger contre une éventuelle disparition ou modification du serveur du Réseau Sentinelles, nous faisons une copie locale de ce jeux de données que nous préservons avec notre analyse. Il est inutile et même risquée de télécharger les données à chaque exécution, car dans le cas d'une panne nous pourrions remplacer nos données par un fichier défectueux. Pour cette raison, nous téléchargeons les données seulement si la copie locale n'existe pas.
```{r}
data_file = "syndrome-grippal.csv"
if (!file.exists(data_file)) {
download.file(data_url, data_file, method="auto")
}
```
Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://ns.sentiweb.fr/incidence/csv-schema-v1.json): Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://ns.sentiweb.fr/incidence/csv-schema-v1.json):
| Nom de colonne | Libellé de colonne | | Nom de colonne | Libellé de colonne |
...@@ -34,12 +43,15 @@ Voici l'explication des colonnes donnée sur le [sur le site d'origine](https:// ...@@ -34,12 +43,15 @@ Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://
La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skip=1`. La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skip=1`.
### Téléchargement ### Lecture
```{r}
data = read.csv(data_file, skip=1)
```
Regardons ce que nous avons obtenu: Regardons ce que nous avons obtenu:
```{r} ```{r}
data = read.csv(data_url, skip=1)
head(data) head(data)
``` ```
...@@ -94,7 +106,7 @@ Vérifions qu'elle est de classe `Date`: ...@@ -94,7 +106,7 @@ Vérifions qu'elle est de classe `Date`:
class(data$date) class(data$date)
``` ```
Les points sont dans l'ordre chronologie inverse, il est donc inutile de les trier: Les points sont dans l'ordre chronologique inverse, il est donc utile de les trier:
```{r} ```{r}
data = data[order(data$date),] data = data[order(data$date),]
...@@ -105,11 +117,17 @@ C'est l'occasion pour faire une vérification: nos dates doivent être séparée ...@@ -105,11 +117,17 @@ C'est l'occasion pour faire une vérification: nos dates doivent être séparée
```{r} ```{r}
all(diff(data$date) == 7) all(diff(data$date) == 7)
``` ```
### Inspection
Regardons enfin à quoi ressemblent nos données ! Regardons enfin à quoi ressemblent nos données !
```{r} ```{r}
plot(data$date, data$inc, type="l", xlab="Date", ylab="Incidence hebdomadaire")
with(data, plot(date, inc, type="l", xlab="Date", ylab="Incidence hebdomadaire")) with(data, plot(date, inc, type="l", xlab="Date", ylab="Incidence hebdomadaire"))
``` ```
*les deux formaules sont équivalentes*
Un zoom sur les dernières années montre mieux la localisation des pics en hiver. Le creux des incidences se trouve en été. Un zoom sur les dernières années montre mieux la localisation des pics en hiver. Le creux des incidences se trouve en été.
```{r} ```{r}
...@@ -142,7 +160,7 @@ Nous créons un nouveau jeu de données pour l'incidence annuelle, en applicant ...@@ -142,7 +160,7 @@ Nous créons un nouveau jeu de données pour l'incidence annuelle, en applicant
```{r} ```{r}
inc_annuelle = data.frame(annee = annees, inc_annuelle = data.frame(annee = annees,
incidence = sapply(annees, pic_annuel)) incidence = sapply(annees, pic_annuel))
head(inc_annuelle) head(inc_annuelle)
``` ```
...@@ -150,7 +168,7 @@ head(inc_annuelle) ...@@ -150,7 +168,7 @@ head(inc_annuelle)
Voici les incidences annuelles en graphique: Voici les incidences annuelles en graphique:
```{r} ```{r}
plot(inc_annuelle, type="p", xlab="Année", ylab= "Incidence annuelle") plot(inc_annuelle, type="p", xlab="Année", ylab="Incidence annuelle")
``` ```
### Identification des épidémies les plus fortes ### Identification des épidémies les plus fortes
...@@ -164,7 +182,7 @@ head(inc_annuelle[order(-inc_annuelle$incidence),]) ...@@ -164,7 +182,7 @@ head(inc_annuelle[order(-inc_annuelle$incidence),])
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. 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} ```{r}
hist(incidence_annuelle$incidence, breaks=10, xlab="Incidence annuelle", ylab="Nb d'observations", main="") hist(inc_annuelle$incidence, breaks=10, xlab="Incidence annuelle", ylab="Nb d'observations", main="")
``` ```
......
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