Commit a2fba00c authored by François Févotte's avatar François Févotte

Ex 02-5

parent b5d60038
...@@ -42,30 +42,30 @@ data ...@@ -42,30 +42,30 @@ data
#+RESULTS: #+RESULTS:
#+begin_example #+begin_example
Date Count Temperature Pressure Malfunction Date Count Temperature Pressure Malfunction
0 4/12/81 6 66 50 0 0 4/12/81 6 66 50 0
1 11/12/81 6 70 50 1 1 11/12/81 6 70 50 1
2 3/22/82 6 69 50 0 2 3/22/82 6 69 50 0
3 11/11/82 6 68 50 0 3 11/11/82 6 68 50 0
4 4/04/83 6 67 50 0 4 4/04/83 6 67 50 0
5 6/18/82 6 72 50 0 5 6/18/82 6 72 50 0
6 8/30/83 6 73 100 0 6 8/30/83 6 73 100 0
7 11/28/83 6 70 100 0 7 11/28/83 6 70 100 0
8 2/03/84 6 57 200 1 8 2/03/84 6 57 200 1
9 4/06/84 6 63 200 1 9 4/06/84 6 63 200 1
10 8/30/84 6 70 200 1 10 8/30/84 6 70 200 1
11 10/05/84 6 78 200 0 11 10/05/84 6 78 200 0
12 11/08/84 6 67 200 0 12 11/08/84 6 67 200 0
13 1/24/85 6 53 200 2 13 1/24/85 6 53 200 2
14 4/12/85 6 67 200 0 14 4/12/85 6 67 200 0
15 4/29/85 6 75 200 0 15 4/29/85 6 75 200 0
16 6/17/85 6 70 200 0 16 6/17/85 6 70 200 0
17 7/29/85 6 81 200 0 17 7/29/85 6 81 200 0
18 8/27/85 6 76 200 0 18 8/27/85 6 76 200 0
19 10/03/85 6 79 200 0 19 10/03/85 6 79 200 0
20 10/30/85 6 75 200 2 20 10/30/85 6 75 200 2
21 11/26/85 6 76 200 0 21 11/26/85 6 76 200 0
22 1/12/86 6 58 200 1 22 1/12/86 6 58 200 1
#+end_example #+end_example
Le jeu de données nous indique la date de l'essai, le nombre de joints 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 ...@@ -74,25 +74,44 @@ température (en Fahrenheit) et la pression (en psi), et enfin le
nombre de dysfonctionnements relevés. nombre de dysfonctionnements relevés.
* Inspection graphique des données * 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 # Les vols où aucun incident n'est relevé n'apportant aucune information
data = data[data.Malfunction>0] # sur l'influence de la température ou de la pression sur les
data # dysfonctionnements, nous nous concentrons sur les expériences où au
#+end_src # moins un joint a été défectueux.
#+RESULTS: # #+begin_src python :results value :session *python* :exports both
: Date Count Temperature Pressure Malfunction # data = data[data.Malfunction>0]
: 1 11/12/81 6 70 50 1 # data
: 8 2/03/84 6 57 200 1 # #+end_src
: 9 4/06/84 6 63 200 1
: 10 8/30/84 6 70 200 1 # #+RESULTS:
: 13 1/24/85 6 53 200 2 # #+begin_example
: 20 10/30/85 6 75 200 2 # Date Count Temperature Pressure Malfunction
: 22 1/12/86 6 58 200 1 # 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 Très bien, nous avons une variabilité de température importante mais
la pression est quasiment toujours égale à 200, ce qui devrait la pression est quasiment toujours égale à 200, ce qui devrait
...@@ -145,26 +164,27 @@ logmodel.summary() ...@@ -145,26 +164,27 @@ logmodel.summary()
#+begin_example #+begin_example
Generalized Linear Model Regression Results Generalized Linear Model Regression Results
============================================================================== ==============================================================================
Dep. Variable: Frequency No. Observations: 7 Dep. Variable: Frequency No. Observations: 23
Model: GLM Df Residuals: 5 Model: GLM Df Residuals: 21
Model Family: Binomial Df Model: 1 Model Family: Binomial Df Model: 1
Link Function: logit Scale: 1.0 Link Function: logit Scale: 1.0000
Method: IRLS Log-Likelihood: -3.6370 Method: IRLS Log-Likelihood: -3.9210
Date: Fri, 20 Jul 2018 Deviance: 3.3763 Date: Thu, 09 Apr 2020 Deviance: 3.0144
Time: 16:56:08 Pearson chi2: 0.236 Time: 12:50:13 Pearson chi2: 5.00
No. Iterations: 5 No. Iterations: 6
Covariance Type: nonrobust
=============================================================================== ===============================================================================
coef std err z P>|z| [0.025 0.975] coef std err z P>|z| [0.025 0.975]
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
Intercept -1.3895 7.828 -0.178 0.859 -16.732 13.953 Intercept 5.0850 7.477 0.680 0.496 -9.570 19.740
Temperature 0.0014 0.122 0.012 0.991 -0.238 0.240 Temperature -0.1156 0.115 -1.004 0.316 -0.341 0.110
=============================================================================== ===============================================================================
#+end_example #+end_example
L'estimateur le plus probable du paramètre de température est 0.0014 # 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 # 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 # ne peut pas distinguer d'impact particulier et il faut prendre nos
estimations avec des pincettes. # estimations avec des pincettes.
* Estimation de la probabilité de dysfonctionnant des joints toriques * Estimation de la probabilité de dysfonctionnant des joints toriques
La température prévue le jour du décollage est de 31°F. Essayons La température prévue le jour du décollage est de 31°F. Essayons
...@@ -187,36 +207,43 @@ print(matplot_lib_filename) ...@@ -187,36 +207,43 @@ print(matplot_lib_filename)
#+RESULTS: #+RESULTS:
[[file:proba_estimate_python.png]] [[file:proba_estimate_python.png]]
Comme on pouvait s'attendre au vu des données initiales, la D'après cette analyse, la probabilité d'échec des joints toriques serait
température n'a pas d'impact notable sur la probabilité d'échec des supérieure à 80% à pour une température de 31°F.
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 # Comme on pouvait s'attendre au vu des données initiales, la
à l'ensemble des données initiales pour estimer la probabilité de # température n'a pas d'impact notable sur la probabilité d'échec des
défaillance d'un joint: # 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
#+begin_src python :results output :session *python* :exports both # à l'ensemble des données initiales pour estimer la probabilité de
data = pd.read_csv("shuttle.csv") # défaillance d'un joint:
print(np.sum(data.Malfunction)/np.sum(data.Count))
#+end_src # #+begin_src python :results output :session *python* :exports both
# data = pd.read_csv("shuttle.csv")
#+RESULTS: # print(np.sum(data.Malfunction)/np.sum(data.Count))
: 0.06521739130434782 # #+end_src
Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe # #+RESULTS:
un joint primaire un joint secondaire sur chacune des trois parties du # : 0.06521739130434782
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 # Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe
lançeur est donc de $1-(1-p^2)^3 \approx 1.2%$. Ça serait vraiment # un joint primaire un joint secondaire sur chacune des trois parties du
pas de chance... Tout est sous contrôle, le décollage peut donc avoir # lançeur, la probabilité de défaillance des deux joints d'un lançeur
lieu demain comme prévu. # 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
Seulement, le lendemain, la navette Challenger explosera et emportera # pas de chance... Tout est sous contrôle, le décollage peut donc avoir
avec elle ses sept membres d'équipages. L'opinion publique est # lieu demain comme prévu.
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 # Seulement, le lendemain, la navette Challenger explosera et emportera
de communication interne à la NASA qui sont pour beaucoup dans ce # avec elle ses sept membres d'équipages. L'opinion publique est
fiasco, l'analyse précédente comporte (au moins) un petit # fortement touchée et lors de l'enquête qui suivra, la fiabilité des
problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette # joints toriques sera directement mise en cause. Au delà des problèmes
analyse et de regarder ce jeu de données sous tous les angles afin # de communication interne à la NASA qui sont pour beaucoup dans ce
d'expliquer ce qui ne va pas. # 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:
module2/exo5/freq_temp_python.png

12.3 KB | W: | H:

module2/exo5/freq_temp_python.png

13 KB | W: | H:

module2/exo5/freq_temp_python.png
module2/exo5/freq_temp_python.png
module2/exo5/freq_temp_python.png
module2/exo5/freq_temp_python.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment