diff --git a/module2/exo2/exercice_fr.Rmd b/module2/exo2/exercice_fr.Rmd index 7eece5e296bb586e88166aa8a263ca75b44c2b9e..f69f668b16a998e2137c35642f3b4b9b8749d6ac 100644 --- a/module2/exo2/exercice_fr.Rmd +++ b/module2/exo2/exercice_fr.Rmd @@ -1,7 +1,7 @@ --- -title: "Votre titre" -author: "Votre nom" -date: "La date du jour" +title: "Savoir faire un calcul simple soi-même" +author: "Valentin Mathieu" +date: "01 Mars 2024" output: html_document --- @@ -10,24 +10,20 @@ output: html_document knitr::opts_chunk$set(echo = TRUE) ``` -## Quelques explications +## Création d'un vecteur -Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez . +Stockage des données dans un vecteur numérique appelé *data* : -Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: - -```{r cars} -summary(cars) +```{r} +data <- c(14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0) ``` -Et on peut aussi aisément inclure des figures. Par exemple: - -```{r pressure, echo=FALSE} -plot(pressure) -``` +## Calcul sur les données -Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. +Statistiques descriptives sur le jeu de données : -Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. +```{r} +summary(data) +sd(data) +``` -Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. diff --git a/module2/exo3/exercice_fr.Rmd b/module2/exo3/exercice_fr.Rmd index 7eece5e296bb586e88166aa8a263ca75b44c2b9e..0302e4bbfb75c0a0e2bc866333923fa963f37453 100644 --- a/module2/exo3/exercice_fr.Rmd +++ b/module2/exo3/exercice_fr.Rmd @@ -1,7 +1,7 @@ --- -title: "Votre titre" -author: "Votre nom" -date: "La date du jour" +title: "Réaliser un affichage graphique" +author: "Valentin Mathieu" +date: "01 Mars 2024" output: html_document --- @@ -10,24 +10,33 @@ output: html_document knitr::opts_chunk$set(echo = TRUE) ``` -## Quelques explications +## Création d'un vecteur -Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez . +Stockage des données dans un vecteur numérique appelé *data* : -Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: +```{r} +data <- c(14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0) +data_df <- data.frame(data) +``` + +Création des valeurs en abscisse pour les plots -```{r cars} -summary(cars) +```{r} +x <- seq(0, length(data)-1) ``` -Et on peut aussi aisément inclure des figures. Par exemple: +## Séquence plot -```{r pressure, echo=FALSE} -plot(pressure) +```{r} +library(ggplot2) +ggplot(data = data_df, aes(x = x, y=data_df))+geom_line(color = "blue") ``` -Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. +## Histogramme -Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. +```{r} +#library(ggplot2) +#ggplot(data = data_df, aes(x=data_df))+geom_histogram(color = "blue") +hist(data, breaks = 8, xlim = c(0, 25), ylim = c(0,25), col = "blue") +``` -Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. diff --git a/module2/exo5/exo5_fr.Rmd b/module2/exo5/exo5_fr.Rmd index 479d7823321976e2d925d00ea599e205bfbd8cc7..4e553596a5ef5de208c1b7ca839f2082489121fa 100644 --- a/module2/exo5/exo5_fr.Rmd +++ b/module2/exo5/exo5_fr.Rmd @@ -42,7 +42,7 @@ dysfonctionnements, nous nous concentrons sur les expériences où au moins un joint a été défectueux. ```{r} -data = data[data$Malfunction>0,] +#data = data[data$Malfunction>0,] data ``` @@ -70,7 +70,7 @@ $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, +logistic_reg = glm(data=data, formula = Malfunction/Count ~ Temperature, weights=Count, family=binomial(link='logit')) summary(logistic_reg) ``` diff --git a/module2/exo5/exo5_fr.html b/module2/exo5/exo5_fr.html new file mode 100644 index 0000000000000000000000000000000000000000..c75e71609eb211402632b08606f80cf4fda4decd --- /dev/null +++ b/module2/exo5/exo5_fr.html @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + +Analyse du risque de défaillance des joints toriques de la navette Challenger + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +

Le 27 Janvier 1986, veille du décollage de la navette +Challenger, eu lieu une télé-conférence de trois heures entre +les ingénieurs de la Morton Thiokol (constructeur d’un des moteurs) et +de la NASA. La discussion portait principalement sur les conséquences de +la température prévue au moment du décollage de 31°F (juste en dessous +de 0°C) sur le succès du vol et en particulier sur la performance des +joints toriques utilisés dans les moteurs. En effet, aucun test n’avait +été effectué à cette température.

+

L’étude qui suit reprend donc une partie des analyses effectuées +cette nuit là et dont l’objectif était d’évaluer l’influence potentielle +de la température et de la pression à laquelle sont soumis les joints +toriques sur leur probabilité de dysfonctionnement. Pour cela, nous +disposons des résultats des expériences réalisées par les ingénieurs de +la NASA durant les 6 années précédant le lancement de la navette +Challenger.

+
+

Chargement des données

+

Nous commençons donc par charger ces données:

