mirror of
https://app-learninglab.inria.fr/moocrr/gitlab/da84ababf0696af51bddad556af86353/mooc-rr.git
synced 2026-06-17 09:35:24 +02:00
Initial commit
This commit is contained in:
commit
d96ef2a19c
47 changed files with 5880 additions and 0 deletions
1
journal/Readme.md
Normal file
1
journal/Readme.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Espace réservé au journal de bord du Mooc
|
||||
1
module1/README.md
Normal file
1
module1/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Module 1
|
||||
1
module2/README.md
Normal file
1
module2/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Module 2
|
||||
BIN
module2/exo1/cars.png
Normal file
BIN
module2/exo1/cars.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 6.5 KiB |
BIN
module2/exo1/cosxsx.png
Normal file
BIN
module2/exo1/cosxsx.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
34
module2/exo1/toy_document.Rmd
Normal file
34
module2/exo1/toy_document.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
86
module2/exo1/toy_document_orgmode_R.org
Normal file
86
module2/exo1/toy_document_orgmode_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module2/exo1/toy_document_orgmode_python.org
Normal file
98
module2/exo1/toy_document_orgmode_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
25
module2/exo1/toy_notebook.ipynb
Normal file
25
module2/exo1/toy_notebook.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
34
module2/exo2/exercice.Rmd
Normal file
34
module2/exo2/exercice.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
25
module2/exo2/exercice.ipynb
Normal file
25
module2/exo2/exercice.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
86
module2/exo2/exercice_R.org
Normal file
86
module2/exo2/exercice_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module2/exo2/exercice_python.org
Normal file
98
module2/exo2/exercice_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
34
module2/exo3/exercice.Rmd
Normal file
34
module2/exo3/exercice.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
25
module2/exo3/exercice.ipynb
Normal file
25
module2/exo3/exercice.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
86
module2/exo3/exercice_R.org
Normal file
86
module2/exo3/exercice_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module2/exo3/exercice_python.org
Normal file
98
module2/exo3/exercice_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
34
module2/exo4/exercice.Rmd
Normal file
34
module2/exo4/exercice.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
25
module2/exo4/exercice.ipynb
Normal file
25
module2/exo4/exercice.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
86
module2/exo4/exercice_R.org
Normal file
86
module2/exo4/exercice_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module2/exo4/exercice_python.org
Normal file
98
module2/exo4/exercice_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
112
module2/exo5/exo5.Rmd
Normal file
112
module2/exo5/exo5.Rmd
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
---
|
||||
title: "Analyse du risque de défaillance des joints toriques de la navette Challenger"
|
||||
author: "Arnaud Legrand"
|
||||
date: "28 juin 2018"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
Le 27 Janvier 1986, veille du décollage de la navette /Challenger/, eu
|
||||
lieu une télé-conférence de trois heures entre les ingénieurs de la
|
||||
Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La
|
||||
discussion portait principalement sur les conséquences de la
|
||||
température prévue au moment du décollage de 31°F (juste en dessous de
|
||||
0°C) sur le succès du vol et en particulier sur la performance des
|
||||
joints toriques utilisés dans les moteurs. En effet, aucun test
|
||||
n'avait été effectué à cette température.
|
||||
|
||||
L'étude qui suit reprend donc une partie des analyses effectuées cette
|
||||
nuit là et dont l'objectif était d'évaluer l'influence potentielle de
|
||||
la température et de la pression à laquelle sont soumis les joints
|
||||
toriques sur leur probabilité de dysfonctionnement. Pour cela, nous
|
||||
disposons des résultats des expériences réalisées par les ingénieurs
|
||||
de la NASA durant les 6 années précédant le lancement de la navette
|
||||
Challenger.
|
||||
|
||||
# Chargement des données
|
||||
Nous commençons donc par charger ces données:
|
||||
|
||||
```{r}
|
||||
data = read.csv("shuttle.csv",header=T)
|
||||
data
|
||||
```
|
||||
|
||||
Le jeu de données nous indique la date de l'essai, le nombre de joints
|
||||
toriques mesurés (il y en a 6 sur le lançeur principal), la
|
||||
température (en Farenheit) et la pression (en psi), et enfin le
|
||||
nombre de dysfonctionnements relevés.
|
||||
|
||||
# Inspection graphique des données
|
||||
Les vols où aucun incident n'est relevé n'apportant aucun information
|
||||
sur l'influence de la température ou de la pression sur les
|
||||
dysfonctionnements, nous nous concentrons sur les expériences où au
|
||||
moins un joint a été défectueux.
|
||||
|
||||
```{r}
|
||||
data = data[data$Malfunction>0,]
|
||||
data
|
||||
```
|
||||
|
||||
Très bien, nous avons une variabilité de température importante mais
|
||||
la pression est quasiment toujours égale à 200, ce qui devrait
|
||||
simplifier l'analyse.
|
||||
|
||||
Comment la fréquence d'échecs varie-t-elle avec la température ?
|
||||
```{r}
|
||||
plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))
|
||||
```
|
||||
|
||||
À première vue, ce n'est pas flagrant mais bon, essayons quand même
|
||||
d'estimer l'impact de la température $t$ sur la probabilité de
|
||||
dysfonctionnements d'un joint.
|
||||
|
||||
# Estimation de l'influence de la température
|
||||
|
||||
Supposons que chacun des 6 joints toriques est endommagé avec la même
|
||||
probabilité et indépendamment des autres et que cette probabilité ne
|
||||
dépend que de la température. Si on note $p(t)$ cette probabilité, le
|
||||
nombre de joints $D$ dysfonctionnant lorsque l'on effectue le vol à
|
||||
température $t$ suit une loi binomiale de paramètre $n=6$ et
|
||||
$p=p(t)$. Pour relier $p(t)$ à $t$, on va donc effectuer une
|
||||
régression logistique.
|
||||
|
||||
```{r}
|
||||
logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count,
|
||||
family=binomial(link='logit'))
|
||||
summary(logistic_reg)
|
||||
```
|
||||
|
||||
L'estimateur le plus probable du paramètre de température est 0.001416
|
||||
et l'erreur standard de cet estimateur est de 0.049, autrement dit on
|
||||
ne peut pas distinguer d'impact particulier et il faut prendre nos
|
||||
estimations avec des pincettes.
|
||||
|
||||
# Estimation de la probabilité de dysfonctionnant des joints toriques
|
||||
La température prévue le jour du décollage est de 31°F. Essayons
|
||||
d'estimer la probabilité de dysfonctionnement des joints toriques à
|
||||
cette température à partir du modèle que nous venons de construire:
|
||||
|
||||
```{r}
|
||||
# shuttle=shuttle[shuttle$r!=0,]
|
||||
tempv = seq(from=30, to=90, by = .5)
|
||||
rmv <- predict(logistic_reg,list(Temperature=tempv),type="response")
|
||||
plot(tempv,rmv,type="l",ylim=c(0,1))
|
||||
points(data=data, Malfunction/Count ~ Temperature)
|
||||
```
|
||||
|
||||
La probabilité d'échec des joints toriques est donc d'environ 0.2
|
||||
(comme dans les essais précédents) et comme on pouvait s'attendre au
|
||||
vu des données initiales, la température n'a pas d'impact notable. La
|
||||
probabilité que tous les joints toriques dysfonctionnent est de
|
||||
$0.2^6 \approx 6.4\times10^{-5}$. Tout est sous contrôle, le décollage
|
||||
peut donc avoir lieu demain comme prévu.
|
||||
|
||||
Seulement, le lendemain, la navette Challenger explosera et emportera
|
||||
avec elle ses sept membres d'équipages. L'opinion publique est
|
||||
fortement touchée et lors de l'enquête qui suivra, la fiabilité des
|
||||
joints toriques sera directement mise en cause. Au delà des problèmes
|
||||
de communication interne à la NASA qui sont pour beaucoup dans ce
|
||||
fiasco, l'analyse précédente comporte (au moins) un petit
|
||||
problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette
|
||||
analyse et de regarder ce jeu de données sous tous les angles afin
|
||||
d'expliquer ce qui ne va pas.
|
||||
|
||||
717
module2/exo5/exo5.ipynb
Normal file
717
module2/exo5/exo5.ipynb
Normal file
File diff suppressed because one or more lines are too long
207
module2/exo5/exo5_R.org
Normal file
207
module2/exo5/exo5_R.org
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
#+TITLE: Analyse du risque de défaillance des joints toriques de la navette Challenger
|
||||
#+AUTHOR: Arnaud Legrand
|
||||
#+LANGUAGE: fr
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
|
||||
#+LATEX_HEADER: \usepackage[T1]{fontenc}
|
||||
#+LATEX_HEADER: \usepackage[a4paper,margin=.8in]{geometry}
|
||||
#+LATEX_HEADER: \usepackage[french]{babel}
|
||||
|
||||
# #+PROPERTY: header-args :session :exports both
|
||||
|
||||
Le 27 Janvier 1986, veille du décollage de la navette /Challenger/, eu
|
||||
lieu une télé-conférence de trois heures entre les ingénieurs de la
|
||||
Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La
|
||||
discussion portait principalement sur les conséquences de la
|
||||
température prévue au moment du décollage de 31°F (juste en dessous de
|
||||
0°C) sur le succès du vol et en particulier sur la performance des
|
||||
joints toriques utilisés dans les moteurs. En effet, aucun test
|
||||
n'avait été effectué à cette température.
|
||||
|
||||
L'étude qui suit reprend donc une partie des analyses effectuées cette
|
||||
nuit là et dont l'objectif était d'évaluer l'influence potentielle de
|
||||
la température et de la pression à laquelle sont soumis les joints
|
||||
toriques sur leur probabilité de dysfonctionnement. Pour cela, nous
|
||||
disposons des résultats des expériences réalisées par les ingénieurs
|
||||
de la NASA durant les 6 années précédant le lancement de la navette
|
||||
Challenger.
|
||||
|
||||
* Chargement des données
|
||||
Nous commençons donc par charger ces données:
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
data = read.csv("shuttle.csv",header=T)
|
||||
data
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
Date Count Temperature Pressure Malfunction
|
||||
1 4/12/81 6 66 50 0
|
||||
2 11/12/81 6 70 50 1
|
||||
3 3/22/82 6 69 50 0
|
||||
4 11/11/82 6 68 50 0
|
||||
5 4/04/83 6 67 50 0
|
||||
6 6/18/82 6 72 50 0
|
||||
7 8/30/83 6 73 100 0
|
||||
8 11/28/83 6 70 100 0
|
||||
9 2/03/84 6 57 200 1
|
||||
10 4/06/84 6 63 200 1
|
||||
11 8/30/84 6 70 200 1
|
||||
12 10/05/84 6 78 200 0
|
||||
13 11/08/84 6 67 200 0
|
||||
14 1/24/85 6 53 200 2
|
||||
15 4/12/85 6 67 200 0
|
||||
16 4/29/85 6 75 200 0
|
||||
17 6/17/85 6 70 200 0
|
||||
18 7/2903/85 6 81 200 0
|
||||
19 8/27/85 6 76 200 0
|
||||
20 10/03/85 6 79 200 0
|
||||
21 10/30/85 6 75 200 2
|
||||
22 11/26/85 6 76 200 0
|
||||
23 1/12/86 6 58 200 1
|
||||
#+end_example
|
||||
|
||||
Le jeu de données nous indique la date de l'essai, le nombre de joints
|
||||
toriques mesurés (il y en a 6 sur le lançeur principal), la
|
||||
température (en Fahrenheit) et la pression (en psi), et enfin le
|
||||
nombre de dysfonctionnements relevés.
|
||||
|
||||
* Inspection graphique des données
|
||||
Les vols où aucun incident n'est relevé n'apportant aucune information
|
||||
sur l'influence de la température ou de la pression sur les
|
||||
dysfonctionnements, nous nous concentrons sur les expériences où au
|
||||
moins un joint a été défectueux.
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
data = data[data$Malfunction>0,]
|
||||
data
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Date Count Temperature Pressure Malfunction
|
||||
: 2 11/12/81 6 70 50 1
|
||||
: 9 2/03/84 6 57 200 1
|
||||
: 10 4/06/84 6 63 200 1
|
||||
: 11 8/30/84 6 70 200 1
|
||||
: 14 1/24/85 6 53 200 2
|
||||
: 21 10/30/85 6 75 200 2
|
||||
: 23 1/12/86 6 58 200 1
|
||||
|
||||
Très bien, nous avons une variabilité de température importante mais
|
||||
la pression est quasiment toujours égale à 200, ce qui devrait
|
||||
simplifier l'analyse.
|
||||
|
||||
Comment la fréquence d'échecs varie-t-elle avec la température ?
|
||||
#+begin_src R :results output graphics :file "freq_temp.png" :exports both :width 600 :height 400 :session *R*
|
||||
plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:freq_temp.png]]
|
||||
|
||||
À première vue, ce n'est pas flagrant mais bon, essayons quand même
|
||||
d'estimer l'impact de la température $t$ sur la probabilité de
|
||||
dysfonctionnements d'un joint.
|
||||
|
||||
* Estimation de l'influence de la température
|
||||
|
||||
Supposons que chacun des 6 joints toriques est endommagé avec la même
|
||||
probabilité et indépendamment des autres et que cette probabilité ne
|
||||
dépend que de la température. Si on note $p(t)$ cette probabilité, le
|
||||
nombre de joints $D$ dysfonctionnant lorsque l'on effectue le vol à
|
||||
température $t$ suit une loi binomiale de paramètre $n=6$ et
|
||||
$p=p(t)$. Pour relier $p(t)$ à $t$, on va donc effectuer une
|
||||
régression logistique.
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count,
|
||||
family=binomial(link='logit'))
|
||||
summary(logistic_reg)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
|
||||
Call:
|
||||
glm(formula = Malfunction/Count ~ Temperature, family = binomial(link = "logit"),
|
||||
data = data, weights = Count)
|
||||
|
||||
Deviance Residuals:
|
||||
2 9 10 11 14 21 23
|
||||
-0.3015 -0.2836 -0.2919 -0.3015 0.6891 0.6560 -0.2850
|
||||
|
||||
Coefficients:
|
||||
Estimate Std. Error z value Pr(>|z|)
|
||||
(Intercept) -1.389528 3.195752 -0.435 0.664
|
||||
Temperature 0.001416 0.049773 0.028 0.977
|
||||
|
||||
(Dispersion parameter for binomial family taken to be 1)
|
||||
|
||||
Null deviance: 1.3347 on 6 degrees of freedom
|
||||
Residual deviance: 1.3339 on 5 degrees of freedom
|
||||
AIC: 18.894
|
||||
|
||||
Number of Fisher Scoring iterations: 4
|
||||
#+end_example
|
||||
|
||||
L'estimateur le plus probable du paramètre de température est 0.001416
|
||||
et l'erreur standard de cet estimateur est de 0.049, autrement dit on
|
||||
ne peut pas distinguer d'impact particulier et il faut prendre nos
|
||||
estimations avec des pincettes.
|
||||
|
||||
* Estimation de la probabilité de dysfonctionnant des joints toriques
|
||||
La température prévue le jour du décollage est de 31°F. Essayons
|
||||
d'estimer la probabilité de dysfonctionnement des joints toriques à
|
||||
cette température à partir du modèle que nous venons de construire:
|
||||
|
||||
#+begin_src R :results output graphics :file "proba_estimate.png" :exports both :width 600 :height 400 :session *R*
|
||||
# shuttle=shuttle[shuttle$r!=0,]
|
||||
tempv = seq(from=30, to=90, by = .5)
|
||||
rmv <- predict(logistic_reg,list(Temperature=tempv),type="response")
|
||||
plot(tempv,rmv,type="l",ylim=c(0,1))
|
||||
points(data=data, Malfunction/Count ~ Temperature)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:proba_estimate.png]]
|
||||
|
||||
Comme on pouvait s'attendre au vu des données initiales, la
|
||||
température n'a pas d'impact notable sur la probabilité d'échec des
|
||||
joints toriques. Elle sera d'environ 0.2, comme dans les essais
|
||||
précédents où nous il y a eu défaillance d'au moins un joint. Revenons
|
||||
à l'ensemble des données initiales pour estimer la probabilité de
|
||||
défaillance d'un joint:
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
data_full = read.csv("shuttle.csv",header=T)
|
||||
sum(data_full$Malfunction)/sum(data_full$Count)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] 0.06521739
|
||||
|
||||
Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe
|
||||
un joint primaire un joint secondaire sur chacune des trois parties du
|
||||
lançeur, la probabilité de défaillance des deux joints d'un lançeur
|
||||
est de $p^2 \approx 0.00425$. La probabilité de défaillance d'un des
|
||||
lançeur est donc de $1-(1-p^2)^3 \approx 1.2%$. Ça serait vraiment
|
||||
pas de chance... Tout est sous contrôle, le décollage peut donc avoir
|
||||
lieu demain comme prévu.
|
||||
|
||||
Seulement, le lendemain, la navette Challenger explosera et emportera
|
||||
avec elle ses sept membres d'équipages. L'opinion publique est
|
||||
fortement touchée et lors de l'enquête qui suivra, la fiabilité des
|
||||
joints toriques sera directement mise en cause. Au delà des problèmes
|
||||
de communication interne à la NASA qui sont pour beaucoup dans ce
|
||||
fiasco, l'analyse précédente comporte (au moins) un petit
|
||||
problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette
|
||||
analyse et de regarder ce jeu de données sous tous les angles afin
|
||||
d'expliquer ce qui ne va pas.
|
||||
|
||||
222
module2/exo5/exo5_python.org
Normal file
222
module2/exo5/exo5_python.org
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
#+TITLE: Analyse du risque de défaillance des joints toriques de la navette Challenger
|
||||
#+AUTHOR: Arnaud Legrand
|
||||
#+LANGUAGE: fr
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
#+LATEX_HEADER: \usepackage{a4}
|
||||
#+LATEX_HEADER: \usepackage[french]{babel}
|
||||
|
||||
# #+PROPERTY: header-args :session :exports both
|
||||
|
||||
Le 27 Janvier 1986, veille du décollage de la navette /Challenger/, eu
|
||||
lieu une télé-conférence de trois heures entre les ingénieurs de la
|
||||
Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La
|
||||
discussion portait principalement sur les conséquences de la
|
||||
température prévue au moment du décollage de 31°F (juste en dessous de
|
||||
0°C) sur le succès du vol et en particulier sur la performance des
|
||||
joints toriques utilisés dans les moteurs. En effet, aucun test
|
||||
n'avait été effectué à cette température.
|
||||
|
||||
L'étude qui suit reprend donc une partie des analyses effectuées cette
|
||||
nuit là et dont l'objectif était d'évaluer l'influence potentielle de
|
||||
la température et de la pression à laquelle sont soumis les joints
|
||||
toriques sur leur probabilité de dysfonctionnement. Pour cela, nous
|
||||
disposons des résultats des expériences réalisées par les ingénieurs
|
||||
de la NASA durant les 6 années précédant le lancement de la navette
|
||||
Challenger.
|
||||
|
||||
* Chargement des données
|
||||
Nous commençons donc par charger ces données:
|
||||
#+begin_src python :results value :session *python* :exports both
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
data = pd.read_csv("shuttle.csv")
|
||||
data
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
Date Count Temperature Pressure Malfunction
|
||||
0 4/12/81 6 66 50 0
|
||||
1 11/12/81 6 70 50 1
|
||||
2 3/22/82 6 69 50 0
|
||||
3 11/11/82 6 68 50 0
|
||||
4 4/04/83 6 67 50 0
|
||||
5 6/18/82 6 72 50 0
|
||||
6 8/30/83 6 73 100 0
|
||||
7 11/28/83 6 70 100 0
|
||||
8 2/03/84 6 57 200 1
|
||||
9 4/06/84 6 63 200 1
|
||||
10 8/30/84 6 70 200 1
|
||||
11 10/05/84 6 78 200 0
|
||||
12 11/08/84 6 67 200 0
|
||||
13 1/24/85 6 53 200 2
|
||||
14 4/12/85 6 67 200 0
|
||||
15 4/29/85 6 75 200 0
|
||||
16 6/17/85 6 70 200 0
|
||||
17 7/2903/85 6 81 200 0
|
||||
18 8/27/85 6 76 200 0
|
||||
19 10/03/85 6 79 200 0
|
||||
20 10/30/85 6 75 200 2
|
||||
21 11/26/85 6 76 200 0
|
||||
22 1/12/86 6 58 200 1
|
||||
#+end_example
|
||||
|
||||
Le jeu de données nous indique la date de l'essai, le nombre de joints
|
||||
toriques mesurés (il y en a 6 sur le lançeur principal), la
|
||||
température (en Fahrenheit) et la pression (en psi), et enfin le
|
||||
nombre de dysfonctionnements relevés.
|
||||
|
||||
* Inspection graphique des données
|
||||
Les vols où aucun incident n'est relevé n'apportant aucune information
|
||||
sur l'influence de la température ou de la pression sur les
|
||||
dysfonctionnements, nous nous concentrons sur les expériences où au
|
||||
moins un joint a été défectueux.
|
||||
|
||||
#+begin_src python :results value :session *python* :exports both
|
||||
data = data[data.Malfunction>0]
|
||||
data
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Date Count Temperature Pressure Malfunction
|
||||
: 1 11/12/81 6 70 50 1
|
||||
: 8 2/03/84 6 57 200 1
|
||||
: 9 4/06/84 6 63 200 1
|
||||
: 10 8/30/84 6 70 200 1
|
||||
: 13 1/24/85 6 53 200 2
|
||||
: 20 10/30/85 6 75 200 2
|
||||
: 22 1/12/86 6 58 200 1
|
||||
|
||||
Très bien, nous avons une variabilité de température importante mais
|
||||
la pression est quasiment toujours égale à 200, ce qui devrait
|
||||
simplifier l'analyse.
|
||||
|
||||
Comment la fréquence d'échecs varie-t-elle avec la température ?
|
||||
#+begin_src python :results output file :var matplot_lib_filename="freq_temp_python.png" :exports both :session *python*
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.clf()
|
||||
data["Frequency"]=data.Malfunction/data.Count
|
||||
data.plot(x="Temperature",y="Frequency",kind="scatter",ylim=[0,1])
|
||||
plt.grid(True)
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:freq_temp_python.png]]
|
||||
|
||||
À première vue, ce n'est pas flagrant mais bon, essayons quand même
|
||||
d'estimer l'impact de la température $t$ sur la probabilité de
|
||||
dysfonctionnements d'un joint.
|
||||
|
||||
* Estimation de l'influence de la température
|
||||
|
||||
Supposons que chacun des 6 joints toriques est endommagé avec la même
|
||||
probabilité et indépendamment des autres et que cette probabilité ne
|
||||
dépend que de la température. Si on note $p(t)$ cette probabilité, le
|
||||
nombre de joints $D$ dysfonctionnant lorsque l'on effectue le vol à
|
||||
température $t$ suit une loi binomiale de paramètre $n=6$ et
|
||||
$p=p(t)$. Pour relier $p(t)$ à $t$, on va donc effectuer une
|
||||
régression logistique.
|
||||
|
||||
#+begin_src python :results value :session *python* :exports both
|
||||
import statsmodels.api as sm
|
||||
|
||||
data["Success"]=data.Count-data.Malfunction
|
||||
data["Intercept"]=1
|
||||
|
||||
|
||||
# logit_model=sm.Logit(data["Frequency"],data[["Intercept","Temperature"]]).fit()
|
||||
logmodel=sm.GLM(data['Frequency'], data[['Intercept','Temperature']], family=sm.families.Binomial(sm.families.links.logit)).fit()
|
||||
|
||||
logmodel.summary()
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
Generalized Linear Model Regression Results
|
||||
==============================================================================
|
||||
Dep. Variable: Frequency No. Observations: 7
|
||||
Model: GLM Df Residuals: 5
|
||||
Model Family: Binomial Df Model: 1
|
||||
Link Function: logit Scale: 1.0
|
||||
Method: IRLS Log-Likelihood: -3.6370
|
||||
Date: Fri, 20 Jul 2018 Deviance: 3.3763
|
||||
Time: 16:56:08 Pearson chi2: 0.236
|
||||
No. Iterations: 5
|
||||
===============================================================================
|
||||
coef std err z P>|z| [0.025 0.975]
|
||||
-------------------------------------------------------------------------------
|
||||
Intercept -1.3895 7.828 -0.178 0.859 -16.732 13.953
|
||||
Temperature 0.0014 0.122 0.012 0.991 -0.238 0.240
|
||||
===============================================================================
|
||||
#+end_example
|
||||
|
||||
L'estimateur le plus probable du paramètre de température est 0.0014
|
||||
et l'erreur standard de cet estimateur est de 0.122, autrement dit on
|
||||
ne peut pas distinguer d'impact particulier et il faut prendre nos
|
||||
estimations avec des pincettes.
|
||||
|
||||
* Estimation de la probabilité de dysfonctionnant des joints toriques
|
||||
La température prévue le jour du décollage est de 31°F. Essayons
|
||||
d'estimer la probabilité de dysfonctionnement des joints toriques à
|
||||
cette température à partir du modèle que nous venons de construire:
|
||||
|
||||
#+begin_src python :results output file :var matplot_lib_filename="proba_estimate_python.png" :exports both :session *python*
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
data_pred = pd.DataFrame({'Temperature': np.linspace(start=30, stop=90, num=121), 'Intercept': 1})
|
||||
data_pred['Frequency'] = logmodel.predict(data_pred)
|
||||
data_pred.plot(x="Temperature",y="Frequency",kind="line",ylim=[0,1])
|
||||
plt.scatter(x=data["Temperature"],y=data["Frequency"])
|
||||
plt.grid(True)
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:proba_estimate_python.png]]
|
||||
|
||||
Comme on pouvait s'attendre au vu des données initiales, la
|
||||
température n'a pas d'impact notable sur la probabilité d'échec des
|
||||
joints toriques. Elle sera d'environ 0.2, comme dans les essais
|
||||
précédents où nous il y a eu défaillance d'au moins un joint. Revenons
|
||||
à l'ensemble des données initiales pour estimer la probabilité de
|
||||
défaillance d'un joint:
|
||||
|
||||
#+begin_src python :results output :session *python* :exports both
|
||||
data = pd.read_csv("shuttle.csv")
|
||||
print(np.sum(data.Malfunction)/np.sum(data.Count))
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: 0.06521739130434782
|
||||
|
||||
Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe
|
||||
un joint primaire un joint secondaire sur chacune des trois parties du
|
||||
lançeur, la probabilité de défaillance des deux joints d'un lançeur
|
||||
est de $p^2 \approx 0.00425$. La probabilité de défaillance d'un des
|
||||
lançeur est donc de $1-(1-p^2)^3 \approx 1.2%$. Ça serait vraiment
|
||||
pas de chance... Tout est sous contrôle, le décollage peut donc avoir
|
||||
lieu demain comme prévu.
|
||||
|
||||
Seulement, le lendemain, la navette Challenger explosera et emportera
|
||||
avec elle ses sept membres d'équipages. L'opinion publique est
|
||||
fortement touchée et lors de l'enquête qui suivra, la fiabilité des
|
||||
joints toriques sera directement mise en cause. Au delà des problèmes
|
||||
de communication interne à la NASA qui sont pour beaucoup dans ce
|
||||
fiasco, l'analyse précédente comporte (au moins) un petit
|
||||
problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette
|
||||
analyse et de regarder ce jeu de données sous tous les angles afin
|
||||
d'expliquer ce qui ne va pas.
|
||||
|
||||
BIN
module2/exo5/freq_temp.png
Normal file
BIN
module2/exo5/freq_temp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
BIN
module2/exo5/freq_temp_python.png
Normal file
BIN
module2/exo5/freq_temp_python.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
module2/exo5/proba_estimate.png
Normal file
BIN
module2/exo5/proba_estimate.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.5 KiB |
BIN
module2/exo5/proba_estimate_python.png
Normal file
BIN
module2/exo5/proba_estimate_python.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
24
module2/exo5/shuttle.csv
Normal file
24
module2/exo5/shuttle.csv
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
Date,Count,Temperature,Pressure,Malfunction
|
||||
4/12/81,6,66,50,0
|
||||
11/12/81,6,70,50,1
|
||||
3/22/82,6,69,50,0
|
||||
11/11/82,6,68,50,0
|
||||
4/04/83,6,67,50,0
|
||||
6/18/82,6,72,50,0
|
||||
8/30/83,6,73,100,0
|
||||
11/28/83,6,70,100,0
|
||||
2/03/84,6,57,200,1
|
||||
4/06/84,6,63,200,1
|
||||
8/30/84,6,70,200,1
|
||||
10/05/84,6,78,200,0
|
||||
11/08/84,6,67,200,0
|
||||
1/24/85,6,53,200,2
|
||||
4/12/85,6,67,200,0
|
||||
4/29/85,6,75,200,0
|
||||
6/17/85,6,70,200,0
|
||||
7/2903/85,6,81,200,0
|
||||
8/27/85,6,76,200,0
|
||||
10/03/85,6,79,200,0
|
||||
10/30/85,6,75,200,2
|
||||
11/26/85,6,76,200,0
|
||||
1/12/86,6,58,200,1
|
||||
|
1
module3/README.md
Normal file
1
module3/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Module 3
|
||||
173
module3/exo1/analyse-syndrome-grippal.Rmd
Normal file
173
module3/exo1/analyse-syndrome-grippal.Rmd
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
---
|
||||
title: "Analyse de l'incidence du syndrôme grippal"
|
||||
author: "Konrad Hinsen"
|
||||
output:
|
||||
pdf_document:
|
||||
toc: true
|
||||
html_document:
|
||||
toc: true
|
||||
theme: journal
|
||||
documentclass: article
|
||||
classoption: a4paper
|
||||
header-includes:
|
||||
- \usepackage[french]{babel}
|
||||
- \usepackage[upright]{fourier}
|
||||
- \hypersetup{colorlinks=true,pagebackref=true}
|
||||
---
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Préparation des données
|
||||
|
||||
Les données de l'incidence du syndrome grippal sont disponibles du site Web du [Réseau Sentinelles](http://www.sentiweb.fr/). Nous les récupérons en format CSV dont chaque ligne correspond à une semaine de la période demandée. Les dates de départ et de fin sont codées dans l'URL: "wstart=198501" pour semaine 1 de l'année 1985 et "wend=201730" pour semaine 30 de l'année 2017. L'URL complet est:
|
||||
```{r}
|
||||
data_url = "http://websenti.u707.jussieu.fr/sentiweb/api/data/rest/getIncidenceFlat?indicator=3&wstart=198501&wend=201730&geo=PAY1&$format=csv"
|
||||
```
|
||||
|
||||
Voici l'explication des colonnes donnée sur le site d'origine:
|
||||
|
||||
| Nom de colonne | Libellé de colonne |
|
||||
|----------------+-----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `week` | Semaine calendaire (ISO 8601) |
|
||||
| `indicator` | Code de l'indicateur de surveillance |
|
||||
| `inc` | Estimation de l'incidence de consultations en nombre de cas |
|
||||
| `inc_low` | Estimation de la borne inférieure de l'IC95% du nombre de cas de consultation |
|
||||
| `inc_up` | Estimation de la borne supérieure de l'IC95% du nombre de cas de consultation |
|
||||
| `inc100` | Estimation du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| `inc100_low` | Estimation de la borne inférieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| `inc100_up` | Estimation de la borne supérieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| `geo_insee` | Code de la zone géographique concernée (Code INSEE) http://www.insee.fr/fr/methodes/nomenclatures/cog/ |
|
||||
| `geo_name` | Libellé de la zone géographique (ce libellé peut être modifié sans préavis) |
|
||||
|
||||
### Téléchargement
|
||||
```{r}
|
||||
data = read.csv(data_url, skip=1)
|
||||
```
|
||||
|
||||
Regardons ce que nous avons obtenu:
|
||||
```{r}
|
||||
head(data)
|
||||
tail(data)
|
||||
```
|
||||
|
||||
Y a-t-il des points manquants dans nos données ?
|
||||
```{r}
|
||||
na_records = apply(data, 1, function (x) any(is.na(x)))
|
||||
data[na_records,]
|
||||
```
|
||||
|
||||
Les deux colonnes qui nous intéressent sont `week` et `inc`. Vérifions leurs classes:
|
||||
```{r}
|
||||
class(data$week)
|
||||
class(data$inc)
|
||||
```
|
||||
|
||||
La colonne `inc` est de classe `factor` à cause du point manquant dont la valeur de `inc` est `'-'`. Pour faciliter le traîtement ultérieur, nous relisons les données en demandant à `R` de traiter cette valeur comme `na`:
|
||||
```{r}
|
||||
data = read.csv(data_url, skip=1, na.strings="-")
|
||||
head(data)
|
||||
```
|
||||
|
||||
Maintenant les deux colonnes `week` et `inc` sont de classe `integer`:
|
||||
```{r}
|
||||
class(data$week)
|
||||
class(data$inc)
|
||||
```
|
||||
|
||||
### Conversion des numéros de semaine
|
||||
|
||||
La gestion des dates est toujours un sujet délicat. Il y a un grand nombre de conventions différentes qu'il ne faut pas confondre. Notre jeux de données utilise un format que peu de logiciels savent traiter: les semaines en format [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601). En `R`, il est géré par la bibliothèque [parsedate](https://cran.r-project.org/package=parsedate):
|
||||
|
||||
```{r}
|
||||
library(parsedate)
|
||||
```
|
||||
|
||||
Pour faciliter le traitement suivant, nous remplaçons ces semaines par les dates qui correspondent aux lundis. Voici une petite fonction qui fait la conversion pour une seule valeur:
|
||||
|
||||
```{r}
|
||||
convert_week = function(w) {
|
||||
ws = paste(w)
|
||||
iso = paste0(substring(ws, 1, 4), "-W", substring(ws, 5, 6))
|
||||
as.character(parse_iso_8601(iso))
|
||||
}
|
||||
```
|
||||
|
||||
Nous appliquons cette fonction à tous les points, créant une nouvelle colonne `date` dans notre jeu de données:
|
||||
```{r}
|
||||
data$date = as.Date(sapply(data$week, convert_week))
|
||||
```
|
||||
|
||||
Vérifions qu'elle est de classe `Date`:
|
||||
```{r}
|
||||
class(data$date)
|
||||
```
|
||||
|
||||
Les points sont dans l'ordre chronologique inverse, il est donc utile de les trier:
|
||||
```{r}
|
||||
data = data[order(data$date),]
|
||||
```
|
||||
|
||||
C'est l'occasion pour faire une vérification: nos dates doivent être séparées d'exactement sept jours:
|
||||
```{r}
|
||||
all(diff(data$date) == 7)
|
||||
```
|
||||
|
||||
### Inspection
|
||||
|
||||
Regardons enfin à quoi ressemblent nos données !
|
||||
```{r}
|
||||
plot(data$date, data$inc, type="l", xlab="Date", ylab="Incidence hebdomadaire")
|
||||
```
|
||||
|
||||
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}
|
||||
with(tail(data, 200), plot(date, inc, type="l", xlab="Date", ylab="Incidence hebdomadaire"))
|
||||
```
|
||||
|
||||
## L'incidence annuelle
|
||||
|
||||
### Calcul
|
||||
|
||||
Étant donné que le pic de l'épidémie se situe en hiver, à cheval entre deux années civiles, nous définissons la période de référence entre deux minima de l'incidence, du 1er août de l'année $N$ au 1er août de l'année $N+1$. Nous mettons l'année $N+1$ comme étiquette sur cette année décalée, car le pic de l'épidémie est toujours au début de l'année $N+1$. Comme l'incidence de syndrome grippal est très faible en été, cette modification ne risque pas de fausser nos conclusions.
|
||||
L'argument `na.rm=True` dans la sommation précise qu'il faut supprimer les points manquants. Ce choix est raisonnable car il n'y a qu'un seul point manquant, dont l'impact ne peut pas être très fort.
|
||||
```{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)
|
||||
}
|
||||
```
|
||||
|
||||
Nous devons aussi faire attention aux premières et dernières années de notre jeux de données. Les données commencent en janvier 1985, ce qui ne permet pas de quantifier complètement le pic attribué à cette année. Nous l'enlevons donc de notre analyse. Par contre, les données se terminent en été 2017, peu avant le 1er août, ce qui nous permet d'inclure cette année.
|
||||
```{r}
|
||||
annees = 1986:2017
|
||||
```
|
||||
|
||||
Nous créons un nouveau jeu de données pour l'incidence annuelle, en applicant la fonction `pic_annuel` à chaque année:
|
||||
```{r}
|
||||
inc_annuelle = data.frame(annee = annees,
|
||||
incidence = sapply(annees, pic_annuel))
|
||||
head(inc_annuelle)
|
||||
```
|
||||
|
||||
### Inspection
|
||||
|
||||
Voici les incidences annuelles en graphique:
|
||||
```{r}
|
||||
plot(inc_annuelle, type="p", xlab="Année", ylab="Incidence annuelle")
|
||||
```
|
||||
|
||||
### Identification des épidémies les plus fortes
|
||||
|
||||
Une liste triée par ordre décroissant d'incidence annuelle permet de plus facilement repérer les valeurs les plus élevées:
|
||||
```{r}
|
||||
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.
|
||||
```{r}
|
||||
hist(inc_annuelle$incidence, breaks=10, xlab="Incidence annuelle", ylab="Nb d'observations", main="")
|
||||
```
|
||||
2534
module3/exo1/analyse-syndrome-grippal.ipynb
Normal file
2534
module3/exo1/analyse-syndrome-grippal.ipynb
Normal file
File diff suppressed because one or more lines are too long
207
module3/exo1/analyse-syndrome-grippal.org
Normal file
207
module3/exo1/analyse-syndrome-grippal.org
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
#+TITLE: Incidence du syndrôme grippal
|
||||
#+LANGUAGE: fr
|
||||
#+OPTIONS: *:nil num:1 toc:t
|
||||
|
||||
# #+HTML_HEAD: <link rel="stylesheet" title="Standard" href="http://orgmode.org/worg/style/worg.css" type="text/css" />
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
#+PROPERTY: header-args :session :exports both
|
||||
|
||||
* Préface
|
||||
|
||||
Pour exécuter le code de cette analyse, il faut disposer des logiciels suivants:
|
||||
|
||||
** Emacs 25 ou 26
|
||||
Une version plus ancienne d'Emacs devrait suffire, mais en ce cas il est prudent d'installer une version récente (9.x) d'org-mode.
|
||||
** Python 3.6
|
||||
Nous utilisons le traitement de dates en format ISO 8601, qui a été implémenté en Python seulement avec la version 3.6.
|
||||
|
||||
#+BEGIN_SRC python :results output
|
||||
import sys
|
||||
if sys.version_info.major < 3 or sys.version_info.minor < 6:
|
||||
print("Veuillez utiliser Python 3.6 (ou plus) !")
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC emacs-lisp :results output
|
||||
(unless (featurep 'ob-python)
|
||||
(print "Veuillez activer python dans org-babel (org-babel-do-languages) !"))
|
||||
#+END_SRC
|
||||
|
||||
** R 3.4
|
||||
Nous n'utilisons que des fonctionnalités de base du langage R, une version antérieure devrait suffire.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp :results output
|
||||
(unless (featurep 'ob-R)
|
||||
(print "Veuillez activer R dans org-babel (org-babel-do-languages) !"))
|
||||
#+END_SRC
|
||||
|
||||
* Préparation des données
|
||||
|
||||
Les données de l'incidence du syndrome grippal sont disponibles du site Web du [[http://www.sentiweb.fr/][Réseau Sentinelles]]. Nous les récupérons en format CSV dont chaque ligne correspond à une semaine de la période demandée. Les dates de départ et de fin sont codées dans l'URL: "wstart=198501" pour semaine 1 de l'année 1985 et "wend=201730" pour semaine 30 de l'année 2017. L'URL complet est:
|
||||
#+NAME: data-url
|
||||
http://websenti.u707.jussieu.fr/sentiweb/api/data/rest/getIncidenceFlat?indicator=3&wstart=198501&wend=201730&geo=PAY1&$format=csv
|
||||
|
||||
Voici l'explication des colonnes donnée sur le site d'origine:
|
||||
|
||||
| Nom de colonne | Libellé de colonne |
|
||||
|----------------+-----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| ~week~ | Semaine calendaire (ISO 8601) |
|
||||
| ~indicator~ | Code de l'indicateur de surveillance |
|
||||
| ~inc~ | Estimation de l'incidence de consultations en nombre de cas |
|
||||
| ~inc_low~ | Estimation de la borne inférieure de l'IC95% du nombre de cas de consultation |
|
||||
| ~inc_up~ | Estimation de la borne supérieure de l'IC95% du nombre de cas de consultation |
|
||||
| ~inc100~ | Estimation du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| ~inc100_low~ | Estimation de la borne inférieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| ~inc100_up~ | Estimation de la borne supérieure de l'IC95% du taux d'incidence du nombre de cas de consultation (en cas pour 100,000 habitants) |
|
||||
| ~geo_insee~ | Code de la zone géographique concernée (Code INSEE) http://www.insee.fr/fr/methodes/nomenclatures/cog/ |
|
||||
| ~geo_name~ | Libellé de la zone géographique (ce libellé peut être modifié sans préavis) |
|
||||
|
||||
L'indication d'une semaine calendaire en format [[https://en.wikipedia.org/wiki/ISO_8601][ISO-8601]] est populaire en Europe, mais peu utilisée aux Etats-Unis. Ceci explique peut-être que peu de logiciels savent gérer ce format. Le langage Python le fait depuis la version 3.6. Nous utilisons donc ce langage pour la préparation de nos données.
|
||||
|
||||
** Téléchargement
|
||||
Après avoir téléchargé les données, nous commençons par l'extraction des données qui nous intéressent. D'abord nous découpons le contenu du fichier en lignes, dont nous jetons la première qui ne contient qu'un commentaire. Les autres lignes sont découpées en colonnes.
|
||||
|
||||
#+BEGIN_SRC python :results silent :var data_url=data-url
|
||||
from urllib.request import urlopen
|
||||
|
||||
data = urlopen(data_url).read()
|
||||
lines = data.decode('ascii').strip().split('\n')
|
||||
data_lines = lines[1:]
|
||||
table = [line.split(',') for line in data_lines]
|
||||
#+END_SRC
|
||||
|
||||
Regardons ce que nous avons obtenu:
|
||||
#+BEGIN_SRC python :results value
|
||||
table[:5]
|
||||
#+END_SRC
|
||||
|
||||
** Extraction des colonnes utilisées
|
||||
Il y a deux colonnes qui nous intéressent: la première (~"week"~) et la troisième (~"inc"~). Nous vérifions leurs noms dans l'en-tête, que nous effaçons par la suite. Enfin, nous créons un tableau avec les deux colonnes pour le traitement suivant.
|
||||
#+BEGIN_SRC python :results silent
|
||||
week = [row[0] for row in table]
|
||||
assert week[0] == 'week'
|
||||
del week[0]
|
||||
inc = [row[2] for row in table]
|
||||
assert inc[0] == 'inc
|
||||
del inc[0]
|
||||
raw_data = list(zip(week, inc))
|
||||
#+END_SRC
|
||||
|
||||
Regardons les premières et les dernières lignes. Nous insérons ~None~ pour indiquer à org-mode la séparation entre les trois sections du tableau: en-tête, début des données, fin des données.
|
||||
#+BEGIN_SRC python :results value
|
||||
[('week', 'inc'), None] + raw_data[:5] + [None] + raw_data[-5:]
|
||||
#+END_SRC
|
||||
|
||||
** Vérification
|
||||
Il est toujours prudent de vérifier si les données semblent crédibles. Nous savons que les semaines sont données par six chiffres (quatre pour l'année et deux pour la semaine), et que les incidences sont des nombres entiers positifs.
|
||||
#+BEGIN_SRC python :results output
|
||||
for week, inc in raw_data:
|
||||
if len(week) != 6 or not week.isdigit():
|
||||
print("Valeur suspecte dans la colonne 'week': ", (week, inc))
|
||||
if not inc.isdigit():
|
||||
print("Valeur suspecte dans la colonne 'inc': ", (week, inc))
|
||||
#+END_SRC
|
||||
|
||||
La vérification a mis en évidence un point manquant dans le jeux de données. Nous l'éliminons, ce qui n'a pas d'impact fort sur notre analyse qui est assez simple.
|
||||
#+BEGIN_SRC python :results silent
|
||||
valid_data = [record for record in raw_data if record[1] != '-']
|
||||
#+END_SRC
|
||||
|
||||
** Conversions
|
||||
Pour faciliter les traitements suivants, nous remplaçons les numéros de semaine ISO par les dates qui correspondent aux lundis. A cette occasion, nous trions aussi les données par la date, et nous transformons les incidences en nombres entiers.
|
||||
|
||||
#+BEGIN_SRC python :results silent
|
||||
import datetime
|
||||
data = [(datetime.datetime.strptime(year_and_week + ":1" , '%G%V:%u').date(),
|
||||
int(inc))
|
||||
for year_and_week, inc in valid_data]
|
||||
data.sort(key = lambda record: record[0])
|
||||
#+END_SRC
|
||||
|
||||
Regardons de nouveau les premières et les dernières lignes:
|
||||
#+BEGIN_SRC python :results value
|
||||
str_data = [(str(date), str(inc)) for date, inc in data]
|
||||
[('date', 'inc'), None] + str_data[:5] + [None] + str_data[-5:]
|
||||
#+END_SRC
|
||||
|
||||
** Vérification des dates
|
||||
Nous faisons encore une vérification: nos dates doivent être séparées d'exactement une semaine, sauf autour du point manquant.
|
||||
#+BEGIN_SRC python :results output
|
||||
dates = [date for date, _ in data]
|
||||
for date1, date2 in zip(dates[:-1], dates[1:]):
|
||||
if date2-date1 != datetime.timedelta(weeks=1):
|
||||
print(f"Il y a {date2-date1} entre {date1} et {date2}")
|
||||
#+END_SRC
|
||||
|
||||
** Passage Python -> R
|
||||
Nous passons au langage R pour inspecter nos données. Nous utilisons le mécanisme d'échange de données proposé par org-mode, ce qui nécessite un peu de code Python pour transformer les données dans le bon format.
|
||||
|
||||
#+NAME: data-for-R
|
||||
#+BEGIN_SRC python :results silent
|
||||
[('date', 'inc'), None] + [(str(date), inc) for date, inc in data]
|
||||
#+END_SRC
|
||||
|
||||
En R, les données arrivent sous forme d'un data frame, mais il faut encore convertir les dates, qui arrivent comme chaînes de caractères.
|
||||
#+BEGIN_SRC R :results output :var data=data-for-R
|
||||
data$date <- as.Date(data$date)
|
||||
summary(data)
|
||||
#+END_SRC
|
||||
|
||||
** Inspection
|
||||
Regardons enfin à quoi ressemblent nos données !
|
||||
#+BEGIN_SRC R :results output graphics :file inc-plot.png
|
||||
plot(data, type="l", xlab="Date", ylab="Incidence hebdomadaire")
|
||||
#+END_SRC
|
||||
|
||||
Un zoom sur les dernières années montre mieux la situation des pics en hiver. Le creux des incidences se trouve en été.
|
||||
#+BEGIN_SRC R :results output graphics :file inc-plot-zoom.png
|
||||
plot(tail(data, 200), type="l", xlab="Date", ylab="Incidence hebdomadaire")
|
||||
#+END_SRC
|
||||
|
||||
* Étude de l'incidence annuelle
|
||||
|
||||
** Calcul de l'incidence annuelle
|
||||
Étant donné que le pic de l'épidémie se situe en hiver, à cheval entre deux années civiles, nous définissons la période de référence entre deux minima de l'incidence, du 1er août de l'année /N/ au 1er août de l'année /N+1/. Nous mettons l'année /N+1/ comme étiquette sur cette année décalée, car le pic de l'épidémie est toujours au début de l'année /N+1/. Comme l'incidence du syndrome grippal est très faible en été, cette modification ne risque pas de fausser nos conclusions.
|
||||
|
||||
Voici une fonction qui calcule l'incidence annuelle en appliquant ces conventions.
|
||||
#+BEGIN_SRC R :results silent
|
||||
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)
|
||||
}
|
||||
#+END_SRC
|
||||
|
||||
Nous devons aussi faire attention aux premières et dernières années de notre jeux de données. Les données commencent en janvier 1985, ce qui ne permet pas de quantifier complètement le pic attribué à cette année. Nous le supprimons donc de notre analyse. Par contre, les données se terminent en été 2017, peu avant le 1er août, ce qui nous permet d'inclure cette année dans l'analyse.
|
||||
#+BEGIN_SRC R :results silent
|
||||
annees <- 1986:2017
|
||||
#+END_SRC
|
||||
|
||||
#+BEGIN_SRC R :results value
|
||||
inc_annuelle = data.frame(annee = annees,
|
||||
incidence = sapply(annees, pic_annuel))
|
||||
head(inc_annuelle)
|
||||
#+END_SRC
|
||||
|
||||
** Inspection
|
||||
Voici les incidences annuelles en graphique.
|
||||
#+BEGIN_SRC R :results output graphics :file annual-inc-plot.png
|
||||
plot(inc_annuelle, type="p", xlab="Année", ylab="Incidence annuelle")
|
||||
#+END_SRC
|
||||
|
||||
** Identification des épidémies les plus fortes
|
||||
Une liste triée par ordre décroissant d'incidence annuelle permet de plus facilement repérer les valeurs les plus élevées:
|
||||
#+BEGIN_SRC R :results output
|
||||
head(inc_annuelle[order(-inc_annuelle$incidence),])
|
||||
#+END_SRC
|
||||
|
||||
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.
|
||||
#+BEGIN_SRC R :results output graphics :file annual-inc-hist.png
|
||||
hist(inc_annuelle$incidence, breaks=10, xlab="Incidence annuelle", ylab="Nb d'observations", main="")
|
||||
#+END_SRC
|
||||
34
module3/exo2/exercice.Rmd
Normal file
34
module3/exo2/exercice.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
25
module3/exo2/exercice.ipynb
Normal file
25
module3/exo2/exercice.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
86
module3/exo2/exercice_R.org
Normal file
86
module3/exo2/exercice_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module3/exo2/exercice_python.org
Normal file
98
module3/exo2/exercice_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
34
module3/exo3/exercice.Rmd
Normal file
34
module3/exo3/exercice.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
25
module3/exo3/exercice.ipynb
Normal file
25
module3/exo3/exercice.ipynb
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"cells": [],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.6.3"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
|
||||
86
module3/exo3/exercice_R.org
Normal file
86
module3/exo3/exercice_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
module3/exo3/exercice_python.org
Normal file
98
module3/exo3/exercice_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
1
module4/README.md
Normal file
1
module4/README.md
Normal file
|
|
@ -0,0 +1 @@
|
|||
Module 4
|
||||
3
readme.md
Normal file
3
readme.md
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# MOOC Recherche Reproductible
|
||||
|
||||
Ce dépôt contient les fichiers utiles au MOOC Recherche Reproductible.
|
||||
34
templates/toy_document.Rmd
Normal file
34
templates/toy_document.Rmd
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
---
|
||||
title: "Votre titre"
|
||||
author: "Votre nom"
|
||||
date: "La date du jour"
|
||||
output: html_document
|
||||
---
|
||||
|
||||
|
||||
```{r setup, include=FALSE}
|
||||
knitr::opts_chunk$set(echo = TRUE)
|
||||
```
|
||||
|
||||
## Quelques explications
|
||||
|
||||
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>.
|
||||
|
||||
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 cars}
|
||||
summary(cars)
|
||||
```
|
||||
|
||||
Et on peut aussi aisément inclure des figures. Par exemple:
|
||||
|
||||
```{r pressure, echo=FALSE}
|
||||
plot(pressure)
|
||||
```
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas forcément de fichier de départ, ça sera à vous de le créer à partir de Rstudio et de le commiter vers gitlab.
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations pour essayer de reproduire le document sur le calcul de $\pi$.
|
||||
86
templates/toy_document_orgmode_R.org
Normal file
86
templates/toy_document_orgmode_R.org
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
R. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclut du code
|
||||
R de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src R :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: [1] "Hello world!"
|
||||
|
||||
Voici la même chose, mais avec une session python (c'est le cas le
|
||||
plus courant, R étant vraiment un langage interactif), donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
|
||||
#+begin_src R :results output :session *R* :exports both
|
||||
summary(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: speed dist
|
||||
: Min. : 4.0 Min. : 2.00
|
||||
: 1st Qu.:12.0 1st Qu.: 26.00
|
||||
: Median :15.0 Median : 36.00
|
||||
: Mean :15.4 Mean : 42.98
|
||||
: 3rd Qu.:19.0 3rd Qu.: 56.00
|
||||
: Max. :25.0 Max. :120.00
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R*
|
||||
plot(cars)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cars.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<r~ ou ~<R~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
98
templates/toy_document_orgmode_python.org
Normal file
98
templates/toy_document_orgmode_python.org
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
#+TITLE: Votre titre
|
||||
#+AUTHOR: Votre nom
|
||||
#+DATE: La date du jour
|
||||
#+LANGUAGE: fr
|
||||
# #+PROPERTY: header-args :eval never-export
|
||||
# #### :session :exports both
|
||||
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/htmlize.css"/>
|
||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="http://www.pirilampo.org/styles/readtheorg/css/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/lib/js/jquery.stickytableheaders.js"></script>
|
||||
#+HTML_HEAD: <script type="text/javascript" src="http://www.pirilampo.org/styles/readtheorg/js/readtheorg.js"></script>
|
||||
|
||||
* Quelques explications
|
||||
|
||||
Ceci est un document org-mode avec quelques exemples de code
|
||||
python. Une fois ouvert dans emacs, ce document peut aisément être
|
||||
exporté au format HTML, PDF, et Office. Pour plus de détails sur
|
||||
org-mode vous pouvez consulter https://orgmode.org/guide/.
|
||||
|
||||
Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera
|
||||
compilé en html. Tout le code contenu sera ré-exécuté, les résultats
|
||||
récupérés et inclus dans un document final. Si vous ne souhaitez pas
|
||||
ré-exécuter tout le code à chaque fois, il vous suffit de supprimer
|
||||
le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce
|
||||
document.
|
||||
|
||||
Comme nous vous l'avons montré dans la vidéo, on inclue du code
|
||||
python de la façon suivante (et on l'exécute en faisant ~C-c C-c~):
|
||||
|
||||
#+begin_src python :results output :exports both
|
||||
print("Hello world!")
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
: Hello world!
|
||||
|
||||
Voici la même chose, mais avec une session python, donc une
|
||||
persistance d'un bloc à l'autre (et on l'exécute toujours en faisant
|
||||
~C-c C-c~).
|
||||
#+begin_src python :results output :session :exports both
|
||||
import numpy
|
||||
x=numpy.linspace(-15,15)
|
||||
print(x)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041
|
||||
-11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592
|
||||
-8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143
|
||||
-5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694
|
||||
-2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245
|
||||
0.30612245 0.91836735 1.53061224 2.14285714 2.75510204
|
||||
3.36734694 3.97959184 4.59183673 5.20408163 5.81632653
|
||||
6.42857143 7.04081633 7.65306122 8.26530612 8.87755102
|
||||
9.48979592 10.10204082 10.71428571 11.32653061 11.93877551
|
||||
12.55102041 13.16326531 13.7755102 14.3877551 15. ]
|
||||
#+end_example
|
||||
|
||||
Et enfin, voici un exemple de sortie graphique:
|
||||
#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
plt.figure(figsize=(10,5))
|
||||
plt.plot(x,numpy.cos(x)/x)
|
||||
plt.tight_layout()
|
||||
|
||||
plt.savefig(matplot_lib_filename)
|
||||
print(matplot_lib_filename)
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:./cosxsx.png]]
|
||||
|
||||
Vous remarquerez le paramètre ~:exports results~ 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 changer ce paramètre
|
||||
(indiquer ~both~) car l'objectif est que vos analyses de données soient
|
||||
parfaitement transparentes pour être reproductibles.
|
||||
|
||||
Attention, la figure ainsi générée n'est pas stockée dans le document
|
||||
org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas
|
||||
de le committer si vous voulez que votre analyse soit lisible et
|
||||
compréhensible sur GitLab.
|
||||
|
||||
Enfin, pour les prochains exercices, nous ne vous fournirons pas
|
||||
forcément de fichier de départ, ça sera à vous de le créer, par
|
||||
exemple en repartant de ce document et de le commiter vers
|
||||
gitlab. N'oubliez pas que nous vous fournissons dans les ressources de
|
||||
ce MOOC une configuration avec un certain nombre de raccourcis
|
||||
claviers permettant de créer rapidement les blocs de code python (en
|
||||
faisant ~<p~, ~<P~ ou ~<PP~ suivi de ~Tab~).
|
||||
|
||||
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces
|
||||
informations pour essayer de reproduire le document sur le calcul de
|
||||
$\pi$.
|
||||
Loading…
Add table
Reference in a new issue