...
 
Commits (24)
# MOOC Recherche Reproductible -SG
## Module 1: cahiers de notes
### Introduction
Reproductibilité = être capable de retrouver le même résultat
ou
être capable d’appliquer le même procédé d’analyse à un autre jeu de données
ou
être capable de communiquer, de faire refaire l’analyse du même set de données (avec les mêmes règles de calcul, les mêmes valeurs de paramètres...)
Pas le même sens en fonction des disciplines.
Augmentation de la demande de reproductibilité par les éditeurs
Traçabilité des données et des opérations particulièrement importante pour la modélisation et le traitement statistique de données
### Nous utilisons tous des cahiers de notes
Problématique de la synchronicité de la prise de note avec l'opération et le nettoyage/classement a posteriori
Problématique de l'exhaustivité des notes, de leur fidélité et de la diversité des formats (textes, dessin, images...)
Problématique de la pérennité du support (et de son accessibilité - logiciels propriétaires...)
Problématique de l'exploration des notes : indexation
### Du fichier texte au langage de balisage léger
**Markdown** : langage de balisage léger dans un fichier text UTF-8
**Gitlab** utilisé comme interface éditeur de texte UTF-8 avec balisage léger type Markdown
### Pérennité et évolutivité des notes avec les logiciels de gestion de version (Gitlab)
A la base : **Git** logiciel avec son langage
Principe : enregistrement de chaque version du fichier et de ses liens avec les versions préexistantes (history donne accès au graphe entre ses différentes versions; on peut envoyer, récupérer, échanger des parties de cet arbre pour récupérer telle ou telle version et travailler dessus)
Commit : enregistrement de la version, elle est assortie d'un commentaire indiquant quel changement apporté
(faire des fichiers .md à écrire "en markdown")
Pour faciliter la traçabilité, organiser au maximum le fichier en modules, en lignes (codes) et séparer les phases de modification de forme et de fond pour des petits commits logiques et bien documentés dans la partie commentaire
**Github** plateforme logicielle ouverte, la plus up-to-date
**Gitlab** instances institutionnelles de plateformes logicielles Git
### Les étiquettes et les logiciels d’indexation
Moteur de recherche de bureau : **DocFetcher**
Logiciel **Exiftool** pour voir et rajouter des métadonnées sur des fichiers images (notamment des mots clés que DocFetcher pourra retrouver)
Dans un fichier texte en Markdown : highlighter ces mots clés dans le texte par la balise <!/--étiquette --> <!--étiquette -->
### Exercices module 1
1. Fonction blame ou history accessible quand fichier ouvert. Sinon, faire graph
2. Reste la dernière ligne à formatter
3. Journal de bord
## Module 2
Choix de l'environnement R, Rstudio (car installation préexistante; besoins par ailleurs)
### Exercice 1
Pas facile sous Gitlab.
1. accès possible au fichier toy-documentR.Rmd
2. editing possible
3. commit possible
mais
1. je ne comprends pas comment le commit reste "user-specific" et ne se rajoute pas à l'arborescence commune des modifications/ ne change pas le fichier commun
2. maitrise pas l'interface gitlab : pas accès à "display rendered file" while editing the toy-documentR.Rmd file
3. pas de bouton knit trouvé
Ai fait sous Rstudio à côté pour vérifier le rendering en pdf (fichier [refcard Rmarkdown](https://www.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/courseware/2bfe60a86fed4994b5493a220c38eb69/13f6fd96266746a0bd9d717a12f1f835/4?activate_block_id=block-v1%3Ainria%2B41016%2Bself-paced%2Btype%40vertical%2Bblock%4089c7893cb5aa4644b06569c65945d4d9) bien utile)
### Exercice 2
Fait directement dans Rstudio. (cours Pouzat_YRLS_20170516 et R reference card - Introductory statistics by Anthony Tanbakuchi bien utile)
### Exercice 3
Ai fait directement dans Rstudio avec la fonction plot et la fonction hist.
Pas compris comment changer le format des axes et rajouter les axes secondaires.
Pas compris la nature de la deuxième figure, son paramétrage (ne correspond pas à l'output de hist)
test # Partie 1
\ No newline at end of file
## Sous-partie 1 : texte
Une phrase sans rien
*Une phrase en italique*
**Une phrase en gras**
Un lien vers [fun-mooc.fr](https://www.fun-mooc.fr/)
Une ligne de `code`
## Sous-partie 2 : listes
Liste à puce
- item
- sous-item
- sous-item
- item
- item
Liste numérotée
1. item
2. item
3. item
## Sous-partie 3 : code
```
# Extrait de code
```
--- ---
title: "Votre titre" title: "A propos du calcul de pi"
author: "Votre nom" author: "Arnaud Legrand"
date: "La date du jour" date: "25 juin 2018"
output: html_document output: html_document
--- ---
...@@ -10,24 +10,42 @@ output: html_document ...@@ -10,24 +10,42 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications # En demandant à la lib maths
Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez <http://rmarkdown.rstudio.com>. Mon ordinateur m'indique que $\pi$ vaut *approximativement*
Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: ```{r pi}
pi
```
# En utilisant la méthode des aiguilles de Buffon
Mais calculé avec la **méthode** des [aiguilles de Buffon](https://fr.wikipedia.org/wiki/Aiguille_de_Buffon), on obtiendrait comme **approximation** :
```{r cars} ```{r buffon}
summary(cars) set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: # Avec un argument "fréquentiel" de surface
```{r pressure, echo=FALSE} Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d’appel à la fonction sinus se base sur le fait que si $X$ $\sim$ $U(0,1)$ et $Y$ $\sim$ $U(0,1)$ alors $P$[$X^2$ + $Y^2$ $\le$ 1] = $\pi$/4 (voir [Méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80)). Le code suivant illustre ce fait:
plot(pressure)
```{r Carlo}
set.seed(42)
N = 1000
df = data.frame(X = runif(N), Y = runif(N))
df$Accept = (df$X**2 + df$Y**2 <=1)
library(ggplot2)
ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
``` ```
Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. Il est alors aisé d’obtenir une approximation (pas terrible) de $\pi$ en comptant combien de fois, en moyenne, $X^2$ +$Y^2$ est inférieur à 1:
Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. ```{r mean}
4*mean(df$Accept)
```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.
--- ---
title: "Votre titre" title: "MOOC_RR-Module2-Exercice2.Rmd"
author: "Votre nom" author: "S. Guyomarch"
date: "La date du jour" date: "13/04/2020"
output: html_document output:
pdf_document: default
html_document: default
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications # "Importer les données"
Ici les données sont toutes du même type numérique donc peuvent être stockées dans un vecteur ('c') qu'on va appeler x:
```{r importvalues}
x = c(14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0)
```
Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez <http://rmarkdown.rstudio.com>. Remarque: j'ai récupéré les données par copier-coller à partir de l'énoncé. Noter le marqueur des décimales est un ".".
Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: On vérifie en affichant x:
```{r cars} ```{r displayx}
summary(cars) x
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: Remarque : il faut bien lancer le chunk de code précédent qui définit x avant d'executer ce second chunk, d'affichage.
# Calcul de la moyenne et de l'écart-type, le min, la médiane et le max des données précédentes
Voir la refcard "R Reference Card - Introductory Statistics" de Anthony Tanbakuchi
```{r pressure, echo=FALSE} Calcul de la moyenne des nombres contenus dans le vecteur x:
plot(pressure) ```{r mean}
mean (x)
``` ```
Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. Calcul de l'écart-type des nombres contenus dans le vecteur x:
```{r stddev}
sd (x)
```
Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. Calcul du minimum des nombres contenus dans le vecteur x:
```{r min}
min (x)
```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. Calcul du maximum des nombres contenus dans le vecteur x:
```{r max}
max (x)
```
Calcul de la médiane des nombres contenus dans le vecteur x:
```{r median}
median (x)
```
\ No newline at end of file
--- ---
title: "Votre titre" title: "MOOC_RR-Module2-Exo3.Rmd"
author: "Votre nom" author: "S. Guyomarch"
date: "La date du jour" date: "13/04/2020"
output: html_document output: pdf_document
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications # "Importer les données"
Ici les données sont toutes du même type numérique donc peuvent être stockées dans un vecteur ('c') qu'on va appeler données :
```{r importvalues}
données = c(14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0)
```
Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez <http://rmarkdown.rstudio.com>. Remarque: j'ai récupéré les données par copier-coller à partir de l'énoncé. Noter le marqueur des décimales est un ".".
Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: On vérifie en affichant "données":
```{r cars} ```{r displaydonnées}
summary(cars) données
``` ```
Et on peut aussi aisément inclure des figures. Par exemple:
```{r pressure, echo=FALSE} # Représentation graphique des données
plot(pressure)
## Représentation graphique simple: fonction plot (**séquence plot**)
```{r plotline}
plot(données, type = "l", col = "blue")
``` ```
Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. Les données (valeurs de chaque argument successif dans le vecteur "données") sont représentées en ordonnée, en fonction de leur n°d'index dans "données" sur l'axe des abcisses.
Remarque : dans le morceau de code on peut rajouter l'indication `echo = FALSE` pour ne pas que le morceau de code apparaissent dans le document knitted, seulement son résultat.
Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. Remarque 2 : on peut donner un nom au graphique avec 'y = plot(données)' ou (équivalent) 'y <- plot(données)', si on veut le réutiliser dans la suite.
Remarque 3 : le type = "l" indique un format en ligne, le col = "blue" la couleur (voir les arguments/options de la fonction plot)
# Histogramme de distribution (**histogramme**)
```{r histogramme}
hist(données, col = "blue", xlim = c(0,25), ylim = c(0,25))
```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.