diff --git a/module2/exo5/exo5_python_fr.org b/module2/exo5/exo5_python_fr.org index afff5e05bdb366128291b42847d9bd44d1f8bf04..d771e27876f9ac27cc17a11cf0dbc28716e308ee 100644 --- a/module2/exo5/exo5_python_fr.org +++ b/module2/exo5/exo5_python_fr.org @@ -42,30 +42,30 @@ data #+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 + 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 @@ -74,25 +74,44 @@ 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 +# 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: +# #+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 Très bien, nous avons une variabilité de température importante mais la pression est quasiment toujours égale à 200, ce qui devrait @@ -145,26 +164,27 @@ logmodel.summary() #+begin_example Generalized Linear Model Regression Results ============================================================================== -Dep. Variable: Frequency No. Observations: 7 -Model: GLM Df Residuals: 5 +Dep. Variable: Frequency No. Observations: 23 +Model: GLM Df Residuals: 21 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 +Link Function: logit Scale: 1.0000 +Method: IRLS Log-Likelihood: -3.9210 +Date: Thu, 09 Apr 2020 Deviance: 3.0144 +Time: 12:50:13 Pearson chi2: 5.00 +No. Iterations: 6 +Covariance Type: nonrobust =============================================================================== 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 +Intercept 5.0850 7.477 0.680 0.496 -9.570 19.740 +Temperature -0.1156 0.115 -1.004 0.316 -0.341 0.110 =============================================================================== #+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. +# 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 @@ -187,36 +207,43 @@ print(matplot_lib_filename) #+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. - +D'après cette analyse, la probabilité d'échec des joints toriques serait +supérieure à 80% à pour une température de 31°F. + +# 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. + +# Local Variables: +# org-babel-python-command: "/home/francois/.julia/conda/3/bin/python" +# org-confirm-babel-evaluate: nil +# End: diff --git a/module2/exo5/freq_temp_python.png b/module2/exo5/freq_temp_python.png index 93cb9e626441d23f6dff59ed252d7b14eb37abdb..dc6464064ba17d067083743f62aacdcf9980fc54 100644 Binary files a/module2/exo5/freq_temp_python.png and b/module2/exo5/freq_temp_python.png differ diff --git a/module2/exo5/proba_estimate_python.png b/module2/exo5/proba_estimate_python.png index 77fc4b275dd8815b1ab91cd3b67b1beb93e00748..ead96326d1a0082ba7106fe789cc9916cfb7051c 100644 Binary files a/module2/exo5/proba_estimate_python.png and b/module2/exo5/proba_estimate_python.png differ