title: "Document computationnel évalué par des pairs"
author: "Bertille MATRAY"
date: "15 septembre 2020"
output:
pdf_document: default
html_document: default
---
...
...
@@ -10,24 +12,191 @@ output: html_document
knitr::opts_chunk$set(echo = TRUE)
```
## Quelques explications
## Sujet 6: Autour du Paradoxe de Simpson
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:
# Chargement des données
Les données de l'exercice sont disponibles sur gitlab [ici](https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module3/Practical_session/Subject6_smoking.csv). J'ai moi-même charger les données le 15/09/2020. Le séparateur utilisé est la virgule, l'âge des femmes est
Le taux de moralité des fumeuses est ```mortalite_fumeuse``` alors que celui des non fumeuses est ```mortalité_nonfumeuse```! C'est surprenant lorsqu'on connaît les risques du tabac sur la santé.
J'ai choisis de faire une représentation graphique en baton, en chargeant d'abord la library ggplot2.
## Mission 2 : Prendre en compte les classes d'âge dans l'analyse
Nous considérons les classes 18-34 ans, 34-54 ans, 55-64 ans, plus de 65 ans. 18 est bien l'âge minimum donc on a bien toutes les femmes de l'étude.
```{r}
tot_18_34=sum(data$Age<=34)
tot_34_54=sum(data$Age<=54 & data$Age>34)
tot_54_65=sum(data$Age<=65 & data$Age>54)
tot_65_=sum(data$Age>65)
tot_18_34
tot_34_54
tot_54_65
tot_65_
```
Il nous faut une fonction qui indique la classe d'age, appelée génération, lorsqu'on doit un âge précis en entrée.
```{r}
convert_Age=function(w){
generation=0
if(w<=34){
generation=as.character("18-34")
}
if(w>34){
if(w<=54){
generation=as.character("34-54")
}
}
if(w>54){
if(w<=65)
generation=as.character("55-65")
}
if (w>65){
generation=as.character("65+")
}
return (generation)
}
```
Ensuite on applique cette fonction aux données. On crée d'abord une colonne de 1314 lignes vides, on l'ajoute au tableau de données data. Enfin on la remplit avec la classe d'âge ligne par ligne.
```{r}
Generation=rep("",1314)
data<-cbind(data,Generation)
for (i in (1:1314)){
data$Generation[i]=convert_Age(data$Age[i])
}
```
Revenons au lien entre le tabagisme, l'âge et la mortalité.
Si on regarde d'abord la mortalité selon la classe d'âge dns notre jeu de données:
Et on peut aussi aisément inclure des figures. Par exemple:
Comme on pouvait s'y attendre, la mortalité croit avec l'âge.
```{r pressure, echo=FALSE}
plot(pressure)
Je cherche à expliquer le résultat de la 1ère partie, à savoir que la mortalité des non fumeuses a été plus élevée que celle des fumeuse, par la distribution des fumeuses dans les classes d'âge:
On va représenter la distribution des fumeuses à travers les classes d'âge:
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.
Les fumeuses sont peu représentées dans le groupe 65 ans et plus, en comparaison des autres classes d'âge. Les classes d'âge entre 18 et 65 ans contiennent plus de 40% de fumeuses. Et nous avons vu sur le graphique précédent que ces classes n'étaient pas soumises à des mortalités plus élevées.
Jusqu'ici les données ne participent pas à montrer que le tabagisme augmente la mortalité.
##Régression logistique
On souhaite s'affranchir des classes d'âges qui sont construites arbitrairement et peuvent générer un biais. Pour cela on utilise la regression logistique.
Pour commencer, on introduit une variable Death valant 1 ou 0 pour indiquer si l'individu est décédé durant la période de 20 ans. On ajoute cette colonne Death au tableau data
```{r}
Death=rep(0, 1314)
for (i in (1:1314)){
if (data$Status[i]=="Dead"){
Death[i]=as.numeric(1)
}
}
data<-cbind(data,Death)
```
Le modèle demandé par la consigne est Death ~ Age appliqué d'une part aux fumeuses et d'autre part aux non-fumeuses. Je commence par séparer les fumeuses des non fumeuses.
```{r}
Fumeuses=subset(data, data$Smoker=="Yes")
View(Fumeuses)
NonFumeuses=subset(data, data$Smoker=="No")
View(NonFumeuses)
```
On applique donc le modèle Death~Age aux fumeuses
```{r}
mod2<-glm(Death ~ Age + Smoke, family=binomial, data=Fumeuses)
summary(mod2)
```
Chez les fumeuses, le risque de décès augmente significativement avec l'âge.
Le risque de decès est significativement plus fort si l'âge augmente. Le risque de décès est également significativement plus fort si la personne fume mais le facteur Smoker est bien moins significatif que l'âge.
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.
## Merci
Manquant de temps, je poste ce travail sans aller plus loin (ceci m'ayant déjà pris des années vu mon niveau de code). Merci de m'avoir lu, bonne continuation à vous.