Commit e00ab08e authored by Louis Lacoste's avatar Louis Lacoste

Module 2 Exo 5 fini !

parent 20049083
...@@ -42,6 +42,7 @@ data ...@@ -42,6 +42,7 @@ data
#+RESULTS: #+RESULTS:
#+begin_example #+begin_example
Date Count Temperature Pressure Malfunction Date Count Temperature Pressure Malfunction
1 4/12/81 6 66 50 0 1 4/12/81 6 66 50 0
2 11/12/81 6 70 50 1 2 11/12/81 6 70 50 1
...@@ -85,6 +86,7 @@ data ...@@ -85,6 +86,7 @@ data
#+end_src #+end_src
#+RESULTS: #+RESULTS:
:
: Date Count Temperature Pressure Malfunction : Date Count Temperature Pressure Malfunction
: 2 11/12/81 6 70 50 1 : 2 11/12/81 6 70 50 1
: 9 2/03/84 6 57 200 1 : 9 2/03/84 6 57 200 1
...@@ -99,7 +101,7 @@ la pression est quasiment toujours égale à 200, ce qui devrait ...@@ -99,7 +101,7 @@ la pression est quasiment toujours égale à 200, ce qui devrait
simplifier l'analyse. simplifier l'analyse.
Comment la fréquence d'échecs varie-t-elle avec la température ? 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* #+begin_src R :results output graphics file :file "freq_temp.png" :exports both :width 600 :height 400 :session *R*
plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1)) plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))
#+end_src #+end_src
...@@ -161,7 +163,7 @@ La température prévue le jour du décollage est de 31°F. Essayons ...@@ -161,7 +163,7 @@ La température prévue le jour du décollage est de 31°F. Essayons
d'estimer la probabilité de dysfonctionnement des joints toriques à d'estimer la probabilité de dysfonctionnement des joints toriques à
cette température à partir du modèle que nous venons de construire: 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* #+begin_src R :results output graphics file :file "proba_estimate.png" :exports both :width 600 :height 400 :session *R*
# shuttle=shuttle[shuttle$r!=0,] # shuttle=shuttle[shuttle$r!=0,]
tempv = seq(from=30, to=90, by = .5) tempv = seq(from=30, to=90, by = .5)
rmv <- predict(logistic_reg,list(Temperature=tempv),type="response") rmv <- predict(logistic_reg,list(Temperature=tempv),type="response")
...@@ -185,6 +187,7 @@ sum(data_full$Malfunction)/sum(data_full$Count) ...@@ -185,6 +187,7 @@ sum(data_full$Malfunction)/sum(data_full$Count)
#+end_src #+end_src
#+RESULTS: #+RESULTS:
:
: [1] 0.06521739 : [1] 0.06521739
Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe Cette probabilité est donc d'environ $p=0.065$, sachant qu'il existe
...@@ -205,3 +208,92 @@ problème... Saurez-vous le trouver ? Vous êtes libre de modifier cette ...@@ -205,3 +208,92 @@ 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 analyse et de regarder ce jeu de données sous tous les angles afin
d'expliquer ce qui ne va pas. d'expliquer ce qui ne va pas.
* Entrainement du modèle sur toutes les données
On recalcule le modèle en prenant en compte toutes les données
#+begin_src R :results output :session *R* :exports both
logistic_reg_full = glm(data=data_full, Malfunction/Count ~ Temperature, weights=Count,
family=binomial(link='logit'))
summary(logistic_reg_full)
#+end_src
On peut voir dans les résultats que l'on trouve un impact de la
température significatif au seuil $5%$ :
#+RESULTS:
#+begin_example
Call:
glm(formula = Malfunction/Count ~ Temperature, family = binomial(link = "logit"),
data = data_full, weights = Count)
Deviance Residuals:
Min 1Q Median 3Q Max
-0.95227 -0.78299 -0.54117 -0.04379 2.65152
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 5.08498 3.05247 1.666 0.0957 .
Temperature -0.11560 0.04702 -2.458 0.0140 *
---
codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 24.230 on 22 degrees of freedom
Residual deviance: 18.086 on 21 degrees of freedom
AIC: 35.647
Number of Fisher Scoring iterations: 5
#+end_example
** Prédictions :
#+begin_src R :results output graphics file :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_full,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]]
Bien que l'on ait un faible jeu de données le graphique semble nous
indiquer que dans le domaine proche de 30°F le risque de
dysfonctionnement se rapproche de 1.
#+begin_src R :results output :session *R* :exports both
prediction_31F <- predict(logistic_reg_full, newdata = list(Temperature=31), type="response")
prediction_31F
prediction_31F**2
#+end_src
#+RESULTS:
:
: 1
: 0.8177744
:
: 1
: 0.668755
En définissant le modèle sur l'ensemble du jeu de données, le risque
de panne d'un joint est donc estimé à $p=0.817774$ soit environ $82%$
de risque de problème avec un joint.
En supposant l'indépendance des pannes des joints, on trouve un risque
de panne des 2 joints primaires et secondaires de $p²=0.668755$.
#+begin_src R :results output :session *R* :exports both
1 - (1 - prediction_31F**2)**3
#+end_src
#+RESULTS:
: 1
: 0.9636547
Ce qui donne donc une probabilité de défaillance du lanceur $1-(1-p²)³
= 0.9636547$.
** Conclusion
*Il ne faut surtout pas lancer la fusée*
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