title: "Module 3 Paradoxe de simpson" author: "Auriane Mens" date: "2025-11-16" output: html_document editor_options: markdown: wrap: 72 --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` # *Question 1* #Nombres total de femmes vivanteset décédées sur la période en fonction des habitudes liés au tabagisme library(dplyr) data \<- read.csv("C:/Users/auria/OneDrive - Institut Catholique de Lille/Bureau/Subject6_smoking.csv") head(data) summary(data) # Filtrer les femmes concernées dataF \<- data %\>% filter(Smoker %in% c("Yes", "No")) head(dataF) # Tableau croisé table_smoke \<- table(dataF$Smoker, dataF$Status) colnames(table_smoke) \<- c("Dead", "Alive") \# Renommer pour plus de clarté # Ajouter une colonne Total table_smoke \<- cbind(table_smoke, Total = rowSums(table_smoke)) table_smoke # Transformer en data frame pour plus de clarté table_smoke_df \<- data.frame( Smoker = rownames(table_smoke), Dead = table_smoke[, "Dead"], Alive = table_smoke[, "Alive"] ) # Calculer le taux de mortalité table_smoke_df$Mortality_Rate <- table_smoke_df$Dead / table_smoke_df\$Total table_smoke_df library(ggplot2) # Ajouter Total et taux de mortalité table_smoke_df$Total <- table_smoke_df$Dead + table_smoke_df$Alive table_smoke_df$Mortality_Rate \<- table_smoke_df$Dead / table_smoke_df$Total table_smoke_df #Graphique library(ggplot2) ggplot(table_smoke_df, aes(x = Smoker, y = Mortality_Rate, fill = Smoker)) + geom_bar(stat = "identity") + ylab("Taux de mortalité sur 20 ans") + xlab("Tabagisme") + ggtitle("Taux de mortalité selon le tabagisme") + scale_fill_manual(values=c("red", "green")) + theme_minimal() #Le résultat est surprenant car le taux de mortalité est légèrement plus élevé chez les fumeurs que chez les non fumeurs. Il n'ya pas beaucoup de diffrences. #*Question 2* # Créer des classes d'âge dataF$AgeClass <- cut( dataF$Age, breaks = c(18, 34, 54, 64, Inf), labels = c("18-34", "35-54", "55-64", "65+"), right = TRUE ) # Vérifier table(dataF$AgeClass) # Tableau croisé table_age <- as.data.frame(ftable(dataF$Smoker, dataF$AgeClass, dataF$Status)) colnames(table_age) <- c("Smoker", "AgeClass", "Status", "Freq") # Séparer Dead et Alive library(dplyr) library(tidyr) table_summary <- table_age %>% tidyr::pivot_wider(names_from = Status, values_from = Freq, values_fill = 0) %>% mutate( Total = Alive + Dead, Mortality_Rate = Dead / Total ) table_summary #Graphique du taux e mortalité par âge et par tabagime library(ggplot2) ggplot(table_summary, aes(x = AgeClass, y = Mortality_Rate, fill = Smoker)) + geom_bar(stat = "identity", position = "dodge") + ylab("Taux de mortalité sur 20 ans") + xlab("Classe d'âge") + ggtitle("Taux de mortalité selon le tabagisme et l'âge") + scale_fill_manual(values=c("red", "green")) + theme_minimal() #Explication du paradoxe #Globalement, les fumeuses ont un taux de mortalité plus élevé, comme montré précédemment. Cependant, stratifié par âge : les fumeuses peuvent avoir un taux de mortalité inférieur à celui des non-fumeuses dans chaque tranche. Cela s'explique par le fait que les fumeuses sont souvent plus jeunes dans l'échantillon.Les non-fumeuses incluent proportionnellement plus de femmes âgées, donc plus à risque de décès. # *Question 3* #Régression logistiqu #Création de la variable Death dataF$Death <- ifelse(dataF$Status == "Dead", 1, 0) # Fumeuses smokers <- dataF %>% filter(Smoker == "Yes") model_smokers <- glm(Death ~ Age, data = smokers, family = binomial) # Non-fumeuses nonsmokers <- dataF %>% filter(Smoker == "No") model_nonsmokers <- glm(Death ~ Age, data = nonsmokers, family = binomial) summary(model_smokers) summary(model_nonsmokers) library(ggplot2) # Préparer les données pour les prédictions age_range <- data.frame(Age = seq(min(dataF$Age), max(dataF$Age), length.out = 100)) # Prédictions pour fumeuses age_range$Death_smokers <- predict(model_smokers, newdata = age_range, type = "response") # Prédictions pour non-fumeuses age_range$Death_nonsmokers <- predict(model_nonsmokers, newdata = age_range, type = "response") # Transformer en long format pour ggplot library(tidyr) age_plot <- age_range %>% pivot_longer(cols = c(Death_smokers, Death_nonsmokers), names_to = "Group", values_to = "Death_Prob") %>% mutate(Group = ifelse(Group == "Death_smokers", "Smokers", "Non-smokers")) # Graphique ggplot(age_plot, aes(x = Age, y = Death_Prob, color = Group)) + geom_line(size = 1) + ylab("Probabilité de décès sur 20 ans") + xlab("Âge initial") + ggtitle("Régression logistique : probabilité de décès selon l'âge et le tabagisme") + scale_color_manual(values = c("red", "green")) + theme_minimal() #Discussion #La probabilité de décès augmente avec l’âge dans les deux groupes, comme attendu. #À âge égal, les fumeuses ont toujours une probabilité de décès plus élevée que les non-fumeuses, ce qui confirme la nocivité du tabagisme.Cette approche évite le biais du paradoxe de Simpson, car elle compare les individus à âge égal au lieu de faire des regroupements arbitraires. A noter selon le graphique que cette tendance s'inverse à partir d'un certains âge, notamment du à d'autres multiples facteurs.