diff --git a/module2/exo5/exo5_fr.Rmd b/module2/exo5/exo5_fr.Rmd index 479d7823321976e2d925d00ea599e205bfbd8cc7..b7f31cf02d1ed312995e84c66eb71ee8a9bbfcbd 100644 --- a/module2/exo5/exo5_fr.Rmd +++ b/module2/exo5/exo5_fr.Rmd @@ -122,3 +122,62 @@ 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. + +# Bon... Reprenons depuis le début ! + +```{r, echo = FALSE} +rm(list = ls()) +library(ggplot2) +data <- read.csv("shuttle.csv",header=T) +``` + +Commençons par observer les données : + +```{r} +data +``` + +Contrairement à ce qui a été fait plus haut, il ne faut pas supprimer les cas où tout a bien fonctioné et regardons comment les échecs varient en fonction de la température : + +```{r} +plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,0.5)) +``` + +Estimons maintenant l'influence de la température : + +```{r} +logistic_reg <- glm(data = data, Malfunction/Count ~ Temperature, weights = Count, + family=binomial(link='logit')) +summary(logistic_reg) +``` + +Cette fois-ci, l'estimateur le plus probable du paramètre de température est `r round(as.numeric(logistic_reg$coefficients[2]),4)` et l'erreur standard de cet estimateur est de `r round(as.numeric(summary(logistic_reg)$coef[4]),4)`, ce qui rend les estimations plus fiables. Essayons de déterminer la probabilité d'accident le jour du lancement avec ce nouveau modèle : + +```{r} +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) +``` + +En prenant en compte l'ensemble des données, la probabilité de dysfonctionnement n'est plus de 0.2 mais de plus de 0.8... Elle est précisement de $p = `r round(as.numeric(predict(logistic_reg,list(Temperature = 31), type = "response")),2)`$. Contrairement à ce qui est écrit plus haut, la probabilité de défaillance des deux joints le jour du lancement avec une température de $31°F$ est donc approximativement de : $p^2 \approx `r round((as.numeric(predict(logistic_reg,list(Temperature = 31), type = "response"))^2),2)`$. La probabilité de défaillance d'un des +lançeur est donc de $1-(1-p^2)^3 \approx `r 1-((1-as.numeric(predict(logistic_reg,list(Temperature = 31), type = "response"))^2)^3)`$. Cette estimation ne prend cependant pas en compte l'incertitude de la prédiction qui doit pourtant être énorme puisque la valeur de $31°F$ est très éloignée de tout ce qui avait été testé. On peut d'ailleur la visualiser de la manière suivant : + +```{r warning=FALSE} +ggplot(data = data, aes(x = Temperature, y = Malfunction)) + + geom_smooth(method = "glm", method.args = list(family = "binomial"), fullrange = TRUE) + + geom_point(data = data, aes(x = Temperature, y = Malfunction), alpha = 0.2, size = 2, color = "blue") + + geom_point(alpha = 0.5, size = 0.5) + + xlim(30,90) + ylim(0,1) + theme_bw() +``` + +Graphiquement, on peut voir que notre valeur $p = `r round(as.numeric(predict(logistic_reg,list(Temperature = 31), type = "response")),2)`$ à un intervale de confiance compris entre $[0.2 - 1]$. On peut affiner l'estimation de cette incertitude de la manière suivante : + +```{r} +pred <- predict(logistic_reg,list(Temperature = 31), type = "link", se.fit = TRUE) +interval <- logistic_reg$family$linkinv(c(pred$fit-1.96*pred$se.fit, + pred$fit+1.96*pred$se.fit)) +interval +``` + +Un intervale de confiance à 95% donne donc une estimation de $p$ comprise entre $[ `r round(as.numeric(interval[1]),3)` - `r round(as.numeric(interval[2]),3)`]$ (pour mémoire $p = `r round(as.numeric(predict(logistic_reg,list(Temperature = 31), type = "response")),2)`$). Il semble évident avec toutes ces analyses que la température à un impact sur le mauvais fonctionnement des joints toriques, mais le manque de tests à basses températures rend toute prédiction pour le lancement du 28 janvier 1986 impossible. Tout n'était donc pas sous contrôle...