Commit 2e2ccaad authored by Adam Taheraly's avatar Adam Taheraly

reponse devoir

parent b0db00a7
This diff is collapsed.
This diff is collapsed.
...@@ -17,6 +17,7 @@ library(devtools) # Obtention des informations sur la session R ...@@ -17,6 +17,7 @@ library(devtools) # Obtention des informations sur la session R
library(dplyr) # Manipulation des données library(dplyr) # Manipulation des données
library(tidyverse) # Collection de packages pour la data science library(tidyverse) # Collection de packages pour la data science
library(knitr) # Génération de rapports dynamique library(knitr) # Génération de rapports dynamique
library(forcats)
library(broman) # Function intéressante pour R library(broman) # Function intéressante pour R
library(RColorBrewer) # Couleur des figures library(RColorBrewer) # Couleur des figures
library(ggplot2) # Création des figures library(ggplot2) # Création des figures
...@@ -25,41 +26,6 @@ library(xtable) # Jolie tableau ...@@ -25,41 +26,6 @@ library(xtable) # Jolie tableau
library(kableExtra) # Création de tableau library(kableExtra) # Création de tableau
#+end_src #+end_src
#+RESULTS:
#+begin_example
Le chargement a nécessité le package : usethis
Attachement du package : ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
✔ ggplot2 3.3.0 ✔ purrr  0.3.3
✔ tibble  3.0.0 ✔ stringr 1.4.0
✔ tidyr  1.0.2 ✔ forcats 0.5.0
✔ readr  1.3.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
Attachement du package : ‘broman’
The following object is masked from ‘package:purrr’:
done
Attachement du package : ‘kableExtra’
The following object is masked from ‘package:dplyr’:
group_rows
#+end_example
* Mise en place des données :noexport: * Mise en place des données :noexport:
** Chargement ** Chargement
...@@ -67,8 +33,6 @@ The following object is masked from ‘package:dplyr’: ...@@ -67,8 +33,6 @@ The following object is masked from ‘package:dplyr’:
simpson_data <- read.csv("Subject6_smoking.csv") simpson_data <- read.csv("Subject6_smoking.csv")
#+end_src #+end_src
#+RESULTS:
Les données sont sous la forme : Les données sont sous la forme :
| Libellé | Description | | Libellé | Description |
...@@ -86,35 +50,12 @@ head(simpson_data) ...@@ -86,35 +50,12 @@ head(simpson_data)
tail(simpson_data) tail(simpson_data)
#+end_src #+end_src
#+RESULTS:
#+begin_example
Smoker Status Age
1 Yes Alive 21.0
2 Yes Alive 19.3
3 No Dead 57.5
4 No Alive 47.1
5 Yes Alive 81.4
6 No Alive 36.8
Smoker Status Age
1309 No Alive 42.1
1310 Yes Alive 35.9
1311 No Alive 22.3
1312 Yes Dead 62.1
1313 No Dead 88.6
1314 No Alive 39.1
#+end_example
Vérification de la présence de données manquante. Vérification de la présence de données manquante.
#+begin_src R :results output :session *R* :exports both #+begin_src R :results output :session *R* :exports both
na_records <- apply(simpson_data, 1, function(x) any(is.na(x))) na_records <- apply(simpson_data, 1, function(x) any(is.na(x)))
simpson_data[na_records,] simpson_data[na_records,]
#+end_src #+end_src
#+RESULTS:
:
: [1] Smoker Status Age
: <0 lignes> (ou 'row.names' de longueur nulle)
Vérification de la classe des données et du nombre de data. Vérification de la classe des données et du nombre de data.
#+begin_src R :results output :session *R* :exports both #+begin_src R :results output :session *R* :exports both
...@@ -124,14 +65,6 @@ class(simpson_data$Status) ...@@ -124,14 +65,6 @@ class(simpson_data$Status)
class(simpson_data$Age) class(simpson_data$Age)
#+end_src #+end_src
#+RESULTS:
: [1] 1314
:
: [1] "factor"
:
: [1] "factor"
:
: [1] "numeric"
* Analyse des données * Analyse des données
** Question 1 ** Question 1
...@@ -142,18 +75,10 @@ summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "De ...@@ -142,18 +75,10 @@ summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "De
dead_or_alive$mortality <- round(dead_or_alive$mortality, 2) dead_or_alive$mortality <- round(dead_or_alive$mortality, 2)
#+end_src #+end_src
#+RESULTS:
#+begin_src R :results table :colnames yes :session *R* :exports results #+begin_src R :results table :colnames yes :session *R* :exports results
xtable(dead_or_alive) xtable(dead_or_alive)
#+end_src #+end_src
#+RESULTS:
| Smoker | Number | Alive | Dead | mortality |
|--------+--------+-------+------+-----------|
| No | 732 | 502 | 230 | 31.42 |
| Yes | 582 | 443 | 139 | 23.88 |
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* #+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
mortality <- ggplot(dead_or_alive, aes(x = Smoker, y = mortality, fill = Smoker)) + geom_bar(stat = "identity") + mortality <- ggplot(dead_or_alive, aes(x = Smoker, y = mortality, fill = Smoker)) + geom_bar(stat = "identity") +
...@@ -161,13 +86,9 @@ mortality <- ggplot(dead_or_alive, aes(x = Smoker, y = mortality, fill = Smoker) ...@@ -161,13 +86,9 @@ mortality <- ggplot(dead_or_alive, aes(x = Smoker, y = mortality, fill = Smoker)
mortality mortality
#+end_src #+end_src
#+RESULTS:
[[file:/tmp/babel-pNwaHh/figureO5jUUE.png]]
Le résultat est surprenant car on observe un plus fort taux de Le résultat est surprenant car on observe un plus fort taux de
mortalité chez les non-fumeur que chez les fumeur. mortalité chez les non-fumeur que chez les fumeur.
** Question 2 ** Question 2
On recrée un data-frame pour ne pas interagir avec les résultats On recrée un data-frame pour ne pas interagir avec les résultats
précédent. précédent.
...@@ -176,17 +97,13 @@ simpson_data_q2 <- simpson_data ...@@ -176,17 +97,13 @@ simpson_data_q2 <- simpson_data
simpson_data_q2$Age <- as.numeric(simpson_data_q2$Age) simpson_data_q2$Age <- as.numeric(simpson_data_q2$Age)
#+end_src #+end_src
#+RESULTS:
On regroupe les ages en catégories On regroupe les ages en catégories
#+begin_src R :results output :session *R* :exports both #+begin_src R :results output :session *R* :exports both
simpson_data_q2$Age <- cut(simpson_data_q2$Age, c(18, 34, 54, 64, 200), include.lowest = TRUE, labels = c("18-34", "35-54", "55-64", "plus de 65")) simpson_data_q2$Age <- cut(simpson_data_q2$Age, c(18, 34, 54, 64, 200), include.lowest = TRUE, labels = c("18-34", "35-54", "55-64", "plus de 65"))
table(simpson_data_q2$Age) table(simpson_data_q2$Age)
#+end_src #+end_src
#+RESULTS:
:
: 18-34 35-54 55-64 plus de 65
: 400 436 236 242
#+begin_src R :results output :session *R* :exports both #+begin_src R :results output :session *R* :exports both
dead_or_alive2 <- simpson_data_q2%>% dead_or_alive2 <- simpson_data_q2%>%
...@@ -198,23 +115,9 @@ mutate(mortality = (Dead/sum(Number))*100) ...@@ -198,23 +115,9 @@ mutate(mortality = (Dead/sum(Number))*100)
dead_or_alive$mortality <- round(dead_or_alive$mortality, 2) dead_or_alive$mortality <- round(dead_or_alive$mortality, 2)
#+end_src #+end_src
#+RESULTS:
#+begin_src R :results table :colnames yes :session *R* :exports results #+begin_src R :results table :colnames yes :session *R* :exports results
xtable(dead_or_alive2) xtable(dead_or_alive2)
#+end_src #+end_src
#+RESULTS:
| Smoker | Age | Number | Alive | Dead | mortality |
|--------+------------+--------+-------+------+-------------------|
| No | 18-34 | 219 | 213 | 6 | 0.819672131147541 |
| No | 35-54 | 199 | 180 | 19 | 2.59562841530055 |
| No | 55-64 | 121 | 81 | 40 | 5.46448087431694 |
| No | plus de 65 | 193 | 28 | 165 | 22.5409836065574 |
| Yes | 18-34 | 181 | 176 | 5 | 0.859106529209622 |
| Yes | 35-54 | 237 | 196 | 41 | 7.0446735395189 |
| Yes | 55-64 | 115 | 64 | 51 | 8.76288659793814 |
| Yes | plus de 65 | 49 | 7 | 42 | 7.21649484536082 |
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R* #+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
mortality2 <- ggplot(dead_or_alive2, aes(x = Smoker, y = mortality, fill = Age))+ geom_bar(stat = "identity", position = position_dodge()) + mortality2 <- ggplot(dead_or_alive2, aes(x = Smoker, y = mortality, fill = Age))+ geom_bar(stat = "identity", position = position_dodge()) +
...@@ -222,15 +125,65 @@ mortality2 <- ggplot(dead_or_alive2, aes(x = Smoker, y = mortality, fill = Age)) ...@@ -222,15 +125,65 @@ mortality2 <- ggplot(dead_or_alive2, aes(x = Smoker, y = mortality, fill = Age))
mortality2 mortality2
#+end_src #+end_src
#+RESULTS:
[[file:/tmp/babel-fRQzWg/figureR2aE0F.png]]
On observe une diminution du taux de mortalité chez les moins de 65 On observe une diminution du taux de mortalité chez les moins de 65
ans parmis les non fumeur par rapport au fumeur. Cependant, chez les ans parmis les non fumeur par rapport au fumeur. Cependant, chez les
plus de 65 ans, la tendence s'inverse avec un plus grande mortalité plus de 65 ans, la tendence s'inverse avec un plus grande mortalité
chez les fumeurs par rappor au non fumeur (3 fois plus). chez les fumeurs par rappor au non fumeur (3 fois plus).
Cela peut s'expliquer par le fait que le corps des fumeurs se soit L'inversion de ces proportions peut s'expliquer par un enrichissement
habituer aux toxines alors que les non-fumeur subissant le tabagisme en personnes agées chez les non fumeurs.
passif et ayant atteint un age où ils sont plus à risque soit plus à
même de décédé à cause des toxines du tabac. ** Question 3
On recrée un data-frame pour ne pas interagir avec les résultats
précédent.
#+begin_src R :results output :session *R* :exports both
simpson_data_q3 <- simpson_data
simpson_data_q3$Death <- factor(simpson_data_q3$Status)
simpson_data_q3$Death <- fct_recode(simpson_data_q3$Death, "1"="Alive", "0"="Dead")
simpson_data_q3$Death <- as.numeric(as.character(simpson_data_q3$Death))
simpson_data_q3$Age <- as.numeric(as.character(simpson_data_q3$Age))
#+end_src
#+begin_src R :results output :session *R* :exports both
head(simpson_data_q3)
#+end_src
#+begin_src R :results output :session *R* :exports both
reg_log_total <- ggplot(simpson_data_q3, aes(x=Age,y=Death)) + geom_point(alpha=.3,size=3) +
theme_bw() +
geom_smooth(method = "glm",
method.args = list(family = "binomial"),fullrange = TRUE)
reg_log_fumeur <- ggplot(simpson_data_q3[simpson_data_q3$Smoker == "Yes",], aes(x=Age,y=Death)) + geom_point(alpha=.3,size=3) +
theme_bw() +
geom_smooth(method = "glm",
method.args = list(family = "binomial"),fullrange = TRUE)
reg_log_non_fumeur <- ggplot(simpson_data_q3[simpson_data_q3$Smoker == "No",], aes(x=Age,y=Death)) + geom_point(alpha=.3,size=3) +
theme_bw() +
geom_smooth(method = "glm",
method.args = list(family = "binomial"),fullrange = TRUE)
#+end_src
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
reg_log_total
#+end_src
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
reg_log_fumeur
#+end_src
#+begin_src R :results output graphics :file (org-babel-temp-file "figure" ".png") :exports both :width 600 :height 400 :session *R*
reg_log_non_fumeur
#+end_src
Passer 60 ans, bien que les courbes soient semblable, on voit que l'intervalle de confiance chez les fumeurs
est plus grands que chez les non fumeur. Cela s'explique bien par une
plus faible population de personne agée chez les fumeurs.
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