From 2e2ccaadbb76fed7379070813652553bb2362c4d Mon Sep 17 00:00:00 2001 From: Adam Taheraly Date: Sun, 5 Apr 2020 02:04:30 +0200 Subject: [PATCH] reponse devoir --- module3/exo3/exercice_R_fr.html | 368 ++++++++++++++++++-------- module3/exo3/exercice_R_fr.html~ | 427 +++++++++++++++++++++++++++++++ module3/exo3/exercice_R_fr.org | 165 +++++------- 3 files changed, 753 insertions(+), 207 deletions(-) create mode 100644 module3/exo3/exercice_R_fr.html~ diff --git a/module3/exo3/exercice_R_fr.html b/module3/exo3/exercice_R_fr.html index 18fea93..ada105f 100644 --- a/module3/exo3/exercice_R_fr.html +++ b/module3/exo3/exercice_R_fr.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Autour du Paradoxe de Simpson @@ -240,187 +240,353 @@ for the JavaScript code in this tag.

Table des matières

-
-

1 Chargement des librairies R

-
-
-

2 Mise en place des données

-
+
+

1 Analyse des données

+
-
-

2.1 Chargement

-
+
+

1.1 Question 1

+
-
simpson_data <- read.csv("Subject6_smoking.csv")
+
dead_or_alive <- simpson_data%>%
+  group_by(Smoker)%>%
+summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "Dead"), mortality = (sum(Status == "Dead")/n())*100)
+dead_or_alive$mortality <- round(dead_or_alive$mortality, 2)
 
-

-Les données sont sous la forme : -

- -++ ++ ++ + - - + + + + + - - + + + + + - - - - - - - + + + + +
LibelléDescriptionSmokerNumberAliveDeadmortality
SmokerFume (Yes) ou non (No)No73250223031.42
StatusEn vie (Alive) ou mort (Dead)
AgeAge du sujetYes58244313923.88
+ + +
+
mortality <- ggplot(dead_or_alive, aes(x = Smoker, y = mortality, fill = Smoker)) + geom_bar(stat = "identity") + 
+    labs(x = "Smoker", y = "Mortality rate", title = "Mortality rate by behaviour")
+mortality
+
+
+ +

+figurezRqW9s.png +Le résultat est surprenant car on observe un plus fort taux de +mortalité chez les non-fumeur que chez les fumeur. +

-
-

2.2 Vérification

-
+ +
+

1.2 Question 2

+

-Vérification du bon chargement des données en visualisant le début et -la fin des données. +On recrée un data-frame pour ne pas interagir avec les résultats +précédent.

-
head(simpson_data)
-tail(simpson_data)
+
simpson_data_q2 <- simpson_data
+simpson_data_q2$Age <- as.numeric(simpson_data_q2$Age)
 
+

+On regroupe les ages en catégories +

+
+
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)
+
+
-  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
+
+18-34      35-54      55-64 plus de 65 
+  400        436        236        242
+
 
-

-Vérification de la présence de données manquante. -

-
na_records <- apply(simpson_data, 1, function(x) any(is.na(x)))
-simpson_data[na_records,]
+
dead_or_alive2 <- simpson_data_q2%>%
+  group_by(Smoker, Age)%>%
+summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "Dead"))%>%
+ungroup()%>%
+group_by(Smoker)%>%
+mutate(mortality = (Dead/sum(Number))*100)
+dead_or_alive$mortality <- round(dead_or_alive$mortality, 2)
 
-
+
+
+
+++
++
++
++
++
++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
-[1] Smoker Status Age   
-<0 lignes> (ou 'row.names' de longueur nulle)
+
+
+
+
+
+
+
+
 
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SmokerAgeNumberAliveDeadmortality
No18-3421921360.819672131147541
No35-54199180192.59562841530055
No55-6412181405.46448087431694
Noplus de 651932816522.5409836065574
Yes18-3418117650.859106529209622
Yes35-54237196417.0446735395189
Yes55-6411564518.76288659793814
Yesplus de 65497427.21649484536082
+ + +
+
mortality2 <- ggplot(dead_or_alive2, aes(x = Smoker, y = mortality, fill = Age))+ geom_bar(stat = "identity", position = position_dodge()) + 
+    labs(x = "Smoker", y = "Mortality rate", title = "Mortality rate by behaviour")
+mortality2
 
