Nom : Terras
Prénom : Omar
Numéro étudiant : 22309268
f22309268 <- function(labelx = "x",
titre = "Analyse bivariée des données",
labely = "y",
typevar2,
var1,
var2) {
df <- data.frame(v1 = var1, v2 = var2)
if (typevar2 == "numeric") {
p <- ggplot(df, aes(x = v1, y = v2)) +
geom_boxplot(fill = "skyblue", color = "black") +
labs(title = titre, x = labelx, y = labely) +
theme_minimal()
} else if (typevar2 == "factor") {
p <- ggplot(df, aes(x = v1, fill = v2)) +
geom_bar(position = "fill") +
labs(title = titre, x = labelx, y = "Proportion", fill = labely) +
theme_minimal()
}
return(p)
}
data1 <- read.csv("donnees1.csv", header = TRUE, sep = ";", dec = ".")
data2 <- read.table("donnees2.txt", header = TRUE, sep = "\t", dec = ".")
str(data1)
## 'data.frame': 100 obs. of 8 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ age : int 47 56 46 70 51 46 40 46 49 39 ...
## $ poids : chr "71,6" "58,65" "116,84" "96,45" ...
## $ taille: int 158 164 208 186 195 188 193 165 164 196 ...
## $ alcool: int 0 7 3 3 2 0 5 0 0 3 ...
## $ sexe : int 1 1 1 1 1 0 1 0 1 1 ...
## $ ronfle: chr "N" "O" "N" "N" ...
## $ tabac : chr "O" "N" "O" "O" ...
str(data2)
## 'data.frame': 100 obs. of 2 variables:
## $ ID : int 31 79 51 14 67 42 50 43 97 25 ...
## $ sport: chr "missing" "missing" "jamais " "régulier " ...
data <- merge(data1, data2)
data <- na.omit(data)
cat("Le jeu de données contient", nrow(data), "individus après nettoyage.")
## Le jeu de données contient 100 individus après nettoyage.
str(data)
## 'data.frame': 100 obs. of 9 variables:
## $ ID : int 1 2 3 4 5 6 7 8 9 10 ...
## $ age : int 47 56 46 70 51 46 40 46 49 39 ...
## $ poids : chr "71,6" "58,65" "116,84" "96,45" ...
## $ taille: int 158 164 208 186 195 188 193 165 164 196 ...
## $ alcool: int 0 7 3 3 2 0 5 0 0 3 ...
## $ sexe : int 1 1 1 1 1 0 1 0 1 1 ...
## $ ronfle: chr "N" "O" "N" "N" ...
## $ tabac : chr "O" "N" "O" "O" ...
## $ sport : chr "jamais " "très régulier " "occasionnel " "occasionnel " ...
summary(data)
## ID age poids taille
## Min. : 1.00 Min. :23.00 Length:100 Min. :158.0
## 1st Qu.: 25.75 1st Qu.:43.00 Class :character 1st Qu.:166.0
## Median : 50.50 Median :52.00 Mode :character Median :186.0
## Mean : 50.50 Mean :52.27 Mean :181.1
## 3rd Qu.: 75.25 3rd Qu.:62.25 3rd Qu.:194.0
## Max. :100.00 Max. :74.00 Max. :208.0
## alcool sexe ronfle tabac
## Min. : 0.00 Min. :0.00 Length:100 Length:100
## 1st Qu.: 0.00 1st Qu.:0.75 Class :character Class :character
## Median : 2.00 Median :1.00 Mode :character Mode :character
## Mean : 2.95 Mean :0.75
## 3rd Qu.: 4.25 3rd Qu.:1.00
## Max. :15.00 Max. :1.00
## sport
## Length:100
## Class :character
## Mode :character
##
##
##
Réponse :
Les variables quantitatives sont numériques, par exemple
age.
Les variables qualitatives sont catégorielles, par exemple
sexe, filiere et ronfle.
names(data)
## [1] "ID" "age" "poids" "taille" "alcool" "sexe" "ronfle" "tabac"
## [9] "sport"
data$sexe <- as.factor(data$sexe)
data$ronfle <- as.factor(data$ronfle)
levels(data$filiere)
## NULL
data$age.classe <- cut(data$age,
breaks = c(23, 35.75, 48.5, 61.25, 74),
right = FALSE,
include.lowest = TRUE)
table(data$age.classe)
##
## [23,35.8) [35.8,48.5) [48.5,61.2) [61.2,74]
## 6 36 31 27
f22309268(labelx = "Sexe",
titre = "Répartition du ronflement selon le sexe",
labely = "Ronflement",
typevar2 = "factor",
var1 = data$sexe,
var2 = data$ronfle)
Réponse :
Le graphique permet de comparer les proportions de ronfleurs selon le
sexe.
Si les proportions sont différentes entre les modalités de
sexe, alors les variables semblent liées.
Si les proportions sont proches, alors il ne semble pas y avoir de lien
évident.
tab_contingence <- table(data$sexe, data$ronfle)
prop.table(tab_contingence, margin = 1)
##
## N O
## 0 0.8 0.2
## 1 0.6 0.4
tab <- table(data$sexe, data$ronfle)
effectifs_theoriques <- outer(rowSums(tab), colSums(tab)) / sum(tab)
stat_chi2 <- sum((tab - effectifs_theoriques)^2 / effectifs_theoriques)
ddl <- (nrow(tab) - 1) * (ncol(tab) - 1)
seuil_critique <- qchisq(0.93, ddl)
if (stat_chi2 > seuil_critique) {
resultat_test <- "On rejette l'hypothèse d'indépendance : les variables sexe et ronfle semblent liées au risque de 7%."
} else {
resultat_test <- "On ne rejette pas l'hypothèse d'indépendance : on ne peut pas conclure à un lien entre sexe et ronfle au risque de 7%."
}
cat("Valeur du Chi2 :", stat_chi2, "\n")
## Valeur du Chi2 : 3.296703
cat("Degrés de liberté :", ddl, "\n")
## Degrés de liberté : 1
cat("Seuil critique :", seuil_critique, "\n")
## Seuil critique : 3.28302
cat("Conclusion :", resultat_test)
## Conclusion : On rejette l'hypothèse d'indépendance : les variables sexe et ronfle semblent liées au risque de 7%.