Upload New File

parent 58a44981
---
title: "Document computationnel évalué par des pairs"
author: "Bertille MATRAY"
date: "15 septembre 2020"
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## **Sujet 6: Autour du Paradoxe de Simpson**
# 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
```{r}
data<-read.csv(file.choose(), header = TRUE, sep = ",", dec=".")
head(data)
tail(data)
class(data$Age)
summary(data)
```
Nous avons vérifié le bon import et que l'âge soit bien un numeric.
Y -t-il des données manquantes ?
```{r}
na_records=apply(data, 1, function (x) any(is.na(x)))
data[na_records,1]
```
Non il ne manque rien.
# Mission 1: Compter les femmes vivantes et décédées en fonction des habitudes de tabagisme
```{r}
tot_alive=sum(data$Status=="Alive")
tot_dead=sum(data$Status=="Dead")
tot_fumeuse=sum(data$Smoker=="Yes")
tot_nonfumeuse=sum(data$Smoker=="No")
tot_dead
tot_fumeuse
```
Le nombre total de femmes décédées pendant la période est 369. Le nombre de fumeuse est 582.
En relation avec les habitudes de tabagisme:
```{r}
tableau=table(data$Smoker, data$Status, deparse.level=2)
tableau
mortalite_fumeuse=tableau[2,2]/tot_fumeuse
mortalite_nonfumeuse=tableau[1,2]/tot_nonfumeuse
mortalite_fumeuse
mortalite_nonfumeuse
```
Le taux de moralité des fumeuses est plus petit que celui des non fumeuses ! 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.
```{r}
taux= data.frame(Fumeur=c("Oui","Non"), Taux_de_mortalite=c(mortalite_fumeuse,mortalite_nonfumeuse))
library(ggplot2)
ggplot(data=taux, aes(x=Fumeur, y=Taux_de_mortalite))+geom_bar(stat="identity")
```
# 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:
```{r}
tableau3=table(data$Status, data$Generation, deparse.level=2)
tableau3
Generation1_dead=tableau3[2,1]/tot_18_34
Generation2_dead=tableau3[2,2]/tot_34_54
Generation3_dead=tableau3[2,3]/tot_54_65
Generation4_dead=tableau3[2,4]/tot_65_
```
Représentation graphique des mortes par générations:
```{r}
Taux_deces_par_Generation= data.frame(Generation=c("18-34","35-54","55-65","65+"), Taux_dead=c(Generation1_dead, Generation2_dead, Generation3_dead, Generation4_dead))
library(ggplot2)
ggplot(data=Taux_deces_par_Generation, aes(x=Generation, y=Taux_dead))+geom_bar(stat="identity")
```
Comme on pouvait s'y attendre, la mortalité croit avec l'âge.
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:
```{r}
tableau2=table(data$Smoker, data$Generation, deparse.level=2)
tableau2
Generation1_fumeuse=tableau2[2,1]/tot_18_34
Generation2_fumeuse=tableau2[2,2]/tot_34_54
Generation3_fumeuse=tableau2[2,3]/tot_54_65
Generation4_fumeuse=tableau2[2,4]/tot_65_
```
On va représenter la distribution des fumeuses à travers les classes d'âge:
```{r}
Taux_de_fumeuse_par_Generation= data.frame(Generation=c("18-34","35-54","55-65","65+"), Taux_de_fumeuse=c(Generation1_fumeuse, Generation2_fumeuse, Generation3_fumeuse, Generation4_fumeuse))
library(ggplot2)
ggplot(data=Taux_de_fumeuse_par_Generation, aes(x=Generation, y=Taux_de_fumeuse))+geom_bar(stat="identity")
```
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é.
# Mission 3 : 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, family=binomial, data=Fumeuses)
summary(mod2)
```
Chez les fumeuses, le risque de décès augmente significativement avec l'âge.
Chez les non-fumeuses:
```{r}
mod3<-glm(Death ~ Age, family=binomial(logit), data=NonFumeuses)
summary(mod3)
```
De même, le risque de décès augmente significativement avec l'âge.
## Et donc...
Cette étude des données ne montre pas d'effet aggravant du tabagisme sur la mortalité des femmes étudiées pendant la période choisie.
Le modèle suivant étudie l'ensemble du jeu de données et Death ~ Age + Smocker
```{r}
mod1<-glm(data$Death ~ data$Age + data$Smoker, family=binomial(logit), data=data)
summary(mod1)
```
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.
## 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.
\ No newline at end of file
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