diff --git a/module2/exo5/exo5_fr.Rmd b/module2/exo5/exo5_fr.Rmd index 479d7823321976e2d925d00ea599e205bfbd8cc7..18b6c5c154b608e5c358c97cda349e27d04550c2 100644 --- a/module2/exo5/exo5_fr.Rmd +++ b/module2/exo5/exo5_fr.Rmd @@ -93,6 +93,16 @@ plot(tempv,rmv,type="l",ylim=c(0,1)) points(data=data, Malfunction/Count ~ Temperature) ``` +Ajout d'une courbe ggplot pour visualiser l'intervalle de confiance. + +```{r} +ggplot(data, aes(x = Temperature, y = Malfunction/Count)) + geom_point(alpha = .3, size = 3) + + theme_bw() + + geom_smooth(method = "glm", method.args = list(family = "binomial")) + xlim(50,80) +``` + + + 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 @@ -122,3 +132,86 @@ 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. + + + +## Modification des données et analyse + +Il n'y a aucune raison que les tests où les deux joints n'ont pas été abimés +soient retirés de l'étude. Pour simplifier et pouvoir appliquer un modèle logistique, +on passe plutôt à 0 = aucun disfonctionnement et 1 = au moins 1 disfonctionnement. + +```{r} +data = read.csv("shuttle.csv",header=T) +data[data$Malfunction>0,5] = 1 +data +``` + +Problème : la pression varie beaucoup si on garde tous les points de données. +Est-ce que cela semble avoir un impact ? + +```{r} +plot(data=data, Malfunction/Count ~ Pressure, ylim=c(0,1)) +``` + +Pas vraiment concluant... Est-ce que pression et température covarient ? + +```{r} +plot(data=data, Pressure ~ Temperature) +``` + +On va tenter de ne garder que les points avec P = 200, pour avoir un bel éventail +de température, sans facteur confondant. + +```{r} +data = data[data$Pressure == 200,] +``` + + + +Comment la fréquence d'échecs varie-t-elle avec la température ? +```{r} +plot(data=data, Malfunction~ Temperature, ylim=c(0,1)) +``` + +Là franchement, pour une température de 31°F, je partirais pas confiante... + +# 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 ~ Temperature, + family=binomial(link='logit')) +summary(logistic_reg) +``` + +L'estimateur le plus probable du paramètre de température est -0.2476 +et l'erreur standard de cet estimateur est de 0.122, autrement dit ça craint. + +# 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: + +```{r} +# shuttle=shuttle[shuttle$r!=0,] +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 ~ Temperature) +``` + +Ajout d'une courbe ggplot pour visualiser l'intervalle de confiance. + +```{r} +ggplot(data, aes(x = Temperature, y = Malfunction)) + geom_point(alpha = .3, size = 3) + + theme_bw() + + geom_smooth(method = "glm", method.args = list(family = "binomial")) + xlim(50,80) +```