+
data = read.csv("shuttle.csv",header=T)
+data
+
##        Date Count Temperature Pressure Malfunction
+## 1   4/12/81     6          66       50           0
+## 2  11/12/81     6          70       50           1
+## 3   3/22/82     6          69       50           0
+## 4  11/11/82     6          68       50           0
+## 5   4/04/83     6          67       50           0
+## 6   6/18/82     6          72       50           0
+## 7   8/30/83     6          73      100           0
+## 8  11/28/83     6          70      100           0
+## 9   2/03/84     6          57      200           1
+## 10  4/06/84     6          63      200           1
+## 11  8/30/84     6          70      200           1
+## 12 10/05/84     6          78      200           0
+## 13 11/08/84     6          67      200           0
+## 14  1/24/85     6          53      200           2
+## 15  4/12/85     6          67      200           0
+## 16  4/29/85     6          75      200           0
+## 17  6/17/85     6          70      200           0
+## 18  7/29/85     6          81      200           0
+## 19  8/27/85     6          76      200           0
+## 20 10/03/85     6          79      200           0
+## 21 10/30/85     6          75      200           2
+## 22 11/26/85     6          76      200           0
+## 23  1/12/86     6          58      200           1
+

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.

+
+
+

Inspection graphique des données

+

Les vols où aucun incident n’est relevé n’apportant aucun information +sur l’influence de la température ou de la pression sur les +dysfonctionnements, nous nous concentrons sur les expériences où au +moins un joint a été défectueux.

+
#data = data[data$Malfunction>0,]
+data
+
##        Date Count Temperature Pressure Malfunction
+## 1   4/12/81     6          66       50           0
+## 2  11/12/81     6          70       50           1
+## 3   3/22/82     6          69       50           0
+## 4  11/11/82     6          68       50           0
+## 5   4/04/83     6          67       50           0
+## 6   6/18/82     6          72       50           0
+## 7   8/30/83     6          73      100           0
+## 8  11/28/83     6          70      100           0
+## 9   2/03/84     6          57      200           1
+## 10  4/06/84     6          63      200           1
+## 11  8/30/84     6          70      200           1
+## 12 10/05/84     6          78      200           0
+## 13 11/08/84     6          67      200           0
+## 14  1/24/85     6          53      200           2
+## 15  4/12/85     6          67      200           0
+## 16  4/29/85     6          75      200           0
+## 17  6/17/85     6          70      200           0
+## 18  7/29/85     6          81      200           0
+## 19  8/27/85     6          76      200           0
+## 20 10/03/85     6          79      200           0
+## 21 10/30/85     6          75      200           2
+## 22 11/26/85     6          76      200           0
+## 23  1/12/86     6          58      200           1
+

Très bien, nous avons une variabilité de température importante mais +la pression est quasiment toujours égale à 200, ce qui devrait +simplifier l’analyse.

+

Comment la fréquence d’échecs varie-t-elle avec la température ?

+
plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))
+

+

À première vue, ce n’est pas flagrant mais bon, essayons quand même +d’estimer l’impact de la température \(t\) sur la probabilité de +dysfonctionnements d’un joint.

+
+
+

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.

+
logistic_reg = glm(data=data, formula = Malfunction/Count ~ Temperature, weights=Count, 
+                   family=binomial(link='logit'))
+summary(logistic_reg)
+
## 
+## Call:
+## glm(formula = Malfunction/Count ~ Temperature, family = binomial(link = "logit"), 
+##     data = data, weights = Count)
+## 
+## 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 *
+## ---
+## Signif. 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
+

L’estimateur le plus probable du paramètre de température est +0.001416 et l’erreur standard de cet estimateur est de 0.049, autrement +dit on ne peut pas distinguer d’impact particulier et il faut prendre +nos estimations avec des pincettes.

+
+
+

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:

+
# 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/Count ~ Temperature)
+

+

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 +précédents où nous il y a eu défaillance d’au moins un joint. Revenons à +l’ensemble des données initiales pour estimer la probabilité de +défaillance d’un joint:

+
data_full = read.csv("shuttle.csv",header=T)
+sum(data_full$Malfunction)/sum(data_full$Count)
+
## [1] 0.06521739
+

Cette probabilité est donc d’environ \(p=0.065\), sachant qu’il existe un joint +primaire un joint secondaire sur chacune des trois parties du lançeur, +la probabilité de défaillance des deux joints d’un lançeur est de \(p^2 \approx 0.00425\). La probabilité de +défaillance d’un des lançeur est donc de \(1-(1-p^2)^3 \approx 1.2%\). Ça serait +vraiment pas de chance… Tout est sous contrôle, le décollage peut donc +avoir lieu demain comme prévu.

+

Seulement, le lendemain, la navette Challenger explosera et emportera +avec elle ses sept membres d’équipages. L’opinion publique est fortement +touchée et lors de l’enquête qui suivra, la fiabilité des joints +toriques sera directement mise en cause. Au delà des problèmes de +communication interne à la NASA qui sont pour beaucoup dans ce 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.

+
+ + + + +
+ + + + + + + + + + + + + + +