+
+ + +
+

figureQLQAz5.png +

+

-Vérification de la classe des données et du nombre de data. +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 +plus de 65 ans, la tendence s'inverse avec un plus grande mortalité +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 +habituer aux toxines alors que les non-fumeur subissant le tabagisme +passif et ayant atteint un age où ils sont plus à risque soit plus à +même de décédé à cause des toxines du tabac. +

+
+
+ +
+

1.3 Question 3

+
+

+On recrée un data-frame pour ne pas interagir avec les résultats +précédent. +

+ +
+
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))
+
+
+
-
nrow(simpson_data)
-class(simpson_data$Smoker)
-class(simpson_data$Status)
-class(simpson_data$Age)
+
head(simpson_data_q3)
 
-[1] 1314
+  Smoker Status  Age Death
+1    Yes  Alive 21.0     1
+2    Yes  Alive 19.3     1
+3     No   Dead 57.5     0
+4     No  Alive 47.1     1
+5    Yes  Alive 81.4     1
+6     No  Alive 36.8     1
 
-[1] "factor"
+
-[1] "factor" +
+
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)
 
-[1] "numeric"
+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)
 
+ +
+
reg_log
+
-
-
-

3 Analyse des données

-
+ +
+

figureSDZwCf.png +

-
-

3.1 Question 1

-
+
-
dead_or_alive <- simpson_data%>%
-  group_by(Smoker)%>%
-summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "Dead"), mortality_rate = (sum(Status == "Dead")/n())*100)
-xtable(dead_or_alive)
+
reg_log_fumeur
 
-
 
-% latex table generated in R 3.6.3 by xtable 1.8-4 package
-% Fri Apr  3 16:36:26 2020
-\begin{table}[ht]
-\centering
-\begin{tabular}{rlrrrr}
-  \hline
- & Smoker & Number & Alive & Dead & mortality\_rate \\ 
-  \hline
-1 & No & 732 & 502 & 230 & 31.42 \\ 
-  2 & Yes & 582 & 443 & 139 & 23.88 \\ 
-   \hline
-\end{tabular}
-\end{table}
+
+

figureu04D5C.png +

+
+ +
+
reg_log_non_fumeur
 
+ +

+figuregIqfqf.png +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. Il est donc possible qu'il y +est moins de mort chez les fumeurs car le corps est habitué à la cigarette.

+

Date: \daily

Auteur: Adam Taheraly

-

Created: 2020-04-03 ven. 16:36

+

Created: 2020-04-05 dim. 01:48

Validate

diff --git a/module3/exo3/exercice_R_fr.html~ b/module3/exo3/exercice_R_fr.html~ new file mode 100644 index 0000000..18fea93 --- /dev/null +++ b/module3/exo3/exercice_R_fr.html~ @@ -0,0 +1,427 @@ + + + + + + + +Autour du Paradoxe de Simpson + + + + + + + + + + + + +
+

Autour du Paradoxe de Simpson

+ + +
+

1 Chargement des librairies R

+
+
+

2 Mise en place des données

+
+
+
+

2.1 Chargement

+
+
+
simpson_data <- read.csv("Subject6_smoking.csv")
+
+
+ +

+Les données sont sous la forme : +

+ + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + +
LibelléDescription
SmokerFume (Yes) ou non (No)
StatusEn vie (Alive) ou mort (Dead)
AgeAge du sujet
+
+
+ + +
+

2.2 Vérification

+
+

+Vérification du bon chargement des données en visualisant le début et +la fin des données. +

+
+
head(simpson_data)
+tail(simpson_data)
+
+
+ +
+  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
+
+ +

+Vérification de la présence de données manquante. +

