Commit 46f3b7f4 authored by David Pinaud's avatar David Pinaud

Add my own analysis of the data

parent 6123b7da
...@@ -122,3 +122,78 @@ fiasco, l'analyse précédente comporte (au moins) un petit ...@@ -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 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.
# 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)`...
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