From 79b24318a128144d0a8df6af3eceaf32d955e75f Mon Sep 17 00:00:00 2001 From: Helene31 Date: Wed, 22 Apr 2020 21:41:59 +0200 Subject: [PATCH] maj --- .gitignore | 4 + .../exo4 => journal}/journalHelene31.html | 18 +- module1/premier essai markdone.md | 76 -- module2/exo1/toy_document_en.Rmd | 33 - module2/exo1/toy_document_fr.Rmd | 50 -- module2/exo1/toy_document_fr.html | 42 -- module2/exo1/toy_document_orgmode_R_en.org | 81 -- module2/exo1/toy_document_orgmode_R_fr.org | 84 --- .../exo1/toy_document_orgmode_python_en.org | 94 --- .../exo1/toy_document_orgmode_python_fr.org | 93 --- module2/exo1/toy_notebook_en.ipynb | 25 - module2/exo1/toy_notebook_fr.ipynb | 25 - module2/exo3/exercice.ipynb | 25 - module2/exo3/exercice_R_en.org | 81 -- module2/exo3/exercice_R_fr.org | 84 --- module2/exo3/exercice_en.Rmd | 33 - module2/exo3/exercice_en.ipynb | 25 - module2/exo3/exercice_fr.ipynb | 25 - module2/exo3/exercice_python_en.org | 94 --- module2/exo3/exercice_python_fr.org | 93 --- module2/exo4/exercice.ipynb | 25 - module2/exo4/exercice_R_en.org | 81 -- module2/exo4/exercice_R_fr.org | 84 --- module2/exo4/exercice_en.Rmd | 33 - module2/exo4/exercice_en.ipynb | 25 - module2/exo4/exercice_fr.ipynb | 25 - module2/exo4/exercice_python_en.org | 94 --- module2/exo4/exercice_python_fr.org | 93 --- module2/exo4/journalHelene31.Rmd | 127 ---- module2/exo5/exo5_R_en.ipynb | 503 ------------ module2/exo5/exo5_R_en.org | 201 ----- module2/exo5/exo5_R_fr.ipynb | 502 ------------ module2/exo5/exo5_R_fr.org | 207 ----- module2/exo5/exo5_en.Rmd | 119 --- module2/exo5/exo5_en.ipynb | 714 ------------------ module2/exo5/exo5_fr.ipynb | 713 ----------------- module2/exo5/exo5_python_en.org | 217 ------ module2/exo5/exo5_python_fr.org | 222 ------ module2/exo5/freq_temp.png | Bin 4858 -> 0 bytes module2/exo5/freq_temp_python.png | Bin 12556 -> 0 bytes module2/exo5/proba_estimate.png | Bin 4651 -> 0 bytes module2/exo5/proba_estimate_python.png | Bin 14660 -> 0 bytes module3/exo3/ConcentrationCO2.html | 584 ++++++++++++++ module3/exo3/exercice.ipynb | 25 - module3/exo3/exercice_R_en.org | 81 -- module3/exo3/exercice_R_fr.org | 84 --- module3/exo3/exercice_en.ipynb | 25 - module3/exo3/exercice_fr.ipynb | 25 - module3/exo3/exercice_python_en.org | 94 --- module3/exo3/exercice_python_fr.org | 93 --- mooc-rr | 1 - mooc-rr.Rproj | 13 + 52 files changed, 602 insertions(+), 5493 deletions(-) create mode 100644 .gitignore rename {module2/exo4 => journal}/journalHelene31.html (96%) delete mode 100644 module1/premier essai markdone.md delete mode 100644 module2/exo1/toy_document_en.Rmd delete mode 100644 module2/exo1/toy_document_fr.Rmd delete mode 100644 module2/exo1/toy_document_fr.html delete mode 100644 module2/exo1/toy_document_orgmode_R_en.org delete mode 100644 module2/exo1/toy_document_orgmode_R_fr.org delete mode 100644 module2/exo1/toy_document_orgmode_python_en.org delete mode 100644 module2/exo1/toy_document_orgmode_python_fr.org delete mode 100644 module2/exo1/toy_notebook_en.ipynb delete mode 100644 module2/exo1/toy_notebook_fr.ipynb delete mode 100644 module2/exo3/exercice.ipynb delete mode 100644 module2/exo3/exercice_R_en.org delete mode 100644 module2/exo3/exercice_R_fr.org delete mode 100644 module2/exo3/exercice_en.Rmd delete mode 100644 module2/exo3/exercice_en.ipynb delete mode 100644 module2/exo3/exercice_fr.ipynb delete mode 100644 module2/exo3/exercice_python_en.org delete mode 100644 module2/exo3/exercice_python_fr.org delete mode 100644 module2/exo4/exercice.ipynb delete mode 100644 module2/exo4/exercice_R_en.org delete mode 100644 module2/exo4/exercice_R_fr.org delete mode 100644 module2/exo4/exercice_en.Rmd delete mode 100644 module2/exo4/exercice_en.ipynb delete mode 100644 module2/exo4/exercice_fr.ipynb delete mode 100644 module2/exo4/exercice_python_en.org delete mode 100644 module2/exo4/exercice_python_fr.org delete mode 100644 module2/exo4/journalHelene31.Rmd delete mode 100644 module2/exo5/exo5_R_en.ipynb delete mode 100644 module2/exo5/exo5_R_en.org delete mode 100644 module2/exo5/exo5_R_fr.ipynb delete mode 100644 module2/exo5/exo5_R_fr.org delete mode 100644 module2/exo5/exo5_en.Rmd delete mode 100644 module2/exo5/exo5_en.ipynb delete mode 100644 module2/exo5/exo5_fr.ipynb delete mode 100644 module2/exo5/exo5_python_en.org delete mode 100644 module2/exo5/exo5_python_fr.org delete mode 100644 module2/exo5/freq_temp.png delete mode 100644 module2/exo5/freq_temp_python.png delete mode 100644 module2/exo5/proba_estimate.png delete mode 100644 module2/exo5/proba_estimate_python.png create mode 100644 module3/exo3/ConcentrationCO2.html delete mode 100644 module3/exo3/exercice.ipynb delete mode 100644 module3/exo3/exercice_R_en.org delete mode 100644 module3/exo3/exercice_R_fr.org delete mode 100644 module3/exo3/exercice_en.ipynb delete mode 100644 module3/exo3/exercice_fr.ipynb delete mode 100644 module3/exo3/exercice_python_en.org delete mode 100644 module3/exo3/exercice_python_fr.org delete mode 160000 mooc-rr create mode 100644 mooc-rr.Rproj diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b6a065 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata diff --git a/module2/exo4/journalHelene31.html b/journal/journalHelene31.html similarity index 96% rename from module2/exo4/journalHelene31.html rename to journal/journalHelene31.html index b40e5c7..bf22ccb 100644 --- a/module2/exo4/journalHelene31.html +++ b/journal/journalHelene31.html @@ -9,10 +9,9 @@ - -Exercice 3 Module 2 +journalHelene31.utf8 -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, R code is included as follows (and is -exxecuted by typing ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -And now the same but in an R session. This is the most frequent -situation, because R is really an interactive language. With a -session, R's state, i.e. the values of all the variables, remains -persistent from one code block to the next. The code is still executed -using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cars.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in R by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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 R (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 R (en -faisant ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, Python code is included as follows (and -is exxecuted by typing ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -And now the same but in an Python session. With a session, Python's -state, i.e. the values of all the variables, remains persistent from -one code block to the next. The code is still executed using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cosxsx.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in Python by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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, 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 ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, R code is included as follows (and is -exxecuted by typing ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -And now the same but in an R session. This is the most frequent -situation, because R is really an interactive language. With a -session, R's state, i.e. the values of all the variables, remains -persistent from one code block to the next. The code is still executed -using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cars.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in R by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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 R (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 R (en -faisant ~. - -When you click on the button **Knit**, the document will be compiled in order to re-execute the R code and to include the results into the final document. As we have shown in the video, R code is inserted as follows: - -```{r cars} -summary(cars) -``` - -It is also straightforward to include figures. For example: - -```{r pressure, echo=FALSE} -plot(pressure) -``` - -Note the parameter `echo = FALSE` that indicates that the code will not appear in the final version of the document. We recommend not to use this parameter in the context of this MOOC, because we want your data analyses to be perfectly transparent and reproducible. - -Since the results are not stored in Rmd files, you should generate an HTML or PDF version of your exercises and commit them. Otherwise reading and checking your analysis will be difficult for anyone else but you. - -Now it's your turn! You can delete all this information and replace it by your computational document. diff --git a/module2/exo3/exercice_en.ipynb b/module2/exo3/exercice_en.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module2/exo3/exercice_en.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "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 -} - diff --git a/module2/exo3/exercice_fr.ipynb b/module2/exo3/exercice_fr.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module2/exo3/exercice_fr.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "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 -} - diff --git a/module2/exo3/exercice_python_en.org b/module2/exo3/exercice_python_en.org deleted file mode 100644 index 5782f49..0000000 --- a/module2/exo3/exercice_python_en.org +++ /dev/null @@ -1,94 +0,0 @@ -#+TITLE: Your title -#+AUTHOR: Your name -#+DATE: Today's date -#+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, Python code is included as follows (and -is exxecuted by typing ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -And now the same but in an Python session. With a session, Python's -state, i.e. the values of all the variables, remains persistent from -one code block to the next. The code is still executed using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cosxsx.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in Python by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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, 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 ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, R code is included as follows (and is -exxecuted by typing ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -And now the same but in an R session. This is the most frequent -situation, because R is really an interactive language. With a -session, R's state, i.e. the values of all the variables, remains -persistent from one code block to the next. The code is still executed -using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cars.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in R by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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 R (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 R (en -faisant ~. - -When you click on the button **Knit**, the document will be compiled in order to re-execute the R code and to include the results into the final document. As we have shown in the video, R code is inserted as follows: - -```{r cars} -summary(cars) -``` - -It is also straightforward to include figures. For example: - -```{r pressure, echo=FALSE} -plot(pressure) -``` - -Note the parameter `echo = FALSE` that indicates that the code will not appear in the final version of the document. We recommend not to use this parameter in the context of this MOOC, because we want your data analyses to be perfectly transparent and reproducible. - -Since the results are not stored in Rmd files, you should generate an HTML or PDF version of your exercises and commit them. Otherwise reading and checking your analysis will be difficult for anyone else but you. - -Now it's your turn! You can delete all this information and replace it by your computational document. diff --git a/module2/exo4/exercice_en.ipynb b/module2/exo4/exercice_en.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module2/exo4/exercice_en.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "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 -} - diff --git a/module2/exo4/exercice_fr.ipynb b/module2/exo4/exercice_fr.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module2/exo4/exercice_fr.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "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 -} - diff --git a/module2/exo4/exercice_python_en.org b/module2/exo4/exercice_python_en.org deleted file mode 100644 index 5782f49..0000000 --- a/module2/exo4/exercice_python_en.org +++ /dev/null @@ -1,94 +0,0 @@ -#+TITLE: Your title -#+AUTHOR: Your name -#+DATE: Today's date -#+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, Python code is included as follows (and -is exxecuted by typing ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -And now the same but in an Python session. With a session, Python's -state, i.e. the values of all the variables, remains persistent from -one code block to the next. The code is still executed using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cosxsx.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in Python by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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, 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 ~ - -# Journal Hélène 31 - -*Objet de ce document* -ce que vous apprenez dans ce MOOC: -les références qui vous paraissent utiles, etc. -des données quotidiennes qui vous intéressent (temps, etc.). Vous les utiliserez par la suite dans le module 2. - -## Data - -| date | weather | temperature | hours | -|:----------|:------------:|------------:|------:| -|23/03/2020 | sunny | 14 | 1 | -|24/03/2020 | windy | 14 | 1 | -|25/03/2020 | windy | 15 | 2 | -|26/03/2020 | cloudy | 10 | 3 | -|27/03/2020 | sunny | 18 | 0 | -|28/03/2020 | sunny | 18 | 0 | -|29/03/2020 | cloudy | 12 | 0 | -|30/03/2020 | melted snow | 4 | 2 | -|31/03/2020 | melted snow | 4 | 2 | -|01/04/2020 | melted snow | 4 | 2 | -|02/04/2020 | sunny | 15 | 0 | -|03/04/2020 | sunny | 15 | 0 | -|04/04/2020 | sunny | 15 | 0 | -|05/04/2020 | sunny | 18 | 0 | -|06/04/2020 | sunny | 15 | 2 | -|15/04/2020 | sunny | 16 | 1 | -|16/04/2020 | sunny | 15 | 3 | -|20/04/2020 | rain | 10 | 2 | -|21/04/2020 | rain | 7 | 3 | - - -## Suivi des data coronavirus - - -```{r } -setwd("C:/Users/hraynal/EspaceTravailBadet/FORMATION_PERSO/2020-Reproductibilite/moocrr-reproducibility-study/module2/exo4") -library(ggplot2) -monDataset <- read.csv("covid19-du-2020-03-04-au-2020-03-25.csv", sep=";") -#summary(monDataset) -max(monDataset$Occitanie) -ggplot(monDataset) + - geom_point(aes(x = Date, y = Occitanie), - color = "darkgreen") - -``` - - -## Module 1: Cahier de notes cahier de laboratoire -### Nous utilisons tous des cahiers de notes, cahier de laboratoire -### Un aperçu historique de la prise de note -### Du fichier texte au langage balisage léger - -- Tutoriel trés complet sur markdown et pandoc -[https://enacit.epfl.ch/cours/markdown-pandoc/] - -- R Markdown: The Definitive Guide -[https://bookdown.org/yihui/rmarkdown/] - - -- Exemple Rmarkdown généré avec Rstudio[https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/testmarkdown.Rmd] - (Fichier html généré avec R studio)[SortieTestRmarkdown.html] - -- Résultat en html, fichier html généré avec Rstudio [https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/blob/master/SortieTestRmarkdown.html] -- Pandoc sur mon PC: - -- installation sur poste de travail, puis ouvrir ligne de commande -``` -C:\Users\hraynal\EspaceTravailBadet\FORMATION_PERSO\2020-Reproductibilite>pandoc -o carnet.pdf journalHelene31.md -``` - -### Pérennité et évolutivité des notes avec gitlab -- question sur client git pour windows: -*Trois outils sont proposés en semaine 2. Les trois outils permettent d’utiliser Git. -La solution avec RStudio me semble la plus simple à mettre en œuvre : RStudio / Utiliser Git avec RStudio (cf. onglet 3. RStudio : installation, documentation).* - - -- Manip à faire pour versionner avec git depuis RStudio -<<<<<<< HEAD - - -- Créer un projet - - -- (Bon tutoriel pour installation) [https://jennybc.github.io/2014-05-12-ubc/ubc-r/session03_git.html] - - -- (Autre tuto envoyé par Eric)[happygitwithr.com/] - - -- Pb "git: 'credential-cache' is not a git command" Faire:To remove the message, "git: 'credential-cache' is not a git command.", run "git config --global --unset credential.helper" - - -- Depuis l'interface : cocher à droite le fichier dont on veut faire le commit - - -- Bouton en haut "Git" - - -- Commit - compléter le message de commit - - -- Push - - -- Pb je n'arrivais pas à le faire en utilisant l'interface graphique car au départ il y avait des accents dans le nom du fichier. Je le fais en ligne de commande: git commit fichier, git push - - -- Pb j'ai l'impression qu'il faut que je sois connectée à gitlab, et que j'ai fait un Save As du fichier. - - -- Créer un projet - - -- (Bon tutoriel pour installation) [https://jennybc.github.io/2014-05-12-ubc/ubc-r/session03_git.html] - - -- Pb "git: 'credential-cache' is not a git command" Faire:To remove the message, "git: 'credential-cache' is not a git command.", run "git config --global --unset credential.helper" - - -- Depuis l'interface : cocher à droite le fichier dont on veut faire le commit - - -- Bouton en haut "Git" - - -- Commit - - -- Push - - -- Pb je n'arrive pas à le faire en utilisant l'interface graphique. Je le fais en ligne de commande: - - --- git commit fichier Puis git push - - -### les étiquettes et logiciel d'indexation pour s'y retrouver -### Supports de cours -### exercices \ No newline at end of file diff --git a/module2/exo5/exo5_R_en.ipynb b/module2/exo5/exo5_R_en.ipynb deleted file mode 100644 index 8a59929..0000000 --- a/module2/exo5/exo5_R_en.ipynb +++ /dev/null @@ -1,503 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis of the risk of failure of the O-rings on the Challenger shuttle" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "On January 27, 1986, the day before the takeoff of the shuttle _Challenger_, had\n", - "a three-hour teleconference was held between \n", - "Morton Thiokol (the manufacturer of one of the engines) and NASA. The\n", - "discussion focused on the consequences of the\n", - "temperature at take-off of 31°F (just below\n", - "0°C) for the success of the flight and in particular on the performance of the\n", - "O-rings used in the engines. Indeed, no test\n", - "had been performed at this temperature.\n", - "\n", - "The following study takes up some of the analyses carried out that\n", - "night with the objective of assessing the potential influence of\n", - "the temperature and pressure to which the O-rings are subjected\n", - "on their probability of malfunction. Our starting point is \n", - "the results of the experiments carried out by NASA engineers\n", - "during the six years preceding the launch of the shuttle\n", - "Challenger." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Loading the data\n", - "We start by loading this data:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 23 × 5
DateCountTemperaturePressureMalfunction
<fct><int><int><int><int>
4/12/81 666 500
11/12/81 670 501
3/22/82 669 500
11/11/82 668 500
4/04/83 667 500
6/18/82 672 500
8/30/83 6731000
11/28/83 6701000
2/03/84 6572001
4/06/84 6632001
8/30/84 6702001
10/05/84 6782000
11/08/84 6672000
1/24/85 6532002
4/12/85 6672000
4/29/85 6752000
6/17/85 6702000
7/29/856812000
8/27/85 6762000
10/03/85 6792000
10/30/85 6752002
11/26/85 6762000
1/12/86 6582001
\n" - ], - "text/latex": [ - "A data.frame: 23 × 5\n", - "\\begin{tabular}{r|lllll}\n", - " Date & Count & Temperature & Pressure & Malfunction\\\\\n", - " & & & & \\\\\n", - "\\hline\n", - "\t 4/12/81 & 6 & 66 & 50 & 0\\\\\n", - "\t 11/12/81 & 6 & 70 & 50 & 1\\\\\n", - "\t 3/22/82 & 6 & 69 & 50 & 0\\\\\n", - "\t 11/11/82 & 6 & 68 & 50 & 0\\\\\n", - "\t 4/04/83 & 6 & 67 & 50 & 0\\\\\n", - "\t 6/18/82 & 6 & 72 & 50 & 0\\\\\n", - "\t 8/30/83 & 6 & 73 & 100 & 0\\\\\n", - "\t 11/28/83 & 6 & 70 & 100 & 0\\\\\n", - "\t 2/03/84 & 6 & 57 & 200 & 1\\\\\n", - "\t 4/06/84 & 6 & 63 & 200 & 1\\\\\n", - "\t 8/30/84 & 6 & 70 & 200 & 1\\\\\n", - "\t 10/05/84 & 6 & 78 & 200 & 0\\\\\n", - "\t 11/08/84 & 6 & 67 & 200 & 0\\\\\n", - "\t 1/24/85 & 6 & 53 & 200 & 2\\\\\n", - "\t 4/12/85 & 6 & 67 & 200 & 0\\\\\n", - "\t 4/29/85 & 6 & 75 & 200 & 0\\\\\n", - "\t 6/17/85 & 6 & 70 & 200 & 0\\\\\n", - "\t 7/29/85 & 6 & 81 & 200 & 0\\\\\n", - "\t 8/27/85 & 6 & 76 & 200 & 0\\\\\n", - "\t 10/03/85 & 6 & 79 & 200 & 0\\\\\n", - "\t 10/30/85 & 6 & 75 & 200 & 2\\\\\n", - "\t 11/26/85 & 6 & 76 & 200 & 0\\\\\n", - "\t 1/12/86 & 6 & 58 & 200 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 23 × 5\n", - "\n", - "| Date <fct> | Count <int> | Temperature <int> | Pressure <int> | Malfunction <int> |\n", - "|---|---|---|---|---|\n", - "| 4/12/81 | 6 | 66 | 50 | 0 |\n", - "| 11/12/81 | 6 | 70 | 50 | 1 |\n", - "| 3/22/82 | 6 | 69 | 50 | 0 |\n", - "| 11/11/82 | 6 | 68 | 50 | 0 |\n", - "| 4/04/83 | 6 | 67 | 50 | 0 |\n", - "| 6/18/82 | 6 | 72 | 50 | 0 |\n", - "| 8/30/83 | 6 | 73 | 100 | 0 |\n", - "| 11/28/83 | 6 | 70 | 100 | 0 |\n", - "| 2/03/84 | 6 | 57 | 200 | 1 |\n", - "| 4/06/84 | 6 | 63 | 200 | 1 |\n", - "| 8/30/84 | 6 | 70 | 200 | 1 |\n", - "| 10/05/84 | 6 | 78 | 200 | 0 |\n", - "| 11/08/84 | 6 | 67 | 200 | 0 |\n", - "| 1/24/85 | 6 | 53 | 200 | 2 |\n", - "| 4/12/85 | 6 | 67 | 200 | 0 |\n", - "| 4/29/85 | 6 | 75 | 200 | 0 |\n", - "| 6/17/85 | 6 | 70 | 200 | 0 |\n", - "| 7/29/85 | 6 | 81 | 200 | 0 |\n", - "| 8/27/85 | 6 | 76 | 200 | 0 |\n", - "| 10/03/85 | 6 | 79 | 200 | 0 |\n", - "| 10/30/85 | 6 | 75 | 200 | 2 |\n", - "| 11/26/85 | 6 | 76 | 200 | 0 |\n", - "| 1/12/86 | 6 | 58 | 200 | 1 |\n", - "\n" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "1 4/12/81 6 66 50 0 \n", - "2 11/12/81 6 70 50 1 \n", - "3 3/22/82 6 69 50 0 \n", - "4 11/11/82 6 68 50 0 \n", - "5 4/04/83 6 67 50 0 \n", - "6 6/18/82 6 72 50 0 \n", - "7 8/30/83 6 73 100 0 \n", - "8 11/28/83 6 70 100 0 \n", - "9 2/03/84 6 57 200 1 \n", - "10 4/06/84 6 63 200 1 \n", - "11 8/30/84 6 70 200 1 \n", - "12 10/05/84 6 78 200 0 \n", - "13 11/08/84 6 67 200 0 \n", - "14 1/24/85 6 53 200 2 \n", - "15 4/12/85 6 67 200 0 \n", - "16 4/29/85 6 75 200 0 \n", - "17 6/17/85 6 70 200 0 \n", - "18 7/29/85 6 81 200 0 \n", - "19 8/27/85 6 76 200 0 \n", - "20 10/03/85 6 79 200 0 \n", - "21 10/30/85 6 75 200 2 \n", - "22 11/26/85 6 76 200 0 \n", - "23 1/12/86 6 58 200 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = read.csv(\"shuttle.csv\",header=T)\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The data set shows us the date of each test, the number of O-rings (there are 6 on the main launcher), the temperature (in Fahrenheit) and pressure (in psi), and finally the number of identified malfunctions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Graphical inspection\n", - "Flights without incidents do not provide any information\n", - "on the influence of temperature or pressure on malfunction.\n", - "We thus focus on the experiments in which at least one O-ring\n", - "was defective." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 7 × 5
DateCountTemperaturePressureMalfunction
<fct><int><int><int><int>
211/12/81670 501
92/03/84 6572001
104/06/84 6632001
118/30/84 6702001
141/24/85 6532002
2110/30/856752002
231/12/86 6582001
\n" - ], - "text/latex": [ - "A data.frame: 7 × 5\n", - "\\begin{tabular}{r|lllll}\n", - " & Date & Count & Temperature & Pressure & Malfunction\\\\\n", - " & & & & & \\\\\n", - "\\hline\n", - "\t2 & 11/12/81 & 6 & 70 & 50 & 1\\\\\n", - "\t9 & 2/03/84 & 6 & 57 & 200 & 1\\\\\n", - "\t10 & 4/06/84 & 6 & 63 & 200 & 1\\\\\n", - "\t11 & 8/30/84 & 6 & 70 & 200 & 1\\\\\n", - "\t14 & 1/24/85 & 6 & 53 & 200 & 2\\\\\n", - "\t21 & 10/30/85 & 6 & 75 & 200 & 2\\\\\n", - "\t23 & 1/12/86 & 6 & 58 & 200 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 7 × 5\n", - "\n", - "| | Date <fct> | Count <int> | Temperature <int> | Pressure <int> | Malfunction <int> |\n", - "|---|---|---|---|---|---|\n", - "| 2 | 11/12/81 | 6 | 70 | 50 | 1 |\n", - "| 9 | 2/03/84 | 6 | 57 | 200 | 1 |\n", - "| 10 | 4/06/84 | 6 | 63 | 200 | 1 |\n", - "| 11 | 8/30/84 | 6 | 70 | 200 | 1 |\n", - "| 14 | 1/24/85 | 6 | 53 | 200 | 2 |\n", - "| 21 | 10/30/85 | 6 | 75 | 200 | 2 |\n", - "| 23 | 1/12/86 | 6 | 58 | 200 | 1 |\n", - "\n" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "2 11/12/81 6 70 50 1 \n", - "9 2/03/84 6 57 200 1 \n", - "10 4/06/84 6 63 200 1 \n", - "11 8/30/84 6 70 200 1 \n", - "14 1/24/85 6 53 200 2 \n", - "21 10/30/85 6 75 200 2 \n", - "23 1/12/86 6 58 200 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = data[data$Malfunction>0,]\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have a high temperature variability but\n", - "the pressure is almost always 200, which should\n", - "simplify the analysis.\n", - "\n", - "How does the frequency of failure vary with temperature?" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC+lBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycp\nKSkqKiorKystLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8\nPDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1O\nTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19g\nYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFy\ncnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OE\nhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWW\nlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6\nurq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vM\nzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e\n3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w\n8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9puzMQAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dC3SU5b3v8WdIhksgICi3cAlotbUtETxc\nWvBQo2WrWPTUgtgqEVqsgMZdVKBFQLywd2i1anW70b29HbcepFGPp8IRkSpFYQOixeIlokes\n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\nRTZ+AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "At first glance, the dependence does not look very important, but let's try to\n", - "estimate the impact of temperature $t$ on the probability of O-ring malfunction." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation of the temperature influence\n", - "\n", - "Suppose that each of the six O-rings is damaged with the same\n", - "probability and independently of the others and that this probability\n", - "depends only on the temperature. If $p(t)$ is this probability, the\n", - "number $D$ of malfunctioning O-rings during a flight at\n", - "temperature $t$ follows a binomial law with parameters $n=6$ and\n", - "$p=p(t)$. To link $p(t)$ to $t$, we will therefore perform a\n", - "logistic regression." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "Call:\n", - "glm(formula = Malfunction/Count ~ Temperature, family = binomial(link = \"logit\"), \n", - " data = data, weights = Count)\n", - "\n", - "Deviance Residuals: \n", - " 2 9 10 11 14 21 23 \n", - "-0.3015 -0.2836 -0.2919 -0.3015 0.6891 0.6560 -0.2850 \n", - "\n", - "Coefficients:\n", - " Estimate Std. Error z value Pr(>|z|)\n", - "(Intercept) -1.389528 3.195752 -0.435 0.664\n", - "Temperature 0.001416 0.049773 0.028 0.977\n", - "\n", - "(Dispersion parameter for binomial family taken to be 1)\n", - "\n", - " Null deviance: 1.3347 on 6 degrees of freedom\n", - "Residual deviance: 1.3339 on 5 degrees of freedom\n", - "AIC: 18.894\n", - "\n", - "Number of Fisher Scoring iterations: 4\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count, \n", - " family=binomial(link='logit'))\n", - "summary(logistic_reg)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The most likely estimator of the temperature parameter is 0.0014\n", - "and the standard error of this estimator is 0.122, in other words we\n", - "cannot distinguish any particular impact and we must take our\n", - "estimates with caution." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation of the probability of O-ring malfunction\n", - "\n", - "The expected temperature on the take-off day is 31°F. Let's try to\n", - "estimate the probability of O-ring malfunction at\n", - "this temperature from the model we just built:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5udnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqan\np6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8D/m+7\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3de3yU1YGH8ROSEAh35CYKAV231q5C\nsVWsgLihXlop1guI1YKw4gpqWrHNqhQUpVrY4loX14JXtGsthrq21ZoiXhYvhYiKghDRCoqC\nJVHkFgx5PzvnHUh2WXhTM7/3vHPC8/1j5m1yZs6Z6XnC3GJMACBjJukFAM0BIQEChAQIEBIg\nQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBI\ngAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAA\nIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEB\nAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKE\nBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQI\nEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiDgIKRXlwFeefWL7/L4Q1pqAM8s/cLbPP6Q\nlpia2OcAhGrMki98GUIC9kFIgAAhAQKEBAgQEiBASIAAIQECrkOqW1teVrZoXSOjCAmecRtS\n1eRu6XeBe0/fHjWOkOAZpyFt6GuOGjtt5swpo3uaflURAwkJnnEa0vj8R/Yc1c7JKYkYSEjw\njNOQeoxrOB7VK2IgIcEzTkPKn9FwfEPLiIGEBM84DaloZMPxiD4RAwkJnnEaUknOrJ3po61T\nTWnEQEKCZ5yGVD3AtCsee8WkMUMLzeDPIgYSEjzj9n2kmtn9c+3bSPkD59ZGjSMkeMb5R4R2\nrKmoqGwsE0KCZ/isHSBASIBAUiG9XVy8z1d2Ly6v92+EBL8kFdJys++1vNO1U71Cs1UwB+BM\nUiHtWLEi4rt3magXx4Gsk53PkQgJnkkspL9WRnyTkOCZxEIqjboWQoJnCAkQICRAwGlIx/8v\nPQgJzYjTkFq0KKiXS0hoRpyGVNqu4aU6HtqhOXEa0q6vfm3X3mNCQnPi9sWGla2v2XtISGhO\nHL9q9+nmvUfP3BIxjJDgGT4iBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAh\nAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEC\nhAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQE\nCBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQ\nEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIg\nQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQECiYS0641lOyMHEBI84zakRUP7nPlS\n8GRPY9rPiRpHSPCM05BeyDPtW7R5oX2v74/sZJ6IGEhI8IzTkIb3eC3YdGrvftuDoKrPGRED\nCQmecRrSITelTpaa++zxzZ0jBhISPOM0pLwHUicbzO/t8d15EQMJCZ5xGlL3aamTZ8zt9vi6\n7hEDCQmecRrSBZ2frnn92C/3fj8IVnY6L2IgIcEzTkNa1c4Y03llUeGpJ+XlvhwxkJDgGbfv\nI60YfeLYt4IVJ+SYI34bNY6Q4JlkPiL02abo7xMSPMNn7QABQgIEkgrp7eLifb5SNXFCvcGE\nBL8kFdJys++1EBI8llRIO1asiPguD+3gGZ4jAQKuQ6pbW15WtmhdI6MICZ5xG1LV5G4m1Hv6\n9qhxhATPOA1pQ19z1NhpM2dOGd3T9KuKGEhI8IzTkMbnP7LnqHZOTknEQEKCZ5yG1GNcw/Go\nXhEDCQmecRpS/oyG4xtaRgwkJHjGaUhFIxuOR/SJGEhI8IzTkEpyZu3579ltnWpKIwYSEjzj\nNKTqAaZd8dgrJo0ZWmgGR6VCSPCM2/eRamb3z7VvI+UPnFsbNY6Q4BnnHxHasaaiorKmkUGE\nBM/wWTtAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJ\nECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAg\nJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRA\ngJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQ\nAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAAB\nQgIECAkQICRAgJAAAUICBJIIqfb1JeuiRxASPOM2pCWTUifzuxtj+j0bNY6Q4BmnIS1u2bYu\n+I1pe/7Eb7YoWBYxkJDgGachDe1WGQR9izakDl9qPTxiICHBM05Dan9NEHxibg+PL+0YMZCQ\n4BmnIbX5SRDszHk0PL6xVcRAQoJnnIZ08lHbguAb19jDnf36RQwkJHjGaUiPmwF//Lzi0Pu3\n7XrpH80vIwYSEjzj9uXveW1M62OKTG6uybm6LmIcIcEzjt+Q/WjW6UXtCg45/qqKyGGEBM/w\nESFAgJAAAUICBJIK6e3i4n2+8k7XTvUKzRbBHIAzSYW03Ox7LbsXl9cr4V8k+CWpkHasWBHx\nXR7awTM8RwIEXIdUt7a8rGxRI7/XR0jwjduQqiZ3M6He07dHjSMkeMZpSBv6mqPGTps5c8ro\nnqZfVcRAQoJnnIY0Pv+RPUe1c3JKIgYSEjzjNKQe4xqOR/WKGEhI8IzTkPJnNBzf0DJiICHB\nM05DKhrZcDyiT8RAQoJnnIZUkjNrZ/po61RTGjGQkOAZpyFVDzDtisdeMWnM0EIzOCoVQoJn\n3L6PVDO7f659Gyl/4NzaqHGEBM84/4jQjjUVFZU1jQwiJHiGz9oBAoQECBASIEBIgAAhAQKE\nBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQI\nEBIgQEiAACEBAoQECGQa0pC51brF1CMkeCbTkHJMwTlljf2nvL8wQoJnMg1p/W0n5ZhOE56r\n0y0pICR4R/AcKWyp6LqVohVZhATPaF5sWH/bkDzlSxCEBM9oQqp64MLOhISDmCCkjb88Lc90\nuOQp0YosQoJnMg3p/TuG5prW55Xt1C0pICR4J/OXv/POuH+Lbj1phATPZBrSoDmbdIupR0jw\nDB8RAgQyDql2yYL/TJOtiZDgnUxDWtbH7KVbFCHBN5mGNLBjyZ3z0nSLIiT4JtOQ2izUraUB\nIcEzmYbUvUK3lgaEBM9kGtKV1+rW0oCQ4JlMQ9o2/PwHn34+pFsUIcE3mYb0ci9etQMyDumE\nViOvn5amWxQhwTeZhtRqvm4tDQgJnsk0pEOW69bSgJDgmUxD+qebdGtpQEjwTKYhVQ+bWL6y\nMqRbFCHBN5mGZAyv2gEZhzR6zPi9dIsiJPiG30cCBDIN6bE3dGtpQEjwTMbvI92qW0sDQoJn\nMg1p2Jm7dYupR0jwTKYhfTT6jF8t4+VvHOx4+RsQyDSkUReP4+VvgJe/AQFCAgQICRAgJECA\nkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAA\nAUICBAgJECAkQICQAAFCAgQICRBIJqRPS1dFfp+Q4JlkQlpvHo/8PiHBM05Dqv+7zaPNaZF/\nvYKQ4BmnIZn/I2IgIcEzTkP6YW7/J6utN83D1dURAwkJnnH7HGlp/5zLPwl4joRmx/GLDZ/f\n2rrnAkJCs+P8Vbu3i83wdYSEZiaBl7/v7dx2GiGheUnifaSNFxhCQvOSzBuyf5i8MvL7hATP\n8Fk7QICQAIGkQnq7uHifr+xeXF6vhJDgl6RCWv7/PiL0TtdO9QrNFsEcgDNJhbRjxYqI7/LQ\nDp7hORIg4DqkurXlZWWL1jUyipDgGbchVU3ulv4Vit7Tt0eNIyR4xmlIG/qao8ZOmzlzyuie\npl9VxEBCgmfc/oZs/iN7jmrn5JREDCQkeMZpSD3GNRyP6hUxkJDgGach5c9oOL6hZcRAQoJn\nnIZUNLLheESfiIGEBM84DakkZ9bO9NHWqaY0YiAhwTNOQ6oeYNoVj71i0pihhWZwVCqEBM+4\nfR+pZnb/XPs2Uv7AubVR4wgJnnH+EaEdayoqKmsaGURI8AyftQMECAkQICRAgJAAAUICBAgJ\nECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQst+SX1x/31+S\nXoQT2xbefPPCbUmvokkIKdt9cErucd/slXdtXdILid+T3dsPGtS++5NJr6MpCCnL1Rx30jup\ns//qMDXplcRuacGPtwfB9h8XLEt6JU1ASFluXpfN4flvCjYlvJLYnT4qfT7y9GTX0SSElOXO\nuSx9vvuQh5NdSOx25pWnD57K35nsSpqCkLLcyXv/gke/2xNdR/w+MKvTB6vNB8mupCkIKcsN\nvzJ9Xtf9wWQXErvtLZ5LHzzbIvLvomYnQspytx+Wfjm4PPf9hFcSu0ET0ucTBiW7jiYhpCy3\ntWh4depsWc9JSa8kdn/K+0Vd6p/e2/MWJb2SJiCkbPfW0R3OvOSkFhc39ocHmoH7C48cNeqI\nwgeSXkdTEFLWq/n1jy+e8VLSq3Diwzsuu+yOD5NeRZMQEiBASIAAIQEChAQIEBIgQEiAACEB\nAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKE\nBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQI\nEBIgQEiAACEBAoQECBASIEBIgAAhAQKEBAgQEiBASIAAIQEChAQIEBIgQEiAACEBAoQECBAS\nIJBYSFXvRnyTkOAZtyG99q2iQXNqw8PSqGshJCTk86qUj9emVC5LWVqe8tQj1i+t2a8e4HJO\nQ/rvAlOYb06psseEBJFddu9vtnt/7St28z9tN/9jdu/Pt3v/jltTbipNmTwh5dLzrdOHpZx4\nfMqXjkjp3imlwOxfvv1mVzvsiOOPv+sAi3Aa0rfzF9btnJ3/9a0BIR3cauze32i3/hq79Zct\nsnv/Ubv377F7/xd270+3e/9qu/cnjLR7/zS790+we/8Yu6cPs9u7zQH2vulov3u4HfcP9hKD\n7GXPstdykb2+y+xVl9pJbg3/nfm1nfmPdg3/bVfzhl3Y+3aJW//2W+QypF4X2dNFLb9VS0i+\nqbP7qupdu8WW2832rN12v7Mb8FfhXgx35XV2f15pt+oYu2m/a7fvqXYjHx/+PO8a9XM/x36z\nUzjuOHuJwfbCw+3VXGiv8J/tVf9LOMuddr4H7dS/q9/7r9uFvWuXWJ3M/eM0pPyp4dkD5ipC\nil+t3VZ/DR/xvGr32jP1W/+hhq1/bf3WH2f37LnD6n/shw95etrN3fZAP/bb2u/2tOO+ZC9x\nQnjhc+31jLPXeJW97ql2ltnhhOEzjafsKpbY9bxpV/aBXeQnSd9VAk5DOvw76fNrzUxC2o9q\nu6vW2/31ht1pL9s9V77Abr+76x/w/DR8VBI+4LnQbtlv2c17SvhT/0i7pQ+xm7vV37j1vx5u\n/fPs9Yyx13ilve7rGh7y/Kr+x/6zdkHL63/sV9UlfV9lG6chXZVzxy57XjfG/ODK5hBSuKfe\ns9trhd1oLzXs/HvtPry9YedPtPv0YrtjR4SbN9z5R9c/1j/gD/0W9rudwwc8/exFvmEvfGb4\nfDmM6Uf2ym+08/yrnXFe+FP/SbuM5//vIx62frychvTX3mZYeFB3VWqPRAyMK6St9c9x11bY\nffbcPg/0Z9kdOc3uzR+F23S03bDftnt3sN3FA8IN3S3yWW5u+FC/jx3Y317mZHvp086vf7xz\ntb32nzT80G94rL84fNpdaRf3sV3n9ljuAsTD7ftIH0/8wZ6jR49sWkgby8ufCH/qzrO78Of7\n2/jfsVu3+Pj6x/mHh1v7QBvftKl/tHNUeJlT61/gGRVe5zX26m/a55H+7+3Ofybc+WGWf7U7\nf0eT7xd4z7ePCE0zhQ2v6g/Y38afXP8U92fhxn/Ibvzfhg+6wo2/ym78dTzagZRvIQFZiZAA\ngaRCeru4eJ+vVIUvbKUNJiT4JamQlv+/V+0ICR5LKqQdK1ZEfJeHdvAMz5EAAdch1a0tLytb\ntK6RUYQEz7gNqWpyt/S7oL2nR75vT0jwjNOQNvQ1R42dNnPmlNE9Tb+qiIGEBM84DWl8/iN7\njmrn5JREDCQkeMZpSD3GNRyP6hUxkJDgGbe/2Dej4fiGlhEDCQmecRpS0ciG4xF9IgYSEjzj\nNKSSnFk700dbp5rSiIGEBM84Dal6gGlXPPaKSWOGFprBUakQEjzj9n2kmtn9c+3bSPkD59ZG\njSMkeMb5R4R2rKmoqKxpZBAhwTN81q4Z2T1vcOfOg+ftTh1+fHW/gj7nvtzky2dq9fGtTd5h\n9wiuyROE1HzsOrtD6aOPlrY/+/Og8rCvzP7Dvefn3d3Ey2fqT7kFI6aPP9xckvE1+YKQmo+f\ndVltz1Z3mVl3wpnhy6N3tVzdpMtnupLdbbp+as+/Z/6Y6VX5gpCaj6LZ6fOf93m5xXvpw5Ou\nadLlM13JPebF9EG7r2d6Vb4gpGajyuz5kyPLzW1/v+dr1w9r0uWjPlD8t7ho78dWTu6c4TV5\ng5CajY1mZfrgTXPLV/Z87cZTmnT5jRkuZWTBnoNTO2Z4Td4gpGZjd+cH0wfzO/+x4NP04Xcu\nbdLlM33d7lbzfvqgx9EZXpM3CKn5uPLLW+zZli9fWdP7h+FXns99tkmXz3Qln+UNCM/nmF9k\nelW+IKTmY/PRxy784IOyY4/eHJS3vPjF6lX/2m5SEy+fqZ+ZI+b95ffDc47N+Jp8QUjNyObx\nrY1pPd528NLJLYw5/N+/2H+U+X9dPlN3t7d/UGCk4r1dPxBSs1K7Zs3eDzFuffWjjC6fqY2P\nRP0H15odQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRA\ngJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQ\nAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAAB\n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", - "text/plain": [ - "plot without title" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tempv = seq(from=30, to=90, by = .5)\n", - "rmv <- predict(logistic_reg,list(Temperature=tempv),type=\"response\")\n", - "plot(tempv,rmv,type=\"l\",ylim=c(0,1))\n", - "points(data=data, Malfunction/Count ~ Temperature)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "hideCode": false, - "hidePrompt": false, - "scrolled": true - }, - "source": [ - "As expected from the initial data, the\n", - "temperature has no significant impact on the probability of failure of the\n", - "O-rings. It will be about 0.2, as in the tests\n", - "where we had a failure of at least one joint. Let's get back\n", - "to the initial dataset to estimate the probability of failure:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "0.0652173913043478" - ], - "text/latex": [ - "0.0652173913043478" - ], - "text/markdown": [ - "0.0652173913043478" - ], - "text/plain": [ - "[1] 0.06521739" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_full = read.csv(\"shuttle.csv\",header=T)\n", - "sum(data_full$Malfunction)/sum(data_full$Count)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This probability is thus about $p=0.065$. Knowing that there is\n", - "a primary and a secondary O-ring on each of the three parts of the\n", - "launcher, the probability of failure of both joints of a launcher\n", - "is $p^2 \\approx 0.00425$. The probability of failure of any one of the\n", - "launchers is $1-(1-p^2)^3 \\approx 1.2\\%$. That would really be\n", - "bad luck.... Everything is under control, so the takeoff can happen\n", - "tomorrow as planned.\n", - "\n", - "But the next day, the Challenger shuttle exploded and took away\n", - "with her the seven crew members. The public was shocked and in\n", - "the subsequent investigation, the reliability of the\n", - "O-rings was questioned. Beyond the internal communication problems\n", - "of NASA, which have a lot to do with this fiasco, the previous analysis\n", - "includes (at least) a small problem.... Can you find it?\n", - "You are free to modify this analysis and to look at this dataset\n", - "from all angles in order to to explain what's wrong." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Hide code", - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "3.6.1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/module2/exo5/exo5_R_en.org b/module2/exo5/exo5_R_en.org deleted file mode 100644 index dc8a5d0..0000000 --- a/module2/exo5/exo5_R_en.org +++ /dev/null @@ -1,201 +0,0 @@ -#+TITLE: Analysis of the risk of failure of the O-rings on the Challenger shuttle -#+AUTHOR: Arnaud Legrand -#+LANGUAGE: en - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -#+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 - -On January 27, 1986, the day before the takeoff of the shuttle /Challenger/, had -a three-hour teleconference was held between -Morton Thiokol (the manufacturer of one of the engines) and NASA. The -discussion focused on the consequences of the -temperature at take-off of 31°F (just below -0°C) for the success of the flight and in particular on the performance of the -O-rings used in the engines. Indeed, no test -had been performed at this temperature. - -The following study takes up some of the analyses carried out that -night with the objective of assessing the potential influence of -the temperature and pressure to which the O-rings are subjected -on their probability of malfunction. Our starting point is -the results of the experiments carried out by NASA engineers -during the six years preceding the launch of the shuttle -Challenger. - -* Loading the data -We start by loading this data: -#+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/29/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 - -The data set shows us the date of each test, the number of O-rings -(there are 6 on the main launcher), the -temperature (in Fahrenheit) and pressure (in psi), and finally the -number of identified malfunctions. - -* Graphical inspection -Flights without incidents do not provide any information -on the influence of temperature or pressure on malfunction. -We thus focus on the experiments in which at least one O-ring was defective. - -#+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 - -We have a high temperature variability but -the pressure is almost always 200, which should -simplify the analysis. - -How does the frequency of failure vary with temperature? -#+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]] - -At first glance, the dependence does not look very important, but let's try to -estimate the impact of temperature $t$ on the probability of O-ring malfunction. - -* Estimation of the temperature influence - -Suppose that each of the six O-rings is damaged with the same -probability and independently of the others and that this probability -depends only on the temperature. If $p(t)$ is this probability, the -number $D$ of malfunctioning O-rings during a flight at -temperature $t$ follows a binomial law with parameters $n=6$ and -$p=p(t)$. To link $p(t)$ to $t$, we will therefore perform a -logistic regression. - -#+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 - -The most likely estimator of the temperature parameter is 0.001416 -and the standard error of this estimator is 0.049, in other words we -cannot distinguish any particular impact and we must take our -estimates with caution. - -* Estimation of the probability of O-ring malfunction -The expected temperature on the take-off day is 31°F. Let's try to -estimate the probability of O-ring malfunction at -this temperature from the model we just built: - -#+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]] - -As expected from the initial data, the -temperature has no significant impact on the probability of failure of the -O-rings. It will be about 0.2, as in the tests -where we had a failure of at least one joint. Let's get back to the initial dataset to estimate the probability of failure: - -#+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 - -This probability is thus about $p=0.065$. Knowing that there is -a primary and a secondary O-ring on each of the three parts of the -launcher, the probability of failure of both joints of a launcher -is $p^2 \approx 0.00425$. The probability of failure of any one of the -launchers is $1-(1-p^2)^3 \approx 1.2%$. That would really be -bad luck.... Everything is under control, so the takeoff can happen -tomorrow as planned. - -But the next day, the Challenger shuttle exploded and took away -with her the seven crew members. The public was shocked and in -the subsequent investigation, the reliability of the -O-rings was questioned. Beyond the internal communication problems -of NASA, which have a lot to do with this fiasco, the previous analysis -includes (at least) a small problem.... Can you find it? -You are free to modify this analysis and to look at this dataset -from all angles in order to to explain what's wrong. diff --git a/module2/exo5/exo5_R_fr.ipynb b/module2/exo5/exo5_R_fr.ipynb deleted file mode 100644 index 4a60719..0000000 --- a/module2/exo5/exo5_R_fr.ipynb +++ /dev/null @@ -1,502 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyse du risque de défaillance des joints toriques de la navette Challenger" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Le 27 Janvier 1986, veille du décollage de la navette _Challenger_, eu\n", - "lieu une télé-conférence de trois heures entre les ingénieurs de la\n", - "Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La\n", - "discussion portait principalement sur les conséquences de la\n", - "température prévue au moment du décollage de 31°F (juste en dessous de\n", - "0°C) sur le succès du vol et en particulier sur la performance des\n", - "joints toriques utilisés dans les moteurs. En effet, aucun test\n", - "n'avait été effectué à cette température.\n", - "\n", - "L'étude qui suit reprend donc une partie des analyses effectuées cette\n", - "nuit là et dont l'objectif était d'évaluer l'influence potentielle de\n", - "la température et de la pression à laquelle sont soumis les joints\n", - "toriques sur leur probabilité de dysfonctionnement. Pour cela, nous\n", - "disposons des résultats des expériences réalisées par les ingénieurs\n", - "de la NASA durant les 6 années précédant le lancement de la navette\n", - "Challenger." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Chargement des données\n", - "Nous commençons donc par charger ces données :" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
DateCountTemperaturePressureMalfunction
4/12/81 6 66 50 0
11/12/816 70 50 1
3/22/82 6 69 50 0
11/11/826 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/836 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/846 78 200 0
11/08/846 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/29/85 6 81 200 0
8/27/85 6 76 200 0
10/03/856 79 200 0
10/30/856 75 200 2
11/26/856 76 200 0
1/12/86 6 58 200 1
\n" - ], - "text/latex": [ - "\\begin{tabular}{r|lllll}\n", - " Date & Count & Temperature & Pressure & Malfunction\\\\\n", - "\\hline\n", - "\t 4/12/81 & 6 & 66 & 50 & 0 \\\\\n", - "\t 11/12/81 & 6 & 70 & 50 & 1 \\\\\n", - "\t 3/22/82 & 6 & 69 & 50 & 0 \\\\\n", - "\t 11/11/82 & 6 & 68 & 50 & 0 \\\\\n", - "\t 4/04/83 & 6 & 67 & 50 & 0 \\\\\n", - "\t 6/18/82 & 6 & 72 & 50 & 0 \\\\\n", - "\t 8/30/83 & 6 & 73 & 100 & 0 \\\\\n", - "\t 11/28/83 & 6 & 70 & 100 & 0 \\\\\n", - "\t 2/03/84 & 6 & 57 & 200 & 1 \\\\\n", - "\t 4/06/84 & 6 & 63 & 200 & 1 \\\\\n", - "\t 8/30/84 & 6 & 70 & 200 & 1 \\\\\n", - "\t 10/05/84 & 6 & 78 & 200 & 0 \\\\\n", - "\t 11/08/84 & 6 & 67 & 200 & 0 \\\\\n", - "\t 1/24/85 & 6 & 53 & 200 & 2 \\\\\n", - "\t 4/12/85 & 6 & 67 & 200 & 0 \\\\\n", - "\t 4/29/85 & 6 & 75 & 200 & 0 \\\\\n", - "\t 6/17/85 & 6 & 70 & 200 & 0 \\\\\n", - "\t 7/29/85 & 6 & 81 & 200 & 0 \\\\\n", - "\t 8/27/85 & 6 & 76 & 200 & 0 \\\\\n", - "\t 10/03/85 & 6 & 79 & 200 & 0 \\\\\n", - "\t 10/30/85 & 6 & 75 & 200 & 2 \\\\\n", - "\t 11/26/85 & 6 & 76 & 200 & 0 \\\\\n", - "\t 1/12/86 & 6 & 58 & 200 & 1 \\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "Date | Count | Temperature | Pressure | Malfunction | \n", - "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", - "| 4/12/81 | 6 | 66 | 50 | 0 | \n", - "| 11/12/81 | 6 | 70 | 50 | 1 | \n", - "| 3/22/82 | 6 | 69 | 50 | 0 | \n", - "| 11/11/82 | 6 | 68 | 50 | 0 | \n", - "| 4/04/83 | 6 | 67 | 50 | 0 | \n", - "| 6/18/82 | 6 | 72 | 50 | 0 | \n", - "| 8/30/83 | 6 | 73 | 100 | 0 | \n", - "| 11/28/83 | 6 | 70 | 100 | 0 | \n", - "| 2/03/84 | 6 | 57 | 200 | 1 | \n", - "| 4/06/84 | 6 | 63 | 200 | 1 | \n", - "| 8/30/84 | 6 | 70 | 200 | 1 | \n", - "| 10/05/84 | 6 | 78 | 200 | 0 | \n", - "| 11/08/84 | 6 | 67 | 200 | 0 | \n", - "| 1/24/85 | 6 | 53 | 200 | 2 | \n", - "| 4/12/85 | 6 | 67 | 200 | 0 | \n", - "| 4/29/85 | 6 | 75 | 200 | 0 | \n", - "| 6/17/85 | 6 | 70 | 200 | 0 | \n", - "| 7/29/85 | 6 | 81 | 200 | 0 | \n", - "| 8/27/85 | 6 | 76 | 200 | 0 | \n", - "| 10/03/85 | 6 | 79 | 200 | 0 | \n", - "| 10/30/85 | 6 | 75 | 200 | 2 | \n", - "| 11/26/85 | 6 | 76 | 200 | 0 | \n", - "| 1/12/86 | 6 | 58 | 200 | 1 | \n", - "\n", - "\n" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "1 4/12/81 6 66 50 0 \n", - "2 11/12/81 6 70 50 1 \n", - "3 3/22/82 6 69 50 0 \n", - "4 11/11/82 6 68 50 0 \n", - "5 4/04/83 6 67 50 0 \n", - "6 6/18/82 6 72 50 0 \n", - "7 8/30/83 6 73 100 0 \n", - "8 11/28/83 6 70 100 0 \n", - "9 2/03/84 6 57 200 1 \n", - "10 4/06/84 6 63 200 1 \n", - "11 8/30/84 6 70 200 1 \n", - "12 10/05/84 6 78 200 0 \n", - "13 11/08/84 6 67 200 0 \n", - "14 1/24/85 6 53 200 2 \n", - "15 4/12/85 6 67 200 0 \n", - "16 4/29/85 6 75 200 0 \n", - "17 6/17/85 6 70 200 0 \n", - "18 7/29/85 6 81 200 0 \n", - "19 8/27/85 6 76 200 0 \n", - "20 10/03/85 6 79 200 0 \n", - "21 10/30/85 6 75 200 2 \n", - "22 11/26/85 6 76 200 0 \n", - "23 1/12/86 6 58 200 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = read.csv(\"shuttle.csv\",header=T)\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Le jeu de données nous indique la date de l'essai, le nombre de joints\n", - "toriques mesurés (il y en a 6 sur le lançeur principal), la\n", - "température (en Farenheit) et la pression (en psi), et enfin le\n", - "nombre de dysfonctionnements relevés." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inspection graphique des données\n", - "Les vols où aucun incident n'est relevé n'apportant aucun information\n", - "sur l'influence de la température ou de la pression sur les\n", - "dysfonctionnements, nous nous concentrons sur les expériences où au\n", - "moins un joint a été défectueux." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "
A data.frame: 7 × 5
DateCountTemperaturePressureMalfunction
<fct><int><int><int><int>
211/12/81670 501
92/03/84 6572001
104/06/84 6632001
118/30/84 6702001
141/24/85 6532002
2110/30/856752002
231/12/86 6582001
\n" - ], - "text/latex": [ - "A data.frame: 7 × 5\n", - "\\begin{tabular}{r|lllll}\n", - " & Date & Count & Temperature & Pressure & Malfunction\\\\\n", - " & & & & & \\\\\n", - "\\hline\n", - "\t2 & 11/12/81 & 6 & 70 & 50 & 1\\\\\n", - "\t9 & 2/03/84 & 6 & 57 & 200 & 1\\\\\n", - "\t10 & 4/06/84 & 6 & 63 & 200 & 1\\\\\n", - "\t11 & 8/30/84 & 6 & 70 & 200 & 1\\\\\n", - "\t14 & 1/24/85 & 6 & 53 & 200 & 2\\\\\n", - "\t21 & 10/30/85 & 6 & 75 & 200 & 2\\\\\n", - "\t23 & 1/12/86 & 6 & 58 & 200 & 1\\\\\n", - "\\end{tabular}\n" - ], - "text/markdown": [ - "\n", - "A data.frame: 7 × 5\n", - "\n", - "| | Date <fct> | Count <int> | Temperature <int> | Pressure <int> | Malfunction <int> |\n", - "|---|---|---|---|---|---|\n", - "| 2 | 11/12/81 | 6 | 70 | 50 | 1 |\n", - "| 9 | 2/03/84 | 6 | 57 | 200 | 1 |\n", - "| 10 | 4/06/84 | 6 | 63 | 200 | 1 |\n", - "| 11 | 8/30/84 | 6 | 70 | 200 | 1 |\n", - "| 14 | 1/24/85 | 6 | 53 | 200 | 2 |\n", - "| 21 | 10/30/85 | 6 | 75 | 200 | 2 |\n", - "| 23 | 1/12/86 | 6 | 58 | 200 | 1 |\n", - "\n" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "2 11/12/81 6 70 50 1 \n", - "9 2/03/84 6 57 200 1 \n", - "10 4/06/84 6 63 200 1 \n", - "11 8/30/84 6 70 200 1 \n", - "14 1/24/85 6 53 200 2 \n", - "21 10/30/85 6 75 200 2 \n", - "23 1/12/86 6 58 200 1 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data = data[data$Malfunction>0,]\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Très bien, nous avons une variabilité de température importante mais\n", - "la pression est quasiment toujours égale à 200, ce qui devrait\n", - "simplifier l'analyse.\n", - "\n", - "Comment la fréquence d'échecs varie-t-elle avec la température ?" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC+lBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJycp\nKSkqKiorKystLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6Ojo7Ozs8\nPDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tMTExNTU1O\nTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1eXl5fX19g\nYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29wcHBxcXFy\ncnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGCgoKDg4OE\nhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OUlJSVlZWW\nlpaXl5eYmJiZmZmampqbm5ucnJydnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqanp6eo\nqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5ubm6\nurq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrLy8vM\nzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e\n3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w\n8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///9puzMQAAAA\nCXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3dC3SU5b3v8WdIhksgICi3cAlotbUtETxc\nWvBQo2WrWPTUgtgqEVqsgMZdVKBFQLywd2i1anW70b29HbcepFGPp8IRkSpFYQOixeIlokes\n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\nRTZ+AAAAAElFTkSuQmCC", - "text/plain": [ - "plot without title" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "À première vue, ce n'est pas flagrant mais bon, essayons quand même\n", - "d'estimer l'impact de la température $t$ sur la probabilité de\n", - "dysfonctionnements d'un joint." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation de l'influence de la température\n", - "\n", - "Supposons que chacun des 6 joints toriques est endommagé avec la même\n", - "probabilité et indépendamment des autres et que cette probabilité ne\n", - "dépend que de la température. Si on note $p(t)$ cette probabilité, le\n", - "nombre de joints $D$ dysfonctionnant lorsque l'on effectue le vol à\n", - "température $t$ suit une loi binomiale de paramètre $n=6$ et\n", - "$p=p(t)$. Pour relier $p(t)$ à $t$, on va donc effectuer une\n", - "régression logistique." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\n", - "Call:\n", - "glm(formula = Malfunction/Count ~ Temperature, family = binomial(link = \"logit\"), \n", - " data = data, weights = Count)\n", - "\n", - "Deviance Residuals: \n", - " 2 9 10 11 14 21 23 \n", - "-0.3015 -0.2836 -0.2919 -0.3015 0.6891 0.6560 -0.2850 \n", - "\n", - "Coefficients:\n", - " Estimate Std. Error z value Pr(>|z|)\n", - "(Intercept) -1.389528 3.195752 -0.435 0.664\n", - "Temperature 0.001416 0.049773 0.028 0.977\n", - "\n", - "(Dispersion parameter for binomial family taken to be 1)\n", - "\n", - " Null deviance: 1.3347 on 6 degrees of freedom\n", - "Residual deviance: 1.3339 on 5 degrees of freedom\n", - "AIC: 18.894\n", - "\n", - "Number of Fisher Scoring iterations: 4\n" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count, \n", - " family=binomial(link='logit'))\n", - "summary(logistic_reg)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "L'estimateur le plus probable du paramètre de température est 0.001416\n", - "et l'erreur standard de cet estimateur est de 0.049, autrement dit on\n", - "ne peut pas distinguer d'impact particulier et il faut prendre nos\n", - "estimations avec des pincettes." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation de la probabilité de dysfonctionnant des joints toriques\n", - "\n", - "La température prévue le jour du décollage est de 31°F. Essayons\n", - "d'estimer la probabilité de dysfonctionnement des joints toriques à\n", - "cette température à partir du modèle que nous venons de construire :" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0gAAANICAMAAADKOT/pAAAC/VBMVEUAAAABAQECAgIDAwME\nBAQFBQUGBgYHBwcICAgJCQkKCgoLCwsMDAwNDQ0ODg4PDw8QEBARERESEhITExMUFBQVFRUW\nFhYXFxcYGBgZGRkaGhobGxscHBwdHR0eHh4fHx8gICAhISEiIiIjIyMkJCQlJSUmJiYnJyco\nKCgpKSkqKiorKyssLCwtLS0uLi4vLy8wMDAxMTEyMjIzMzM0NDQ1NTU2NjY3Nzc4ODg5OTk6\nOjo7Ozs8PDw9PT0+Pj4/Pz9AQEBBQUFCQkJDQ0NERERFRUVGRkZHR0dISEhJSUlKSkpLS0tM\nTExNTU1OTk5PT09QUFBRUVFSUlJTU1NUVFRVVVVWVlZXV1dYWFhZWVlaWlpbW1tcXFxdXV1e\nXl5fX19gYGBhYWFiYmJjY2NkZGRlZWVmZmZnZ2doaGhpaWlqampra2tsbGxtbW1ubm5vb29w\ncHBxcXFycnJzc3N0dHR1dXV2dnZ3d3d4eHh5eXl6enp7e3t8fHx9fX1+fn5/f3+AgICBgYGC\ngoKDg4OEhISFhYWGhoaHh4eIiIiJiYmKioqLi4uMjIyNjY2Ojo6Pj4+QkJCRkZGSkpKTk5OU\nlJSVlZWWlpaXl5eYmJiZmZmampqbm5udnZ2enp6fn5+goKChoaGioqKjo6OkpKSlpaWmpqan\np6eoqKipqamqqqqrq6usrKytra2urq6vr6+wsLCxsbGysrKzs7O0tLS1tbW2tra3t7e4uLi5\nubm6urq7u7u8vLy9vb2+vr6/v7/AwMDBwcHCwsLDw8PExMTFxcXGxsbHx8fIyMjJycnKysrL\ny8vMzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd\n3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v\n7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v7///8D/m+7\nAAAACXBIWXMAABJ0AAASdAHeZh94AAAgAElEQVR4nO3de3yU1YGH8ROSEAh35CYKAV231q5C\nsVWsgLihXlop1guI1YKw4gpqWrHNqhQUpVrY4loX14JXtGsthrq21ZoiXhYvhYiKghDRCoqC\n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\n2/jfsVu3+Pj6x/mHh1v7QBvftKl/tHNUeJlT61/gGRVe5zX26m/a55H+7+3Ofybc+WGWf7U7\nf0eT7xd4z7ePCE0zhQ2v6g/Y38afXP8U92fhxn/Ibvzfhg+6wo2/ym78dTzagZRvIQFZiZAA\ngaRCeru4eJ+vVIUvbKUNJiT4JamQlv+/V+0ICR5LKqQdK1ZEfJeHdvAMz5EAAdch1a0tLytb\ntK6RUYQEz7gNqWpyt/S7oL2nR75vT0jwjNOQNvQ1R42dNnPmlNE9Tb+qiIGEBM84DWl8/iN7\njmrn5JREDCQkeMZpSD3GNRyP6hUxkJDgGbe/2Dej4fiGlhEDCQmecRpS0ciG4xF9IgYSEjzj\nNKSSnFk700dbp5rSiIGEBM84Dal6gGlXPPaKSWOGFprBUakQEjzj9n2kmtn9c+3bSPkD59ZG\njSMkeMb5R4R2rKmoqKxpZBAhwTN81q4Z2T1vcOfOg+ftTh1+fHW/gj7nvtzky2dq9fGtTd5h\n9wiuyROE1HzsOrtD6aOPlrY/+/Og8rCvzP7Dvefn3d3Ey2fqT7kFI6aPP9xckvE1+YKQmo+f\ndVltz1Z3mVl3wpnhy6N3tVzdpMtnupLdbbp+as+/Z/6Y6VX5gpCaj6LZ6fOf93m5xXvpw5Ou\nadLlM13JPebF9EG7r2d6Vb4gpGajyuz5kyPLzW1/v+dr1w9r0uWjPlD8t7ho78dWTu6c4TV5\ng5CajY1mZfrgTXPLV/Z87cZTmnT5jRkuZWTBnoNTO2Z4Td4gpGZjd+cH0wfzO/+x4NP04Xcu\nbdLlM33d7lbzfvqgx9EZXpM3CKn5uPLLW+zZli9fWdP7h+FXns99tkmXz3Qln+UNCM/nmF9k\nelW+IKTmY/PRxy784IOyY4/eHJS3vPjF6lX/2m5SEy+fqZ+ZI+b95ffDc47N+Jp8QUjNyObx\nrY1pPd528NLJLYw5/N+/2H+U+X9dPlN3t7d/UGCk4r1dPxBSs1K7Zs3eDzFuffWjjC6fqY2P\nRP0H15odQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRA\ngJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQ\nAAFCAgQICRAgJECAkAABQgIECAkQICRAgJAAAUICBAgJECAkQICQAAFCAgQICRAgJECAkAAB\n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", - "text/plain": [ - "plot without title" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "tempv = seq(from=30, to=90, by = .5)\n", - "rmv <- predict(logistic_reg,list(Temperature=tempv),type=\"response\")\n", - "plot(tempv,rmv,type=\"l\",ylim=c(0,1))\n", - "points(data=data, Malfunction/Count ~ Temperature)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "hideCode": false, - "hidePrompt": false, - "scrolled": true - }, - "source": [ - "Comme on pouvait s'attendre au vu des données initiales, la\n", - "température n'a pas d'impact notable sur la probabilité d'échec des\n", - "joints toriques. Elle sera d'environ 0.2, comme dans les essais\n", - "précédents où nous il y a eu défaillance d'au moins un joint. Revenons\n", - "à l'ensemble des données initiales pour estimer la probabilité de\n", - "défaillance d'un joint :" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "0.0652173913043478" - ], - "text/latex": [ - "0.0652173913043478" - ], - "text/markdown": [ - "0.0652173913043478" - ], - "text/plain": [ - "[1] 0.06521739" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "data_full = read.csv(\"shuttle.csv\",header=T)\n", - "sum(data_full$Malfunction)/sum(data_full$Count)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe\n", - "un joint primaire un joint secondaire sur chacune des trois parties du\n", - "lançeur, la probabilité de défaillance des deux joints d'un lançeur\n", - "est de $p^2 \\approx 0.00425$. La probabilité de défaillance d'un des\n", - "lançeur est donc de $1-(1-p^2)^3 \\approx 1.2%$. Ça serait vraiment\n", - "pas de chance... Tout est sous contrôle, le décollage peut donc avoir\n", - "lieu demain comme prévu.\n", - "\n", - "Seulement, le lendemain, la navette Challenger explosera et emportera\n", - "avec elle ses sept membres d'équipages. L'opinion publique est\n", - "fortement touchée et lors de l'enquête qui suivra, la fiabilité des\n", - "joints toriques sera directement mise en cause. Au delà des problèmes\n", - "de communication interne à la NASA qui sont pour beaucoup dans ce\n", - "fiasco, l'analyse précédente comporte (au moins) un petit\n", - "problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette\n", - "analyse et de regarder ce jeu de données sous tous les angles afin\n", - "d'expliquer ce qui ne va pas." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Hide code", - "kernelspec": { - "display_name": "R", - "language": "R", - "name": "ir" - }, - "language_info": { - "codemirror_mode": "r", - "file_extension": ".r", - "mimetype": "text/x-r-source", - "name": "R", - "pygments_lexer": "r", - "version": "3.5.1" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/module2/exo5/exo5_R_fr.org b/module2/exo5/exo5_R_fr.org deleted file mode 100644 index 336a9f7..0000000 --- a/module2/exo5/exo5_R_fr.org +++ /dev/null @@ -1,207 +0,0 @@ -#+TITLE: Analyse du risque de défaillance des joints toriques de la navette Challenger -#+AUTHOR: Arnaud Legrand -#+LANGUAGE: fr - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -#+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/29/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. - diff --git a/module2/exo5/exo5_en.Rmd b/module2/exo5/exo5_en.Rmd deleted file mode 100644 index f9003e3..0000000 --- a/module2/exo5/exo5_en.Rmd +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: "Analysis of the risk of failure of the O-rings on the Challenger shuttle" -author: "Arnaud Legrand" -date: "28 juin 2018" -output: html_document ---- - -On January 27, 1986, the day before the takeoff of the shuttle _Challenger_, had -a three-hour teleconference was held between -Morton Thiokol (the manufacturer of one of the engines) and NASA. The -discussion focused on the consequences of the -temperature at take-off of 31°F (just below -0°C) for the success of the flight and in particular on the performance of the -O-rings used in the engines. Indeed, no test -had been performed at this temperature. - -The following study takes up some of the analyses carried out that -night with the objective of assessing the potential influence of -the temperature and pressure to which the O-rings are subjected -on their probability of malfunction. Our starting point is -the results of the experiments carried out by NASA engineers -during the six years preceding the launch of the shuttle -Challenger. - -# Loading the data -We start by loading this data: - -```{r} -data = read.csv("shuttle.csv",header=T) -data -``` - -The data set shows us the date of each test, the number of O-rings -(there are 6 on the main launcher), the -temperature (in Fahrenheit) and pressure (in psi), and finally the -number of identified malfunctions. - -# Graphical inspection -Flights without incidents do not provide any information -on the influence of temperature or pressure on malfunction. -We thus focus on the experiments in which at least one O-ring was defective. - -```{r} -data = data[data$Malfunction>0,] -data -``` - -We have a high temperature variability but -the pressure is almost always 200, which should -simplify the analysis. - -How does the frequency of failure vary with temperature? -```{r} -plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1)) -``` - -At first glance, the dependence does not look very important, but let's try to -estimate the impact of temperature $t$ on the probability of O-ring malfunction. - -# Estimation of the temperature influence - -Suppose that each of the six O-rings is damaged with the same -probability and independently of the others and that this probability -depends only on the temperature. If $p(t)$ is this probability, the -number $D$ of malfunctioning O-rings during a flight at -temperature $t$ follows a binomial law with parameters $n=6$ and -$p=p(t)$. To link $p(t)$ to $t$, we will therefore perform a -logistic regression. - -```{r} -logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count, - family=binomial(link='logit')) -summary(logistic_reg) -``` - -The most likely estimator of the temperature parameter is 0.001416 -and the standard error of this estimator is 0.049, in other words we -cannot distinguish any particular impact and we must take our -estimates with caution. - -# Estimation of the probability of O-ring malfunction -The expected temperature on the take-off day is 31°F. Let's try to -estimate the probability of O-ring malfunction at -this temperature from the model we just built: - -```{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) -``` - -As expected from the initial data, the -temperature has no significant impact on the probability of failure of the -O-rings. It will be about 0.2, as in the tests -where we had a failure of at least one joint. Let's get back to the initial dataset to estimate the probability of failure: - -```{r} -data_full = read.csv("shuttle.csv",header=T) -sum(data_full$Malfunction)/sum(data_full$Count) -``` - -This probability is thus about $p=0.065$. Knowing that there is -a primary and a secondary O-ring on each of the three parts of the -launcher, the probability of failure of both joints of a launcher -is $p^2 \approx 0.00425$. The probability of failure of any one of the -launchers is $1-(1-p^2)^3 \approx 1.2%$. That would really be -bad luck.... Everything is under control, so the takeoff can happen -tomorrow as planned. - -But the next day, the Challenger shuttle exploded and took away -with her the seven crew members. The public was shocked and in -the subsequent investigation, the reliability of the -O-rings was questioned. Beyond the internal communication problems -of NASA, which have a lot to do with this fiasco, the previous analysis -includes (at least) a small problem.... Can you find it? -You are free to modify this analysis and to look at this dataset -from all angles in order to to explain what's wrong. diff --git a/module2/exo5/exo5_en.ipynb b/module2/exo5/exo5_en.ipynb deleted file mode 100644 index 6a0919d..0000000 --- a/module2/exo5/exo5_en.ipynb +++ /dev/null @@ -1,714 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analysis of the risk of failure of the O-rings on the Challenger shuttle" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "On January 27, 1986, the day before the takeoff of the shuttle _Challenger_, had\n", - "a three-hour teleconference was held between \n", - "Morton Thiokol (the manufacturer of one of the engines) and NASA. The\n", - "discussion focused on the consequences of the\n", - "temperature at take-off of 31°F (just below\n", - "0°C) for the success of the flight and in particular on the performance of the\n", - "O-rings used in the engines. Indeed, no test\n", - "had been performed at this temperature.\n", - "\n", - "The following study takes up some of the analyses carried out that\n", - "night with the objective of assessing the potential influence of\n", - "the temperature and pressure to which the O-rings are subjected\n", - "on their probability of malfunction. Our starting point is \n", - "the results of the experiments carried out by NASA engineers\n", - "during the six years preceding the launch of the shuttle\n", - "Challenger." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Loading the data\n", - "We start by loading this data:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DateCountTemperaturePressureMalfunction
04/12/81666500
111/12/81670501
23/22/82669500
311/11/82668500
44/04/83667500
56/18/82672500
68/30/836731000
711/28/836701000
82/03/846572001
94/06/846632001
108/30/846702001
1110/05/846782000
1211/08/846672000
131/24/856532002
144/12/856672000
154/29/856752000
166/17/856702000
177/29/856812000
188/27/856762000
1910/03/856792000
2010/30/856752002
2111/26/856762000
221/12/866582001
\n", - "
" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "0 4/12/81 6 66 50 0\n", - "1 11/12/81 6 70 50 1\n", - "2 3/22/82 6 69 50 0\n", - "3 11/11/82 6 68 50 0\n", - "4 4/04/83 6 67 50 0\n", - "5 6/18/82 6 72 50 0\n", - "6 8/30/83 6 73 100 0\n", - "7 11/28/83 6 70 100 0\n", - "8 2/03/84 6 57 200 1\n", - "9 4/06/84 6 63 200 1\n", - "10 8/30/84 6 70 200 1\n", - "11 10/05/84 6 78 200 0\n", - "12 11/08/84 6 67 200 0\n", - "13 1/24/85 6 53 200 2\n", - "14 4/12/85 6 67 200 0\n", - "15 4/29/85 6 75 200 0\n", - "16 6/17/85 6 70 200 0\n", - "17 7/29/85 6 81 200 0\n", - "18 8/27/85 6 76 200 0\n", - "19 10/03/85 6 79 200 0\n", - "20 10/30/85 6 75 200 2\n", - "21 11/26/85 6 76 200 0\n", - "22 1/12/86 6 58 200 1" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "data = pd.read_csv(\"shuttle.csv\")\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The data set shows us the date of each test, the number of O-rings (there are 6 on the main launcher), the temperature (in Fahrenheit) and pressure (in psi), and finally the number of identified malfunctions." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Graphical inspection\n", - "Flights without incidents do not provide any information\n", - "on the influence of temperature or pressure on malfunction.\n", - "We thus focus on the experiments in which at least one O-ring\n", - "was defective." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DateCountTemperaturePressureMalfunction
111/12/81670501
82/03/846572001
94/06/846632001
108/30/846702001
131/24/856532002
2010/30/856752002
221/12/866582001
\n", - "
" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "1 11/12/81 6 70 50 1\n", - "8 2/03/84 6 57 200 1\n", - "9 4/06/84 6 63 200 1\n", - "10 8/30/84 6 70 200 1\n", - "13 1/24/85 6 53 200 2\n", - "20 10/30/85 6 75 200 2\n", - "22 1/12/86 6 58 200 1" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data = data[data.Malfunction>0]\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have a high temperature variability but\n", - "the pressure is almost always 200, which should\n", - "simplify the analysis.\n", - "\n", - "How does the frequency of failure vary with temperature?" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "pd.set_option('mode.chained_assignment',None) # this removes a useless warning from pandas\n", - "import matplotlib.pyplot as plt\n", - "\n", - "data[\"Frequency\"]=data.Malfunction/data.Count\n", - "data.plot(x=\"Temperature\",y=\"Frequency\",kind=\"scatter\",ylim=[0,1])\n", - "plt.grid(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "At first glance, the dependence does not look very important, but let's try to\n", - "estimate the impact of temperature $t$ on the probability of O-ring malfunction." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation of the temperature influence\n", - "\n", - "Suppose that each of the six O-rings is damaged with the same\n", - "probability and independently of the others and that this probability\n", - "depends only on the temperature. If $p(t)$ is this probability, the\n", - "number $D$ of malfunctioning O-rings during a flight at\n", - "temperature $t$ follows a binomial law with parameters $n=6$ and\n", - "$p=p(t)$. To link $p(t)$ to $t$, we will therefore perform a\n", - "logistic regression." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
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.0000
Method: IRLS Log-Likelihood: -2.5250
Date: Sat, 13 Apr 2019 Deviance: 0.22231
Time: 19:12:05 Pearson chi2: 0.236
No. Iterations: 4 Covariance Type: nonrobust
\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
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
" - ], - "text/plain": [ - "\n", - "\"\"\"\n", - " Generalized Linear Model Regression Results \n", - "==============================================================================\n", - "Dep. Variable: Frequency No. Observations: 7\n", - "Model: GLM Df Residuals: 5\n", - "Model Family: Binomial Df Model: 1\n", - "Link Function: logit Scale: 1.0000\n", - "Method: IRLS Log-Likelihood: -2.5250\n", - "Date: Sat, 13 Apr 2019 Deviance: 0.22231\n", - "Time: 19:12:05 Pearson chi2: 0.236\n", - "No. Iterations: 4 Covariance Type: nonrobust\n", - "===============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "-------------------------------------------------------------------------------\n", - "Intercept -1.3895 7.828 -0.178 0.859 -16.732 13.953\n", - "Temperature 0.0014 0.122 0.012 0.991 -0.238 0.240\n", - "===============================================================================\n", - "\"\"\"" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import statsmodels.api as sm\n", - "\n", - "data[\"Success\"]=data.Count-data.Malfunction\n", - "data[\"Intercept\"]=1\n", - "\n", - "logmodel=sm.GLM(data['Frequency'], data[['Intercept','Temperature']], family=sm.families.Binomial(sm.families.links.logit)).fit()\n", - "\n", - "logmodel.summary()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The most likely estimator of the temperature parameter is 0.0014\n", - "and the standard error of this estimator is 0.122, in other words we\n", - "cannot distinguish any particular impact and we must take our\n", - "estimates with caution." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation of the probability of O-ring malfunction\n", - "\n", - "The expected temperature on the take-off day is 31°F. Let's try to\n", - "estimate the probability of O-ring malfunction at\n", - "this temperature from the model we just built:" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEKCAYAAAAcgp5RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAGyFJREFUeJzt3X2UVPWd5/H3pxuQBhEjkhkFDWSWtHF9ABRQWZ3WqGhORLPrE2vGMRNCdmeMk83Knng2E43Rc2YHd2I26zgy6jgxiUo8iiSHCahjT2Y8PoCCILAIY4g2JEGND7Q2Snd/9497u6kuqunqpvqhfnxe5/Tpurd+de/3V7fvp27fuvUrRQRmZpaumsEuwMzM+peD3swscQ56M7PEOejNzBLnoDczS5yD3swscT0GvaR7Je2U9HI390vS/5G0VdI6SdMrX6aZmfVVOUf09wEX7Of+C4Ep+c8C4M4DL8vMzCqlx6CPiF8Av9tPk4uBH0TmWeBwSUdVqkAzMzswwyqwjAnA6wXTTfm8Xxc3lLSA7KifkSNHnnLsscdWYPVDU3t7OzU16b4FknL/Uu4buH/V7pVXXnkzIsb35jGVCHqVmFdyXIWIWAwsBqivr4/NmzdXYPVDU2NjIw0NDYNdRr9JuX8p9w3cv2on6Ve9fUwlXvaagGMKpicCOyqwXDMzq4BKBP0y4Or86pvTgHcjYp/TNmZmNjh6PHUj6QGgAThSUhNwIzAcICL+FlgOfBbYCnwAfLG/ijUzs97rMegjYl4P9wfwZxWryMyqwp49e2hqamL37t2DXUoXY8eOZdOmTYNdxgEbOXIkEydOZPjw4Qe8rEq8GWtmB6GmpibGjBnDpEmTkEpdkzE4du3axZgxYwa7jAMSEbz11ls0NTUxefLkA15eutcgmVm/2r17N+PGjRtSIZ8KSYwbN65i/y056M2szxzy/aeSz62D3swscT5Hb2ZVq7a2lhNPPLFzeunSpYwbN24QKxqaHPRmVrXq6upYu3Ztl3m7du3qvN3a2sqwYY45n7oxs6T86Ec/4rLLLuOiiy7i/PPPB2DRokXMmDGDk046iRtvvLGz7a233kp9fT3nnnsu8+bN47bbbgOgoaGB1atXA/Dmm28yadIkANra2li4cGHnsu666y5g77ALl156KccddxxXXXUV2ZXnsGrVKs444wxOPvlkZs6cya5duzjzzDO7vEDNnj2bdevW9dtz4pc6Mztg3/7pBjbueK+iyzz+6MO48aJ/v982LS0tTJ06FYDJkyfz6KOPAvDMM8+wbt06jjjiCFauXMmWLVt4/vnniQjmzp3LL37xC0aPHs2DDz7ImjVraG1tZfr06Zxyyin7Xd8999zD2LFjWbVqFR9++CGzZ8/ufDFZs2YNGzZs4Oijj2b27Nk8/fTTzJw5kyuuuIKHHnqIGTNm8N5771FXV8f8+fO57777uP3223nllVf48MMPOemkkyrwrJXmoDezqlXq1A3AeeedxxFHHAHAypUrWblyJdOmTQOgubmZLVu2sGvXLj7/+c8zatQoAObOndvj+lauXMm6det4+OGHAXj33XfZsmULI0aMYObMmUycOBGAqVOnsm3bNsaOHctRRx3FjBkzADjssMMAuOyyy/jOd77DokWLuPfee7nmmmsO7InogYPezA5YT0feA2306NGdtyOCG264ga985Std2tx+++3dXsI4bNgw2tvbAbpcyx4RfP/732fOnDld2jc2NnLIIYd0TtfW1tLa2kpElFzHqFGjOO+883jsscdYsmRJ52mi/uJz9GaWtDlz5nDvvffS3NwMwPbt29m5cydnnXUWjz76KC0tLezatYuf/vSnnY+ZNGkSL7zwAkDn0XvHsu6880727NkDwCuvvML777/f7bqPO+44duzYwapVq4DsjeLW1lYA5s+fz3XXXceMGTM6//voLz6iN7OknX/++WzatInTTz8dgEMPPZQf/vCHTJ8+nSuuuIKpU6fyiU98gjPPPLPzMddffz2XX345999/P+ecc07n/Pnz57Nt2zamT59ORDB+/HiWLl3a7bpHjBjBQw89xFe/+lVaWlqoq6vjiSee4NBDD+WUU07hsMMO44tfHIBxICNiUH4+9alPRcqeeuqpwS6hX6Xcv5T7FlG5/m3cuLEiy6m09957r0+Pu/HGG2PRokUVrqZ727dvjylTpkRbW1u3bUo9x8Dq6GXe+tSNmdkA+8EPfsCsWbO49dZbB+RrD33qxswMuOmmmwZsXVdffTVXX331gK3PR/Rm1mcRJb8e2iqgks+tg97M+mTkyJG89dZbDvt+EPl49CNHjqzI8nzqxsz6ZOLEiTQ1NfHGG28Mdild7N69u2IBOZg6vmGqEhz0ZtYnw4cP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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "data_pred = pd.DataFrame({'Temperature': np.linspace(start=30, stop=90, num=121), 'Intercept': 1})\n", - "data_pred['Frequency'] = logmodel.predict(data_pred[['Intercept','Temperature']])\n", - "data_pred.plot(x=\"Temperature\",y=\"Frequency\",kind=\"line\",ylim=[0,1])\n", - "plt.scatter(x=data[\"Temperature\"],y=data[\"Frequency\"])\n", - "plt.grid(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "hideCode": false, - "hidePrompt": false, - "scrolled": true - }, - "source": [ - "As expected from the initial data, the\n", - "temperature has no significant impact on the probability of failure of the\n", - "O-rings. It will be about 0.2, as in the tests\n", - "where we had a failure of at least one joint. Let's get back\n", - "to the initial dataset to estimate the probability of failure:" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.06521739130434782\n" - ] - } - ], - "source": [ - "data = pd.read_csv(\"shuttle.csv\")\n", - "print(np.sum(data.Malfunction)/np.sum(data.Count))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This probability is thus about $p=0.065$. Knowing that there is\n", - "a primary and a secondary O-ring on each of the three parts of the\n", - "launcher, the probability of failure of both joints of a launcher\n", - "is $p^2 \\approx 0.00425$. The probability of failure of any one of the\n", - "launchers is $1-(1-p^2)^3 \\approx 1.2%$. That would really be\n", - "bad luck.... Everything is under control, so the takeoff can happen\n", - "tomorrow as planned.\n", - "\n", - "But the next day, the Challenger shuttle exploded and took away\n", - "with her the seven crew members. The public was shocked and in\n", - "the subsequent investigation, the reliability of the\n", - "O-rings was questioned. Beyond the internal communication problems\n", - "of NASA, which have a lot to do with this fiasco, the previous analysis\n", - "includes (at least) a small problem.... Can you find it?\n", - "You are free to modify this analysis and to look at this dataset\n", - "from all angles in order to to explain what's wrong." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "celltoolbar": "Hide code", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/module2/exo5/exo5_fr.ipynb b/module2/exo5/exo5_fr.ipynb deleted file mode 100644 index 26ad6d9..0000000 --- a/module2/exo5/exo5_fr.ipynb +++ /dev/null @@ -1,713 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Analyse du risque de défaillance des joints toriques de la navette Challenger" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Le 27 Janvier 1986, veille du décollage de la navette *Challenger*, eu\n", - "lieu une télé-conférence de trois heures entre les ingénieurs de la\n", - "Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La\n", - "discussion portait principalement sur les conséquences de la\n", - "température prévue au moment du décollage de 31°F (juste en dessous de\n", - "0°C) sur le succès du vol et en particulier sur la performance des\n", - "joints toriques utilisés dans les moteurs. En effet, aucun test\n", - "n'avait été effectué à cette température.\n", - "\n", - "L'étude qui suit reprend donc une partie des analyses effectuées cette\n", - "nuit là et dont l'objectif était d'évaluer l'influence potentielle de\n", - "la température et de la pression à laquelle sont soumis les joints\n", - "toriques sur leur probabilité de dysfonctionnement. Pour cela, nous\n", - "disposons des résultats des expériences réalisées par les ingénieurs\n", - "de la NASA durant les 6 années précédant le lancement de la navette\n", - "Challenger.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Chargement des données\n", - "Nous commençons donc par charger ces données:" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DateCountTemperaturePressureMalfunction
04/12/81666500
111/12/81670501
23/22/82669500
311/11/82668500
44/04/83667500
56/18/82672500
68/30/836731000
711/28/836701000
82/03/846572001
94/06/846632001
108/30/846702001
1110/05/846782000
1211/08/846672000
131/24/856532002
144/12/856672000
154/29/856752000
166/17/856702000
177/29/856812000
188/27/856762000
1910/03/856792000
2010/30/856752002
2111/26/856762000
221/12/866582001
\n", - "
" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "0 4/12/81 6 66 50 0\n", - "1 11/12/81 6 70 50 1\n", - "2 3/22/82 6 69 50 0\n", - "3 11/11/82 6 68 50 0\n", - "4 4/04/83 6 67 50 0\n", - "5 6/18/82 6 72 50 0\n", - "6 8/30/83 6 73 100 0\n", - "7 11/28/83 6 70 100 0\n", - "8 2/03/84 6 57 200 1\n", - "9 4/06/84 6 63 200 1\n", - "10 8/30/84 6 70 200 1\n", - "11 10/05/84 6 78 200 0\n", - "12 11/08/84 6 67 200 0\n", - "13 1/24/85 6 53 200 2\n", - "14 4/12/85 6 67 200 0\n", - "15 4/29/85 6 75 200 0\n", - "16 6/17/85 6 70 200 0\n", - "17 7/29/85 6 81 200 0\n", - "18 8/27/85 6 76 200 0\n", - "19 10/03/85 6 79 200 0\n", - "20 10/30/85 6 75 200 2\n", - "21 11/26/85 6 76 200 0\n", - "22 1/12/86 6 58 200 1" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "data = pd.read_csv(\"shuttle.csv\")\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Le jeu de données nous indique la date de l'essai, le nombre de joints\n", - "toriques mesurés (il y en a 6 sur le lançeur principal), la\n", - "température (en Farenheit) et la pression (en psi), et enfin le\n", - "nombre de dysfonctionnements relevés. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inspection graphique des données\n", - "Les vols où aucun incident n'est relevé n'apportant aucun information\n", - "sur l'influence de la température ou de la pression sur les\n", - "dysfonctionnements, nous nous concentrons sur les expériences où au\n", - "moins un joint a été défectueux.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
DateCountTemperaturePressureMalfunction
111/12/81670501
82/03/846572001
94/06/846632001
108/30/846702001
131/24/856532002
2010/30/856752002
221/12/866582001
\n", - "
" - ], - "text/plain": [ - " Date Count Temperature Pressure Malfunction\n", - "1 11/12/81 6 70 50 1\n", - "8 2/03/84 6 57 200 1\n", - "9 4/06/84 6 63 200 1\n", - "10 8/30/84 6 70 200 1\n", - "13 1/24/85 6 53 200 2\n", - "20 10/30/85 6 75 200 2\n", - "22 1/12/86 6 58 200 1" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data = data[data.Malfunction>0]\n", - "data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Très bien, nous avons une variabilité de température importante mais\n", - "la pression est quasiment toujours égale à 200, ce qui devrait\n", - "simplifier l'analyse.\n", - "\n", - "Comment la fréquence d'échecs varie-t-elle avec la température ?\n" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "pd.set_option('mode.chained_assignment',None) # this removes a useless warning from pandas\n", - "import matplotlib.pyplot as plt\n", - "\n", - "data[\"Frequency\"]=data.Malfunction/data.Count\n", - "data.plot(x=\"Temperature\",y=\"Frequency\",kind=\"scatter\",ylim=[0,1])\n", - "plt.grid(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "À première vue, ce n'est pas flagrant mais bon, essayons quand même\n", - "d'estimer l'impact de la température $t$ sur la probabilité de\n", - "dysfonctionnements d'un joint. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation de l'influence de la température\n", - "\n", - "Supposons que chacun des 6 joints toriques est endommagé avec la même\n", - "probabilité et indépendamment des autres et que cette probabilité ne\n", - "dépend que de la température. Si on note $p(t)$ cette probabilité, le\n", - "nombre de joints $D$ dysfonctionnant lorsque l'on effectue le vol à\n", - "température $t$ suit une loi binomiale de paramètre $n=6$ et\n", - "$p=p(t)$. Pour relier $p(t)$ à $t$, on va donc effectuer une\n", - "régression logistique." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
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.0000
Method: IRLS Log-Likelihood: -2.5250
Date: Sat, 13 Apr 2019 Deviance: 0.22231
Time: 19:11:24 Pearson chi2: 0.236
No. Iterations: 4 Covariance Type: nonrobust
\n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "\n", - " \n", - "\n", - "
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
" - ], - "text/plain": [ - "\n", - "\"\"\"\n", - " Generalized Linear Model Regression Results \n", - "==============================================================================\n", - "Dep. Variable: Frequency No. Observations: 7\n", - "Model: GLM Df Residuals: 5\n", - "Model Family: Binomial Df Model: 1\n", - "Link Function: logit Scale: 1.0000\n", - "Method: IRLS Log-Likelihood: -2.5250\n", - "Date: Sat, 13 Apr 2019 Deviance: 0.22231\n", - "Time: 19:11:24 Pearson chi2: 0.236\n", - "No. Iterations: 4 Covariance Type: nonrobust\n", - "===============================================================================\n", - " coef std err z P>|z| [0.025 0.975]\n", - "-------------------------------------------------------------------------------\n", - "Intercept -1.3895 7.828 -0.178 0.859 -16.732 13.953\n", - "Temperature 0.0014 0.122 0.012 0.991 -0.238 0.240\n", - "===============================================================================\n", - "\"\"\"" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import statsmodels.api as sm\n", - "\n", - "data[\"Success\"]=data.Count-data.Malfunction\n", - "data[\"Intercept\"]=1\n", - "\n", - "logmodel=sm.GLM(data['Frequency'], data[['Intercept','Temperature']], family=sm.families.Binomial(sm.families.links.logit)).fit()\n", - "\n", - "logmodel.summary()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "L'estimateur le plus probable du paramètre de température est 0.0014\n", - "et l'erreur standard de cet estimateur est de 0.122, autrement dit on\n", - "ne peut pas distinguer d'impact particulier et il faut prendre nos\n", - "estimations avec des pincettes.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Estimation de la probabilité de dysfonctionnant des joints toriques\n", - "La température prévue le jour du décollage est de 31°F. Essayons\n", - "d'estimer la probabilité de dysfonctionnement des joints toriques à\n", - "cette température à partir du modèle que nous venons de construire:\n" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEKCAYAAAAcgp5RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAGyFJREFUeJzt3X2UVPWd5/H3pxuQBhEjkhkFDWSWtHF9ABRQWZ3WqGhORLPrE2vGMRNCdmeMk83Knng2E43Rc2YHd2I26zgy6jgxiUo8iiSHCahjT2Y8PoCCILAIY4g2JEGND7Q2Snd/9497u6kuqunqpvqhfnxe5/Tpurd+de/3V7fvp27fuvUrRQRmZpaumsEuwMzM+peD3swscQ56M7PEOejNzBLnoDczS5yD3swscT0GvaR7Je2U9HI390vS/5G0VdI6SdMrX6aZmfVVOUf09wEX7Of+C4Ep+c8C4M4DL8vMzCqlx6CPiF8Av9tPk4uBH0TmWeBwSUdVqkAzMzswwyqwjAnA6wXTTfm8Xxc3lLSA7KifkSNHnnLsscdWYPVDU3t7OzU16b4FknL/Uu4buH/V7pVXXnkzIsb35jGVCHqVmFdyXIWIWAwsBqivr4/NmzdXYPVDU2NjIw0NDYNdRr9JuX8p9w3cv2on6Ve9fUwlXvaagGMKpicCOyqwXDMzq4BKBP0y4Or86pvTgHcjYp/TNmZmNjh6PHUj6QGgAThSUhNwIzAcICL+FlgOfBbYCnwAfLG/ijUzs97rMegjYl4P9wfwZxWryMyqwp49e2hqamL37t2DXUoXY8eOZdOmTYNdxgEbOXIkEydOZPjw4Qe8rEq8GWtmB6GmpibGjBnDpEmTkEpdkzE4du3axZgxYwa7jAMSEbz11ls0NTUxefLkA15eutcgmVm/2r17N+PGjRtSIZ8KSYwbN65i/y056M2szxzy/aeSz62D3swscT5Hb2ZVq7a2lhNPPLFzeunSpYwbN24QKxqaHPRmVrXq6upYu3Ztl3m7du3qvN3a2sqwYY45n7oxs6T86Ec/4rLLLuOiiy7i/PPPB2DRokXMmDGDk046iRtvvLGz7a233kp9fT3nnnsu8+bN47bbbgOgoaGB1atXA/Dmm28yadIkANra2li4cGHnsu666y5g77ALl156KccddxxXXXUV2ZXnsGrVKs444wxOPvlkZs6cya5duzjzzDO7vEDNnj2bdevW9dtz4pc6Mztg3/7pBjbueK+iyzz+6MO48aJ/v982LS0tTJ06FYDJkyfz6KOPAvDMM8+wbt06jjjiCFauXMmWLVt4/vnniQjmzp3LL37xC0aPHs2DDz7ImjVraG1tZfr06Zxyyin7Xd8999zD2LFjWbVqFR9++CGzZ8/ufDFZs2YNGzZs4Oijj2b27Nk8/fTTzJw5kyuuuIKHHnqIGTNm8N5771FXV8f8+fO57777uP3223nllVf48MMPOemkkyrwrJXmoDezqlXq1A3AeeedxxFHHAHAypUrWblyJdOmTQOgubmZLVu2sGvXLj7/+c8zatQoAObOndvj+lauXMm6det4+OGHAXj33XfZsmULI0aMYObMmUycOBGAqVOnsm3bNsaOHctRRx3FjBkzADjssMMAuOyyy/jOd77DokWLuPfee7nmmmsO7InogYPezA5YT0feA2306NGdtyOCG264ga985Std2tx+++3dXsI4bNgw2tvbAbpcyx4RfP/732fOnDld2jc2NnLIIYd0TtfW1tLa2kpElFzHqFGjOO+883jsscdYsmRJ52mi/uJz9GaWtDlz5nDvvffS3NwMwPbt29m5cydnnXUWjz76KC0tLezatYuf/vSnnY+ZNGkSL7zwAkDn0XvHsu6880727NkDwCuvvML777/f7bqPO+44duzYwapVq4DsjeLW1lYA5s+fz3XXXceMGTM6//voLz6iN7OknX/++WzatInTTz8dgEMPPZQf/vCHTJ8+nSuuuIKpU6fyiU98gjPPPLPzMddffz2XX345999/P+ecc07n/Pnz57Nt2zamT59ORDB+/HiWLl3a7bpHjBjBQw89xFe/+lVaWlqoq6vjiSee4NBDD+WUU07hsMMO44tfHIBxICNiUH4+9alPRcqeeuqpwS6hX6Xcv5T7FlG5/m3cuLEiy6m09957r0+Pu/HGG2PRokUVrqZ727dvjylTpkRbW1u3bUo9x8Dq6GXe+tSNmdkA+8EPfsCsWbO49dZbB+RrD33qxswMuOmmmwZsXVdffTVXX331gK3PR/Rm1mcRJb8e2iqgks+tg97M+mTkyJG89dZbDvt+EPl49CNHjqzI8nzqxsz6ZOLEiTQ1NfHGG28Mdild7N69u2IBOZg6vmGqEhz0ZtYnw4cP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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "%matplotlib inline\n", - "data_pred = pd.DataFrame({'Temperature': np.linspace(start=30, stop=90, num=121), 'Intercept': 1})\n", - "data_pred['Frequency'] = logmodel.predict(data_pred[['Intercept','Temperature']])\n", - "data_pred.plot(x=\"Temperature\",y=\"Frequency\",kind=\"line\",ylim=[0,1])\n", - "plt.scatter(x=data[\"Temperature\"],y=data[\"Frequency\"])\n", - "plt.grid(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "hideCode": false, - "hidePrompt": false, - "scrolled": true - }, - "source": [ - "Comme on pouvait s'attendre au vu des données initiales, la\n", - "température n'a pas d'impact notable sur la probabilité d'échec des\n", - "joints toriques. Elle sera d'environ 0.2, comme dans les essais\n", - "précédents où nous il y a eu défaillance d'au moins un joint. Revenons\n", - "à l'ensemble des données initiales pour estimer la probabilité de\n", - "défaillance d'un joint:\n" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.06521739130434782\n" - ] - } - ], - "source": [ - "data = pd.read_csv(\"shuttle.csv\")\n", - "print(np.sum(data.Malfunction)/np.sum(data.Count))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe\n", - "un joint primaire un joint secondaire sur chacune des trois parties du\n", - "lançeur, la probabilité de défaillance des deux joints d'un lançeur\n", - "est de $p^2 \\approx 0.00425$. La probabilité de défaillance d'un des\n", - "lançeur est donc de $1-(1-p^2)^3 \\approx 1.2%$. Ça serait vraiment\n", - "pas de chance... Tout est sous contrôle, le décollage peut donc avoir\n", - "lieu demain comme prévu.\n", - "\n", - "Seulement, le lendemain, la navette Challenger explosera et emportera\n", - "avec elle ses sept membres d'équipages. L'opinion publique est\n", - "fortement touchée et lors de l'enquête qui suivra, la fiabilité des\n", - "joints toriques sera directement mise en cause. Au delà des problèmes\n", - "de communication interne à la NASA qui sont pour beaucoup dans ce\n", - "fiasco, l'analyse précédente comporte (au moins) un petit\n", - "problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette\n", - "analyse et de regarder ce jeu de données sous tous les angles afin\n", - "d'expliquer ce qui ne va pas." - ] - } - ], - "metadata": { - "celltoolbar": "Hide code", - "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.7.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/module2/exo5/exo5_python_en.org b/module2/exo5/exo5_python_en.org deleted file mode 100644 index 39a203b..0000000 --- a/module2/exo5/exo5_python_en.org +++ /dev/null @@ -1,217 +0,0 @@ -#+TITLE: Analysis of the risk of failure of the O-rings on the Challenger shuttle -#+AUTHOR: Arnaud Legrand -#+LANGUAGE: en - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -#+LATEX_HEADER: \usepackage{a4} -#+LATEX_HEADER: \usepackage[french]{babel} - -# #+PROPERTY: header-args :session :exports both - -On January 27, 1986, the day before the takeoff of the shuttle /Challenger/, had -a three-hour teleconference was held between -Morton Thiokol (the manufacturer of one of the engines) and NASA. The -discussion focused on the consequences of the -temperature at take-off of 31°F (just below -0°C) for the success of the flight and in particular on the performance of the -O-rings used in the engines. Indeed, no test -had been performed at this temperature. - -The following study takes up some of the analyses carried out that -night with the objective of assessing the potential influence of -the temperature and pressure to which the O-rings are subjected -on their probability of malfunction. Our starting point is -the results of the experiments carried out by NASA engineers -during the six years preceding the launch of the shuttle -Challenger. - -* Loading the data -We start by loading this data: -#+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/29/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 - -The data set shows us the date of each test, the number of O-rings -(there are 6 on the main launcher), the -temperature (in Fahrenheit) and pressure (in psi), and finally the -number of identified malfunctions. - -* Graphical inspection -Flights without incidents do not provide any information -on the influence of temperature or pressure on malfunction. -We thus focus on the experiments in which at least one O-ring was defective. - -#+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 - -We have a high temperature variability but -the pressure is almost always 200, which should -simplify the analysis. - -How does the frequency of failure vary with temperature? -#+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]] - -At first glance, the dependence does not look very important, but let's try to -estimate the impact of temperature $t$ on the probability of O-ring malfunction. - -* Estimation of the temperature influence - -Suppose that each of the six O-rings is damaged with the same -probability and independently of the others and that this probability -depends only on the temperature. If $p(t)$ is this probability, the -number $D$ of malfunctioning O-rings during a flight at -temperature $t$ follows a binomial law with parameters $n=6$ and -$p=p(t)$. To link $p(t)$ to $t$, we will therefore perform a -logistic regression. - -#+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 - -The most likely estimator of the temperature parameter is 0.0014 -and the standard error of this estimator is 0.122, in other words we -cannot distinguish any particular impact and we must take our -estimates with caution. - -* Estimation of the probability of O-ring malfunction -The expected temperature on the take-off day is 31°F. Let's try to -estimate the probability of O-ring malfunction at -this temperature from the model we just built: - -#+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[['Intercept','Temperature']]) -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]] - -As expected from the initial data, the -temperature has no significant impact on the probability of failure of the -O-rings. It will be about 0.2, as in the tests -where we had a failure of at least one joint. Let's get back to the initial dataset to estimate the probability of failure: - -#+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 - -This probability is thus about $p=0.065$. Knowing that there is -a primary and a secondary O-ring on each of the three parts of the -launcher, the probability of failure of both joints of a launcher -is $p^2 \approx 0.00425$. The probability of failure of any one of the -launchers is $1-(1-p^2)^3 \approx 1.2%$. That would really be -bad luck.... Everything is under control, so the takeoff can happen -tomorrow as planned. - -But the next day, the Challenger shuttle exploded and took away -with her the seven crew members. The public was shocked and in -the subsequent investigation, the reliability of the -O-rings was questioned. Beyond the internal communication problems -of NASA, which have a lot to do with this fiasco, the previous analysis -includes (at least) a small problem.... Can you find it? -You are free to modify this analysis and to look at this dataset -from all angles in order to to explain what's wrong. - diff --git a/module2/exo5/exo5_python_fr.org b/module2/exo5/exo5_python_fr.org deleted file mode 100644 index afff5e0..0000000 --- a/module2/exo5/exo5_python_fr.org +++ /dev/null @@ -1,222 +0,0 @@ -#+TITLE: Analyse du risque de défaillance des joints toriques de la navette Challenger -#+AUTHOR: Arnaud Legrand -#+LANGUAGE: fr - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -#+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/29/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[['Intercept','Temperature']]) -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. - diff --git a/module2/exo5/freq_temp.png b/module2/exo5/freq_temp.png deleted file mode 100644 index 875d15fb0a5895ef4a9ac2856eca288ea1e75387..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4858 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 diff --git a/module2/exo5/freq_temp_python.png b/module2/exo5/freq_temp_python.png deleted file mode 100644 index 93cb9e626441d23f6dff59ed252d7b14eb37abdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12556 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 diff --git a/module2/exo5/proba_estimate.png b/module2/exo5/proba_estimate.png deleted file mode 100644 index ac71d62b849d17d1dc58a16816eedee6544d48f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4651 zcmd5=cT`hbv*%haO+ZCJsVWF!5ClX@AW@W}D5yvb(u{zGD$+uYaw!5LB26H`RVhjW zgx*1dCUk_5gqkRUP(l-_fg~?*eQUk)eSduKy}Q=?W3Mx3&g?yNX8-0l`<&?O<|aY{ zk^($DJVKXEFWuzf*#+g{`Rx_oZm!0NF<-z{j9tHa%ZPisYuB#byLa!|vuE$#y}Z1< ze0+TT{QLp}0)m2q`}XY<5)u*?78Vf^*}s4PfddB)9y};2DthS9Au%yAadB}835mmp z4<9*lL{d^xN=iyvT3SX%Mpjl}MXlQ6^YMwoNR!d9k+_`hw+S)ogI=Z^L zdU|?5AW&al-@w2C1OkD<;PdCtU$}6=(9rPW#fz6NT{1E({T}xN+m=&6}2%mbY%*va+&*Kp?ko--be=*4EZ{?%c7l zv9YzawX?Icx3_n2aJYN-E(`{{ckiB~qob3Ple4q){rmSHJb3W%;loFd9=W=@y1BWz zySsaMczAkxK7Rbz%gf8#+uO&-$Jf`_&(F`_-yaT#2LuEJ1_lNN1qBBOhlGTLhK3># zh^J4VK6~~oEG#TMJUk*IA~G^EDk|#v^XJjg(J?VGv9Yl)Uc88li+lOfQ z5)xj&ew~<@n3R;1oSdARn)>F=o3ymF^z`(Mj0_|anVFfHm6es9o&EOh+jsBYy?_5c zCnqO2H#aXYFF!y3!-o$aKYlDIC_tf5Xf(R8u&}78sJOTogTa)Pl$4g1mY0`TR8&+} zR#sJ2RaaNn)YR10*4EY4)z{ZIG&D3eHh%i_skylsi^aCIw0!>j`OB9tI2;a-$G5h& zwzajjx3_n6baZxhc6D`icX#*n^nCsLwYRsoudk0lAoTb56Ny9;i9{xo2L=WP2M33S zhK7fSM@B|QM@K0X3YALz_U+sE@88G9#%MI!`1tt5!~~sApPZbWnwpxPo}QVRVK5l8 zv$Jz^bMy1_3kwU2i;GK3OFw`9TwY#YSy@?KU0qvSTVG$_*w|n)nVXxNTU%Q!7K_bh zb2uE)GmrCmctrMGzI5Rh962`{6ntwU6aS+bW2zi?_N4ZE2wD|)Jg($u?_>U>dsSlE zjm!k?XADsdFya+Ez}>343ZtWtf`MdXfzsjFII%-UxiNJ(x0o=fwd%X(!wPK*0c>hw znl7n3r%l&8Yr!1*Gk}xO=Gr~3-7_An0W#nXQLfy9S{7w6Q6?BLk5WLym6FxQt;&BMnezU{8zq~ z0ot91p}nh#{L@l=9gh-PW;l%-9nsh5Q6NDWPkbos6Aa4QY9-WeHle0yfQl0Sp%m2C-h^ zaJiO*zxF?w>SWIO^oA6+1A$gp949xeYVeIxK(>Fd?Kp;_aw;pue>$hRC*Sj^O1?GR zYJFr#422*gy|iGu*B(a_?UMNksvV(LQ$O}RfU=6U_(k)bn@%mmr30e4iim$Y{#zQN z@4~tUkw5Z3sUAonghf;YFF%d2I{jUd3&$|_DSZq*HX`=oHAR*Dy+WvuGjz)yVXZW7 z6{w&q%9yDmmZBaSTnIs-6M(gdtgBFS!FAMPE69R(VXK#)TU!`RBgJ(J18XVb`!!8d zI3j!7PMkE`$r&jy<5s|3n1R>4dxyc>9j6gm_lM^E;f6at1yL%oZ968T=|2>W?Buy| z2%^rOTb8!?@Ry#b7?Hlc-XRj(TM}!r9q5(_E5&~~R3mfSI@oGmWUoB8W&QhtddmGy zTs&|z_x_g(gDImYHHwdO(=C8B->}XPcwXSaKl|CJOU7X>k(yYMUaw#$^s7 z`9%NekjDRK28KwmSH?kQ{4z99<+mn#~Xk z|H}09E=ql6_`m5Bf-srO!NFjb%MJ~@7%wwBjU6R5JuYvPHe|4&%R*?#7>dt?+qE~3 zDg!x5HYt7ReYtkUVq~Cn3@8(rW$^ADe?7KNpuJQmoK80+UZDU0gBG_Zk)HUr&Dh)6#-^6 zWevwMkyY8BLP_svC(xbQ1WC@MPezj&hd|9|?3yLiuqieD)Q=M4sVBfSf5L;up42y~ zDIIdS&i418xrbN=Z~Cti`WwLCiYL_(5jHHXrWtSyi%ny4n8wD!j1smeMbr1hmjf*> zt8(i=cGbPLj_ICys|?n{w>yY<$|NFjp?%=J;Fg^xfokoHV5!SwZaJYj(QDr6C1#WB zi5^Q2s58{z7_I3|AIGO5>0Y&OY1YfPBQ~|Q;CA|z3M{5DHjp0H%hvRod9eJtY5wby zHCwi!oBE!*v^F)$mSsgZnUFVvmdR|{(bpv={+mH(X<~qJE^UMWYu*>XN!vy$e>a91 zywsNK~w2Fy?Y3?jkK zbYmpDh+yDi-@1${sy1h%!gJQHUVpg(EqT4>XQ^hHwL>?T(@b5OWn1o0xyHgi??oTRU~&UidAYmrUOyn&4c%VEYvjAs=(fbbyXe1sd5^5p>9)k8)&loR!$Lu z;3pq0*41QJ;t?>WtxFf%R2o&H{)U56^RU;&uqs;Q9#6awKjo#=!Fm~O1vt>d zbkT3*)qW(OX2f<&JwT5fPlH=z?3_TRU)FO9OfpS>OW{gf68ABo@OM0_m0#e}(P)A{ z_DTADE0Ehm{Kqpf$UNYZIn1M$&l z@CYv?UrYOr4Ebv>;uTrB4)&Y!KRSe>BPwdoAaFq3>|w1%fZxk5t2OOaoZZ3LFL^dn zRsQ$bMs?_Go2k&c2ZaWtYY#$PaL0nEwI)4!0ql}Rnp?!mWMdsABQ!BugtGiSb-r93 zlbaJ?qU|v-9~tRL!igF5`QUY23F%Ujl76AbJX}ZWlsrIBCJbFsK^5Pc;_b>5wsdS@ z2KsGp+GDQ~18{De=(uMc^Z?kPBzZv13-)NlJA3Ul)%{0_q$X-;s9NIpBV}(t4^;;h zYt!Sfi?msm6l$Vkqbe*kiY?WeM=ZtuRBGh99Gd>w{iXy@anz!> zNzEFNA`|5Tf^h!mxXrf`q>P3;hVf+*B%H-Q-MbKY$8-EUPC%t^C+QD+XeG`7ys<)G zu)pg%5>t<7cs6|<8ml(}x)e9yT_8B-K7BX$k=Sgu<>(01ZpusCLF}9r((@D@4x2RM z=x+SDN03b^^qPCQ64=vMO|-0cC{pSlv>DM%l?;maWjr6s(^_2(w+4>Q%B^?^8gxUT zD7kZVmgtz(`xk>CeP*@m<_bfKv4$-4>H$soQtO)gs;Spj^CpPHcaZAT;MPrUTzxh# z9x*}&NY#;lP|6@T)`^1xuC#!t;S@Wkv5S@EopvtH_ck@TVIZWTgg~;B4K1CQQ!-bi z5gWf!9)hDdvbq*;zhp08b)^-6S0>*R<^{psL&ezPD5Sn`ygINOOziVQuVT2_>izai zbB&9N5U1v(s@c=?xv*$K8`?b305O7E#TDvLlrL07$ZfOS|Ma6rKvj(_ICYs1po0~7 zhS`;I0N@fh+^I{Gy3Z1FkhNr{r>zS*rgU|!?5Y#P3aIu-tHSjf zox(oG8F=PpN`d8g$7F280h#t^f1SHFSS}aiQM_^(yN9&aWX1 zyd=S|ow3Q(mO1=2iLv4f2p6->+PH8bVRCfH`$dgoje5&!VN+jS=(uKHj!PHTR;@Vb z82Z~%XTe@vIVn9p!uPHEkKgLL473p?r^p=)d#;;$T$O+yZb6v^hn8?2HUv3keAKPL zocQ&$BkG(xXflUC2qeH*Vy;-`Ap(8ks^(_D)Y#i;UxX&0o6eB|Q$>7$gIH$Jzf6i8 a-nF8|q-Sm^&$)kncrF{6Un(-Z8}@HpqwGNd diff --git a/module2/exo5/proba_estimate_python.png b/module2/exo5/proba_estimate_python.png deleted file mode 100644 index 77fc4b275dd8815b1ab91cd3b67b1beb93e00748..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14660 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 diff --git a/module3/exo3/ConcentrationCO2.html b/module3/exo3/ConcentrationCO2.html new file mode 100644 index 0000000..d221aef --- /dev/null +++ b/module3/exo3/ConcentrationCO2.html @@ -0,0 +1,584 @@ + + + + + + + + + + + + + + +Concentration de CO2 dans l’atmosphère depuis 1958 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+

Sujet

+

En 1958, Charles David Keeling a initié une mesure de la concentration de CO2 dans l’atmosphère à l’observatoire de Mauna Loa, Hawaii, États-Unis qui continue jusqu’à aujourd’hui. L’objectif initial était d’étudier la variation saisonnière, mais l’intérêt s’est déplacé plus tard vers l’étude de la tendance croissante dans le contexte du changement climatique. En honneur à Keeling, ce jeu de données est souvent appelé “Keeling Curve” (voir (https://en.wikipedia.org/wiki/Keeling_Curve) pour l’histoire et l’importance de ces données).

+

Les données sont disponibles sur le site Web de l’institut Scripps. Utilisez le fichier avec les observations hebdomadaires. Attention, ce fichier est mis à jour régulièrement avec de nouvelles observations. Notez donc bien la date du téléchargement, et gardez une copie locale de la version précise que vous analysez. Faites aussi attention aux données manquantes.

+
+
+

Pré-requis

+

Traitement de suites chronologiques

+

Quelques références:

+ +
+
+

Create dataframe and load R libraries required for the different statistical treatments

+

The data file below contains 10 columns.

+
    +
  • Columns 1-4 give the dates in several redundant formats.
  • +
  • Column 5 below gives monthly Mauna Loa CO2 concentrations in micro-mol CO2 per mole (ppm), reported on the 2008A SIO manometric mole fraction scale. This is thestandard version of the data most often sought. The monthly values have been adjusted to 24:00 hours on the 15th of each month.
    +
  • +
  • Column 6 gives the same data after a seasonal adjustment to remove the quasi-regular seasonal cycle. The adjustment involves subtracting from the data a 4-harmonic fit with a linear gain factor.
    +
  • +
  • Column 7 is a smoothed version of the data generated from a stiff cubic spline function plus 4-harmonic functions with linear gain.
    +
  • +
  • Column 8 is the same smoothed version with the seasonal cycle removed.
    +
  • +
  • Column 9 is identical to Column 5 except that the missing values from Column 5 have been filled with values from Column 7.
    +
  • +
  • Column 10 is identical to Column 6 except missing values have been filled with values from Column 8.
  • +
+

Missing values are denoted by -99.99

+

CO2 concentrations are measured on the ‘08A’ calibration scale

+
library(tidyverse)
+
## Warning: package 'tidyverse' was built under R version 3.5.3
+
## -- Attaching packages -------------------------------------------------------------------------------------------------------------- tidyverse 1.2.1 --
+
## v ggplot2 3.1.0       v purrr   0.3.2  
+## v tibble  2.1.1       v dplyr   0.8.0.1
+## v tidyr   0.8.3       v stringr 1.4.0  
+## v readr   1.3.1       v forcats 0.4.0
+
## Warning: package 'tibble' was built under R version 3.5.3
+
## Warning: package 'tidyr' was built under R version 3.5.3
+
## Warning: package 'readr' was built under R version 3.5.3
+
## Warning: package 'purrr' was built under R version 3.5.3
+
## Warning: package 'dplyr' was built under R version 3.5.3
+
## Warning: package 'stringr' was built under R version 3.5.3
+
## Warning: package 'forcats' was built under R version 3.5.3
+
## -- Conflicts ----------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
+## x dplyr::filter() masks stats::filter()
+## x dplyr::lag()    masks stats::lag()
+
library(forecast)
+
## Warning: package 'forecast' was built under R version 3.5.3
+
library(lubridate)
+
## Warning: package 'lubridate' was built under R version 3.5.3
+
## 
+## Attaching package: 'lubridate'
+
## The following object is masked from 'package:base':
+## 
+##     date
+
library(car)
+
## Warning: package 'car' was built under R version 3.5.3
+
## Loading required package: carData
+
## Warning: package 'carData' was built under R version 3.5.2
+
## 
+## Attaching package: 'car'
+
## The following object is masked from 'package:dplyr':
+## 
+##     recode
+
## The following object is masked from 'package:purrr':
+## 
+##     some
+
library(scales)
+
## 
+## Attaching package: 'scales'
+
## The following object is masked from 'package:purrr':
+## 
+##     discard
+
## The following object is masked from 'package:readr':
+## 
+##     col_factor
+
library(patchwork)
+
## Warning: package 'patchwork' was built under R version 3.5.3
+
library(kableExtra)
+
## Warning: package 'kableExtra' was built under R version 3.5.3
+
## 
+## Attaching package: 'kableExtra'
+
## The following object is masked from 'package:dplyr':
+## 
+##     group_rows
+
dataCO2 <- read.csv("monthly_in_situ_co2_mlo.csv", sep="," ,skip = 57)
+colnames(dataCO2) <- c("Year", "Month","Date1", "Date2", "ObsCO2", "SeasAdjCO2","SplineAdjCO2", "SplineAdjCO2Trend", "ObsCO2Comp", "SeasAdjCO2Comp")
+summary(dataCO2)
+
##       Year          Month            Date1           Date2     
+##  Min.   :1958   Min.   : 1.000   Min.   :21231   Min.   :1958  
+##  1st Qu.:1973   1st Qu.: 4.000   1st Qu.:26968   1st Qu.:1974  
+##  Median :1989   Median : 7.000   Median :32704   Median :1990  
+##  Mean   :1989   Mean   : 6.507   Mean   :32705   Mean   :1990  
+##  3rd Qu.:2005   3rd Qu.: 9.500   3rd Qu.:38442   3rd Qu.:2005  
+##  Max.   :2020   Max.   :12.000   Max.   :44180   Max.   :2021  
+##      ObsCO2         SeasAdjCO2      SplineAdjCO2    SplineAdjCO2Trend
+##  Min.   :-99.99   Min.   :-99.99   Min.   :-99.99   Min.   :-99.99   
+##  1st Qu.:328.40   1st Qu.:328.70   1st Qu.:328.46   1st Qu.:328.82   
+##  Median :351.34   Median :352.13   Median :351.33   Median :352.03   
+##  Mean   :346.18   Mean   :346.18   Mean   :348.95   Mean   :348.95   
+##  3rd Qu.:377.55   3rd Qu.:377.35   3rd Qu.:377.69   3rd Qu.:377.37   
+##  Max.   :414.83   Max.   :413.33   Max.   :414.94   Max.   :413.35   
+##    ObsCO2Comp     SeasAdjCO2Comp  
+##  Min.   :-99.99   Min.   :-99.99  
+##  1st Qu.:328.40   1st Qu.:328.70  
+##  Median :351.34   Median :352.13  
+##  Mean   :348.96   Mean   :348.95  
+##  3rd Qu.:377.55   3rd Qu.:377.35  
+##  Max.   :414.83   Max.   :413.33
+
dataCO2$Date <- ymd(paste0(dataCO2$Year, " ", dataCO2$Month, " ", "15"))
+

** Remplacement dans la série des valeurs observées, des valeurs manquantes -99.99 par celles qui sont interpolées ** on enlève ensuite les observations manquantes

+
dataCO2 <- dataCO2[dataCO2$ObsCO2Comp != "-99.99", ]
+

** Create a column Date with format YYYY MM DD

+
dataCO2$Date <- ymd(paste0(dataCO2$Year, "-", dataCO2$Month, "-", "15"))
+
+
+

Représentation des résultats

+
ggplot(dataCO2,aes(Date, dataCO2$ObsCO2Comp)) +
+    geom_line(color='orange') +
+    xlab("Year, Month") +
+    scale_x_date(date_labels = "%Y-%m", date_breaks = "5 year") +
+    theme(axis.text.x = element_text(face = "bold", color = "#993333", 
+                           size = 12, angle = 45, hjust = 1)) +
+    ylab("CO2 Concentration (ppm)") +
+    scale_y_continuous() +
+    theme(axis.text.y = element_text(face = "bold", color = "#993333", 
+                           size = 10, hjust = 1),axis.title.y = element_text(size = 10)) +
+  ggtitle("Graphique 1")
+

+
 library(viridis) 
+
## Loading required package: viridisLite
+
## 
+## Attaching package: 'viridis'
+
## The following object is masked from 'package:scales':
+## 
+##     viridis_pal
+
dataCO2_by_year <- dataCO2 %>% group_by("Year")
+ggplot(dataCO2_by_year, aes(dataCO2_by_year$Month,dataCO2_by_year$ObsCO2Comp )) +
+         geom_line(aes( group = dataCO2_by_year$Year , colour=dataCO2_by_year$Year)) +
+         xlab("Month")+
+         ylab("CO2 Concentration (ppm)") +
+         ggtitle("Graphique saisonnier")
+

+
+
+

Modélisation

+

Série n’est pas stationnaire comme le montre le graphique

+

Série montre une saisonnalité

+
+ + + + +
+ + + + + + + + + + + + + + + diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module3/exo3/exercice.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "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 -} - diff --git a/module3/exo3/exercice_R_en.org b/module3/exo3/exercice_R_en.org deleted file mode 100644 index 2b73d64..0000000 --- a/module3/exo3/exercice_R_en.org +++ /dev/null @@ -1,81 +0,0 @@ -#+TITLE: Your title -#+AUTHOR: Your name -#+DATE: Today's date -#+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, R code is included as follows (and is -exxecuted by typing ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -And now the same but in an R session. This is the most frequent -situation, because R is really an interactive language. With a -session, R's state, i.e. the values of all the variables, remains -persistent from one code block to the next. The code is still executed -using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cars.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in R by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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 R (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 R (en -faisant ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, Python code is included as follows (and -is exxecuted by typing ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -And now the same but in an Python session. With a session, Python's -state, i.e. the values of all the variables, remains persistent from -one code block to the next. The code is still executed using ~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 - -Finally, an example for graphical output: -#+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]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cosxsx.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in Python by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* 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, 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 ~