+
+
na_records <- apply(simpson_data, 1, function(x) any(is.na(x)))
+simpson_data[na_records,]
+
+
+ +
+
+[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. +

+
+
nrow(simpson_data)
+class(simpson_data$Smoker)
+class(simpson_data$Status)
+class(simpson_data$Age)
+
+
+ +
+[1] 1314
+
+[1] "factor"
+
+[1] "factor"
+
+[1] "numeric"
+
+
+
+
+
+ +
+

3 Analyse des données

+
+
+
+

3.1 Question 1

+
+
+
dead_or_alive <- simpson_data%>%
+  group_by(Smoker)%>%
+summarise(Number = n(), Alive = sum(Status == "Alive"), Dead = sum(Status == "Dead"), mortality_rate = (sum(Status == "Dead")/n())*100)
+xtable(dead_or_alive)
+
+
+ +
+
+% latex table generated in R 3.6.3 by xtable 1.8-4 package
+% Fri Apr  3 16:36:26 2020
+\begin{table}[ht]
+\centering
+\begin{tabular}{rlrrrr}
+  \hline
+ & Smoker & Number & Alive & Dead & mortality\_rate \\ 
+  \hline
+1 & No & 732 & 502 & 230 & 31.42 \\ 
+  2 & Yes & 582 & 443 & 139 & 23.88 \\ 
+   \hline
+\end{tabular}
+\end{table}
+
+
+
+
+
+
+

Date: \daily

+

Auteur: Adam Taheraly

+

Created: 2020-04-03 ven. 16:36

+

Validate

+
+ + diff --git a/module3/exo3/exercice_R_fr.org b/module3/exo3/exercice_R_fr.org index f23b2c8..2b50c9f 100644 --- a/module3/exo3/exercice_R_fr.org +++ b/module3/exo3/exercice_R_fr.org @@ -17,6 +17,7 @@ library(devtools) # Obtention des informations sur la session R library(dplyr) # Manipulation des données library(tidyverse) # Collection de packages pour la data science library(knitr) # Génération de rapports dynamique +library(forcats) library(broman) # Function intéressante pour R library(RColorBrewer) # Couleur des figures library(ggplot2) # Création des figures @@ -25,41 +26,6 @@ library(xtable) # Jolie tableau library(kableExtra) # Création de tableau #+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: ** Chargement @@ -67,8 +33,6 @@ The following object is masked from ‘package:dplyr’: simpson_data <- read.csv("Subject6_smoking.csv") #+end_src -#+RESULTS: - Les données sont sous la forme : | Libellé | Description | @@ -86,35 +50,12 @@ head(simpson_data) tail(simpson_data) #+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. #+begin_src R :results output :session *R* :exports both na_records <- apply(simpson_data, 1, function(x) any(is.na(x))) simpson_data[na_records,] #+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. #+begin_src R :results output :session *R* :exports both @@ -124,14 +65,6 @@ class(simpson_data$Status) class(simpson_data$Age) #+end_src -#+RESULTS: -: [1] 1314 -: -: [1] "factor" -: -: [1] "factor" -: -: [1] "numeric" * Analyse des données ** Question 1 @@ -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) #+end_src -#+RESULTS: - #+begin_src R :results table :colnames yes :session *R* :exports results xtable(dead_or_alive) #+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* 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) mortality #+end_src -#+RESULTS: -[[file:/tmp/babel-pNwaHh/figureO5jUUE.png]] Le résultat est surprenant car on observe un plus fort taux de mortalité chez les non-fumeur que chez les fumeur. - - ** Question 2 On recrée un data-frame pour ne pas interagir avec les résultats précédent. @@ -176,17 +97,13 @@ simpson_data_q2 <- simpson_data simpson_data_q2$Age <- as.numeric(simpson_data_q2$Age) #+end_src -#+RESULTS: + On regroupe les ages en catégories #+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")) table(simpson_data_q2$Age) #+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 dead_or_alive2 <- simpson_data_q2%>% @@ -198,23 +115,9 @@ mutate(mortality = (Dead/sum(Number))*100) dead_or_alive$mortality <- round(dead_or_alive$mortality, 2) #+end_src -#+RESULTS: - #+begin_src R :results table :colnames yes :session *R* :exports results xtable(dead_or_alive2) #+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* 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)) mortality2 #+end_src -#+RESULTS: -[[file:/tmp/babel-fRQzWg/figureR2aE0F.png]] - 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 plus de 65 ans, la tendence s'inverse avec un plus grande mortalité 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 -habituer aux toxines alors que les non-fumeur subissant le tabagisme -passif et ayant atteint un age où ils sont plus à risque soit plus à -même de décédé à cause des toxines du tabac. +L'inversion de ces proportions peut s'expliquer par un enrichissement +en personnes agées chez les non fumeurs. + +** 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. + -- 2.18.1