From 641ba77683bd3642ce42f69d43b59d53dd7e2db1 Mon Sep 17 00:00:00 2001 From: 850ad9002e8a94b002cf8b2ee50ec6d9 <850ad9002e8a94b002cf8b2ee50ec6d9@app-learninglab.inria.fr> Date: Mon, 27 Apr 2020 12:16:06 +0000 Subject: [PATCH] Update Readme.md Module 3 --- journal/Readme.md | 86 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/journal/Readme.md b/journal/Readme.md index 710d2fa..2006607 100644 --- a/journal/Readme.md +++ b/journal/Readme.md @@ -200,4 +200,88 @@ Voici quelques billets intéressants sur le sujet: - organiser l'information et la rendre exploitable - la rendre disponible -**Pour la suite du MOOC, choix de RStudio** \ No newline at end of file +**Pour la suite du MOOC, choix de RStudio** + +:27-04-2020: +# Module 3 : La main à la pâte : une analyse réplicable +## 1. Une analyse réplicable, c'est quoi ? +Dans le cadre d'une *analyse traditionnelle* on se concentre sur les résultats et on montre un résumé méthodologique +des calculs et discussion des conclusions. + +Concernant, l'*analyse réplicable* = 4 blocs = résultats + discussion mais aussi code + explication (des calculs menés) +Pourquoi? facilité la reproduction de cette analyse, facile à modifier, facile à inspecter et vérifier! + +## 2. Etude de cas : l'incidence de syndromes grippaux +Jeu de données [Réseau Sentinelles](http://www.sentiweb.fr) Inserm, UPMC +Présentation du jeu de données : + - 2ème ligne présente les étiquettes des colonnes de données + - 1ère colonne = année et semaine en format iso (= l'année commence par la semaine qui contient le 4 janvier) + - 3ème colonne = données d'intérêt = *incidence des syndromes grippaux* + - anomalie dans le jeu de données ? ex: absence de données pour la semaine 19 de l'année 1989 (198919) + - dans notre cas, peu d'importance car ce n'est qu'une semaine sur une suite de longues années --> point à supprimer + - ATTENTION pour la suppression de ce point : ne pas le supprimer directement sur les raw data du jeu de données car PAS REPLICABLE + +### A RETENIR + - Aucune modification des données ne doit être faîtes "à la main" car sinon aucune trace visible de l'intervention + - Tout doit se faire dans du code + +### NB +Le site Web du Réseau Sentinelles que nous utilisons dans ce module a subi des modifications importantes après le tournage des vidéos. +L'accès aux données ne se passe plus comme montré. Il faut passer par les menus "Surveillance continue" - "Base de données" - "Accès aux données" et cliquer sur l'onglet "Télécharger", +puis choisir les données au format *CSV* pour la France Métropolitaine. +Le format des données téléchargées a aussi légèrement changé, il faut adapter le traitement des données manquantes. Le code que nous montrons dans les vidéos ne fonctionne plus avec +les données d'aujourd'hui. Une version mise à jour est disponible [ici](https://www.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/courseware/5b932aa591d245d48d8943385cb3120a/bd37d027f9e54180b7657296967d3ef9/1?activate_block_id=block-v1%3Ainria%2B41016%2Bself-paced%2Btype%40vertical%2Bblock%4002a68b059f844a61ac3998729b78678d). + +## 3. Crééer un document computationnel et importer les données (parcours 3B.) +### 3.1. Choix initiaux + - Environnement RStudio + - Langage R + - Bibliothèque *parsedate* pour la gestion des dates en format *iso* + +### 3.2. Créer un document computationnel + - Créer un nouveau document du type *RMarkdown* nommé "Analyse de l'incidence du syndrome grippal" + +### 3.3. Importer des données + - Télécharger les données (il faut connaître l'url du téléchargement) via le code `data_url = ""` accessible dans les téléchargements + - ici url est : https://www.sentiweb.fr/datasets/incidence-PAY-3.csv + - lire les données `data = read.csv (data_url, skip=1)` + - afficher le début des données `head(data)` : ordre chronologique inverse (1ère ligne = dernier point du jeu de données) + - afficher la fin du jeu de données `tail(data)` + +### 3.4. Données manquantes et comment les gérer + - Dans quelles lignes il y a des données manquantes (analyse R ligne par ligne, on regarde pour une ligne i dans chaque colonne s'il y a une na) ? + - `lignes_na = apply(data, 1, function(x)any(is.na(x)))` puis *afficher le contenu des lignes* `data[lignes_na,]` + - un dernier test à effectuer pour s'assurer que tous s'est bien passé : *inspecter les types de données* `class(data$week)` et `class(data$inc)`, incidence (inc) est de type factor car du aux données manquantes + - pour corriger le type factor, `data = read.csv(data_url, skip=1, na.strings = '-')` considérer le "-" comme une donnée manquante; puis `class(data$inc)` --> integer + +## 4. Vérification et inspection (parcours 3B.) +--> préparer les données pour l'analyse +Bibliothèque supplémentaire utilisée pour lire la date format iso = *parsedate* `library(parsedate)` +### Comment réaliser la conversation de la date sous format iso? +1. convertir l'entier (yyyyww) sous forme d'une chaîne de caractère + - `date = 199501` + - `ws = paste(date)` + - `iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5,6))` + - `iso` + +Nous pouvons aussi faire appel à la fonction *`parse_iso_8601()`* pour obtenir une date +--> on obtient une date yyyy-mm-dd où le jour donné est le lundi du mois. + +2. *Il faut appliquer cette procédure à chaque ligne du jeu de données* en écrivant une fonction + `convert_week=function(date) { + ws=paste(date) + iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6)) + as.character(parse_iso_8601(iso)) +}` + +mettre les résultats dans une nouvelle colonne `data$date = as.Date(sapply(data$week, convert_week))` puis `class(date$date)` +$-->$ voir les notes du document module3_ressources_analyse-syndrome-grippal-rstudio.Rmd + +3. Trier les données pour qu'elles soient dans l'ordre chronologique + +## 5. Questions et réponses (parcours 3B.) +voir les notes du document analyse-syndrome-grippal-rstudio.Rmd + +** Travail pratique évalué par les pairs ** + +# Module 4 : Vers une étude reproductible : la réalité du terrain -- 2.18.1