...
 
Commits (20)
test # Partie 1
\ No newline at end of file ## Sous-partie 1 : texte
Une phrase sans rien
_Une phrase en italique_
__Une phrase en gras__
Un lien vers [fun-mooc.fr](https://www.fun-mooc.fr/)
Une ligne de `code`
## Sous-partie 2 : listes
__Liste à puce__
- item
- sous-item
- sous-item
- item
- item
__Liste numérotée__
1. item
2. item
3. item
## Sous-partie 3 : code
```
# Extrait de code
```
\ No newline at end of file
--- ---
title: "Votre titre" title: "À propos du calcul de pi"
author: "Votre nom" author: "Sofiane Benhamouche"
date: "La date du jour" date: "15/04/2021"
output: html_document output: html_document
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications ## En demandant à la lib maths
Mon ordinateur m’indique que π vaut approximativement
```{r}
pi
```
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 <http://rmarkdown.rstudio.com>. ## En utilisant la méthode des aiguilles de Buffon
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: Mais calculé avec la méthode des aiguilles de Buffon, on obtiendrait comme approximation :
```{r cars} ```{r}
summary(cars) set.seed(42)
N = 100000
x = runif(N)
theta = pi/2*runif(N)
2/(mean(x+sin(theta)>1))
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: ## Avec un argument “fréquentiel” de surface
```{r pressure, echo=FALSE} Sinon, une méthode plus simple à comprendre et ne faisant pas intervenir d’appel à la fonction sinus se base sur le fait que si **X∼U(0,1)** et **Y∼U(0,1)** alors **P[X2+Y2≤1]=π/4** (voir [méthode de Monte Carlo sur Wikipedia](https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Monte-Carlo#D%C3%A9termination_de_la_valeur_de_%CF%80)). Le code suivant illustre ce fait:
plot(pressure)
```{r}
set.seed(42)
N = 1000
df = data.frame(X = runif(N), Y = runif(N))
df$Accept = (df$X**2 + df$Y**2 <=1)
library(ggplot2)
ggplot(df, aes(x=X,y=Y,color=Accept)) + geom_point(alpha=.2) + coord_fixed() + theme_bw()
``` ```
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. Il est alors aisé d’obtenir une approximation (pas terrible) de π en comptant combien de fois, en moyenne, X2+Y2 est inférieur à 1:
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}
4*mean(df$Accept)
```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.
--- ---
title: "Votre titre" title: "m2_exo2"
author: "Votre nom" author: "Sofiane Benhamouche"
date: "La date du jour" date: "15/04/2021"
output: html_document output: html_document
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications ```{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)
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 <http://rmarkdown.rstudio.com>. 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}
mean(data)
min(data)
max(data)
median(data)
sd(data)
Et on peut aussi aisément inclure des figures. Par exemple:
```{r pressure, echo=FALSE}
plot(pressure)
``` ```
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.
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.
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.
--- ---
title: "Votre titre" title: "Votre titre"
author: "Votre nom" author: "BENHAMOUCHE SOFIANE"
date: "La date du jour" date: "16/06/2021"
output: html_document output: html_document
--- ---
...@@ -12,22 +12,15 @@ knitr::opts_chunk$set(echo = TRUE) ...@@ -12,22 +12,15 @@ knitr::opts_chunk$set(echo = TRUE)
## Quelques explications ## Quelques explications
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 <http://rmarkdown.rstudio.com>.
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}
donnees <- 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)
```{r cars}
summary(cars)
``` ```
Et on peut aussi aisément inclure des figures. Par exemple: ```{r}
hist(donnees, col="blue")
```{r pressure, echo=FALSE}
plot(pressure)
``` ```
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. ```{r }
plot(donnees, type="l", col="blue")
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. ```
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.
--- ---
title: "Analyse du risque de défaillance des joints toriques de la navette Challenger" title: "Analyse critique"
author: "Arnaud Legrand" author: "BENHAMOUCHE SOFIANE"
date: "28 juin 2018" date: "16/06/2021"
output: html_document output: html_document
--- ---
Le 27 Janvier 1986, veille du décollage de la navette _Challenger_, eu 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 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 Morton Thiokol (constructeur d'un des moteurs) et de la NASA. La
...@@ -14,13 +15,6 @@ température prévue au moment du décollage de 31°F (juste en dessous de ...@@ -14,13 +15,6 @@ température prévue au moment du décollage de 31°F (juste en dessous de
joints toriques utilisés dans les moteurs. En effet, aucun test joints toriques utilisés dans les moteurs. En effet, aucun test
n'avait été effectué à cette température. 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 # Chargement des données
Nous commençons donc par charger ces données: Nous commençons donc par charger ces données:
...@@ -59,15 +53,6 @@ plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1)) ...@@ -59,15 +53,6 @@ plot(data=data, Malfunction/Count ~ Temperature, ylim=c(0,1))
d'estimer l'impact de la température $t$ sur la probabilité de d'estimer l'impact de la température $t$ sur la probabilité de
dysfonctionnements d'un joint. 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.
```{r} ```{r}
logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count, logistic_reg = glm(data=data, Malfunction/Count ~ Temperature, weights=Count,
...@@ -112,13 +97,3 @@ est de $p^2 \approx 0.00425$. La probabilité de défaillance d'un des ...@@ -112,13 +97,3 @@ 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 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 pas de chance... Tout est sous contrôle, le décollage peut donc avoir
lieu demain comme prévu. 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.
--- ---
title: "Analyse de l'incidence du syndrôme grippal" title: "Analyse de l'incidence du syndrôme grippal"
author: "Konrad Hinsen" author: "Benhamouche Sofiane"
output: output:
pdf_document: pdf_document:
toc: true
html_document:
toc: true
theme: journal
documentclass: article
classoption: a4paper
header-includes:
- \usepackage[french]{babel}
- \usepackage[upright]{fourier}
- \hypersetup{colorlinks=true,pagebackref=true}
--- ---
```{r setup, include=FALSE} ```{r setup, include=FALSE}
...@@ -25,6 +15,9 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du ...@@ -25,6 +15,9 @@ Les données de l'incidence du syndrome grippal sont disponibles du site Web du
```{r} ```{r}
data_url = "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv" data_url = "http://www.sentiweb.fr/datasets/incidence-PAY-3.csv"
``` ```
```{r}
data_file = "syndrome-grippal.csv"
```
Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://ns.sentiweb.fr/incidence/csv-schema-v1.json): Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://ns.sentiweb.fr/incidence/csv-schema-v1.json):
...@@ -42,9 +35,9 @@ Voici l'explication des colonnes donnée sur le [sur le site d'origine](https:// ...@@ -42,9 +35,9 @@ Voici l'explication des colonnes donnée sur le [sur le site d'origine](https://
| `geo_name` | Libellé de la zone géographique (ce libellé peut être modifié sans préavis) | | `geo_name` | Libellé de la zone géographique (ce libellé peut être modifié sans préavis) |
La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skip=1`. La première ligne du fichier CSV est un commentaire, que nous ignorons en précisant `skip=1`.
### Téléchargement ### lecture
```{r} ```{r}
data = read.csv(data_url, skip=1) data = read.csv(data_file, skip=1)
``` ```
Regardons ce que nous avons obtenu: Regardons ce que nous avons obtenu:
...@@ -53,13 +46,13 @@ head(data) ...@@ -53,13 +46,13 @@ head(data)
tail(data) tail(data)
``` ```
Y a-t-il des points manquants dans nos données ? les points manquants
```{r} ```{r}
na_records = apply(data, 1, function (x) any(is.na(x))) na_records = apply(data, 1, function (x) any(is.na(x)))
data[na_records,] data[na_records,]
``` ```
Les deux colonnes qui nous intéressent sont `week` et `inc`. Vérifions leurs classes: Les colonnes q `week` et `inc`
```{r} ```{r}
class(data$week) class(data$week)
class(data$inc) class(data$inc)
...@@ -84,7 +77,6 @@ convert_week = function(w) { ...@@ -84,7 +77,6 @@ convert_week = function(w) {
} }
``` ```
Nous appliquons cette fonction à tous les points, créant une nouvelle colonne `date` dans notre jeu de données:
```{r} ```{r}
data$date = as.Date(convert_week(data$week)) data$date = as.Date(convert_week(data$week))
``` ```
...@@ -120,8 +112,7 @@ with(tail(data, 200), plot(date, inc, type="l", xlab="Date", ylab="Incidence heb ...@@ -120,8 +112,7 @@ with(tail(data, 200), plot(date, inc, type="l", xlab="Date", ylab="Incidence heb
### Calcul ### Calcul
Étant donné que le pic de l'épidémie se situe en hiver, à cheval entre deux années civiles, nous définissons la période de référence entre deux minima de l'incidence, du 1er août de l'année $N$ au 1er août de l'année $N+1$. Nous mettons l'année $N+1$ comme étiquette sur cette année décalée, car le pic de l'épidémie est toujours au début de l'année $N+1$. Comme l'incidence de syndrome grippal est très faible en été, cette modification ne risque pas de fausser nos conclusions. Étant donné que le pic de l'épidémie se situe en hiver, à cheval entre deux années civiles,
L'argument `na.rm=True` dans la sommation précise qu'il faut supprimer les points manquants. Ce choix est raisonnable car il n'y a qu'un seul point manquant, dont l'impact ne peut pas être très fort.
```{r} ```{r}
pic_annuel = function(annee) { pic_annuel = function(annee) {
debut = paste0(annee-1,"-08-01") debut = paste0(annee-1,"-08-01")
...@@ -143,21 +134,11 @@ inc_annuelle = data.frame(annee = annees, ...@@ -143,21 +134,11 @@ inc_annuelle = data.frame(annee = annees,
head(inc_annuelle) head(inc_annuelle)
``` ```
### Inspection ##Inspection
Voici les incidences annuelles en graphique: Voici les incidences annuelles en graphique:
```{r} ```{r}
plot(inc_annuelle, type="p", xlab="Année", ylab="Incidence annuelle") plot(inc_annuelle, type="p", xlab="Année", ylab="Incidence annuelle")
``` ```
### Identification des épidémies les plus fortes
Une liste triée par ordre décroissant d'incidence annuelle permet de plus facilement repérer les valeurs les plus élevées:
```{r}
head(inc_annuelle[order(-inc_annuelle$incidence),])
```
Enfin, un histogramme montre bien que les épidémies fortes, qui touchent environ 10% de la population française, sont assez rares: il y en eu trois au cours des 35 dernières années.
```{r}
hist(inc_annuelle$incidence, breaks=10, xlab="Incidence annuelle", ylab="Nb d'observations", main="")
``` ```
--- ---
title: "Votre titre" title: "Votre titre"
author: "Votre nom" author: "SOFIANE BENHAMOUCHE"
date: "La date du jour" date: "16/06/2021"
output: html_document output: html_document
--- ---
...@@ -9,25 +9,3 @@ output: html_document ...@@ -9,25 +9,3 @@ output: html_document
```{r setup, include=FALSE} ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE) knitr::opts_chunk$set(echo = TRUE)
``` ```
## Quelques explications
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 <http://rmarkdown.rstudio.com>.
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)
```
Et on peut aussi aisément inclure des figures. Par exemple:
```{r pressure, echo=FALSE}
plot(pressure)
```
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.
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.
Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel.