From 46f3b7f49728694734c53214f34e8ecf91b74336 Mon Sep 17 00:00:00 2001 From: David Pinaud Date: Fri, 8 Sep 2023 10:28:59 +0200 Subject: [PATCH] Add my own analysis of the data --- module2/exo5/exo5_fr.Rmd | 75 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/module2/exo5/exo5_fr.Rmd b/module2/exo5/exo5_fr.Rmd index 479d782..fcbcfac 100644 --- a/module2/exo5/exo5_fr.Rmd +++ b/module2/exo5/exo5_fr.Rmd @@ -122,3 +122,78 @@ 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. + +# Analyse par D. Pinaud, 2023-09-07 + +## Chargement des données +Nous commençons donc par charger ces données: + +```{r} +data <- read.csv("shuttle.csv",header=T) +str(data) +``` +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 Farenheit) et la pression (en psi), et enfin le +nombre de dysfonctionnements relevés. + +```{r} +table(data$Count) +``` +Pour chaque essai, tous les joints ont été inspectés, donc pas de déséquilibre d'échantillonnage. + +## Inspection graphique des données +Dysfonctionnement en fonction de la température sur l'ensemble des données : +```{r} +plot(Malfunction ~ Temperature, data) +``` + +On voit que le fait d'enlever les tests où il n'y a pas eu de défaillance biaise fortement la vision que l'on peut avoir de l'effet de la température. + +On regarde un éventuel effet de la pression : +```{r} +plot(Malfunction ~ Pressure, data) +logistic_reg <- glm(data=data, Malfunction/Count ~ Pressure, weights=Count, + family=binomial(link='logit')) +summary(logistic_reg) +``` + +Pas d'évidence pour dire qu'il existe un effet de la pression. + + +## 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. + +```{r} +logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count, + family=binomial(link='logit')) +summary(logistic_reg) +``` +L’estimateur le plus probable du paramètre de température est de -0.11560 (et l’erreur standard de cet estimateur est de 0.049 (SE = 0.04702), différent significativement de 0. La probabilité de dysfonctionnement des joints toriques baisse significativement quand la température augmente... __Première grosse erreur__... + +## 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. comme la température du jour du lancement n'est pas comprise dans la gamme des valeurs testées, nous faisons l'hypothèse que la relation entre probabilité de défaillance et température est linéaire dans cette gamme jusqu'à 31°F (extrapolation). +```{r} +tempv <- seq(from=25, to=90, by = .5) +rmv <- predict(logistic_reg, list(Temperature=tempv), type="response", se=TRUE) +plot(tempv, rmv$fit, type="l", ylim=c(0,1), xlab="Temperature", ylab="Malfunction probability", lwd=2) +points(data=data, Malfunction/Count ~ Temperature) +lines(tempv, rmv$fit-rmv$se.fit*qt(0.975, df.residual(logistic_reg)), lty=2) # CI95% SE*qt(0.975, df) +lines(tempv, rmv$fit+rmv$se.fit*qt(0.975, df.residual(logistic_reg)), lty=2) +abline(v=31, col="red") + +``` + +Les lignes en pointillés donnent l'intervalle de confiance de prédiction à 95%. +La probabilité de défaillance d'un joint à une température 31°F est de p=`r round(predict(logistic_reg, list(Temperature=31), type="response"), 3)`, ce qui n'est pas du tout négligeable !!! +Sachant qu'il existe un joint primaire et un joint secondaire sur chacune des trois parties du +lançeur, la probabilité de défaillance à 31°F des deux joints de la même jonction du lançeur (ce qui est suffisant pour une défaillance majeure) est de $p^2$ soit $p=$`r round((predict(logistic_reg, list(Temperature=31), type="response")^2), 3)`... + + -- 2.18.1