library(readr)
data <- read_delim("C:/Users/amous/Downloads/sae_donnees.csv", delim = ";", escape_double = FALSE, trim_ws = TRUE)
## Rows: 83 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (12): Genre, Frenquence_travail, moy_gen, satisfaction_result_sco, somme...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
data$satisfaction_result_sco = factor(data$satisfaction_result_sco, labels = c("Non","Partiellement","Totalement"))
library(knitr)
EffSatisfaction = as.vector(table(data$satisfaction_result_sco))
Freq = EffSatisfaction/length(data$satisfaction_result_sco)
knitr::kable(data.frame(modalite = levels(data$satisfaction_result_sco), Eff = EffSatisfaction, Freq = Freq),
caption = "Description de la variable Satisfaction", booktabs = TRUE, digits = 3)
modalite | Eff | Freq |
---|---|---|
Non | 10 | 0.120 |
Partiellement | 57 | 0.687 |
Totalement | 16 | 0.193 |
barplot(table(data$satisfaction_result_sco),col="orange",density=c(NA,20,60), xlab="Satisfaction Scolaire",ylab="Effectifs", main='Effectifs des étudiants selon la satisfaction',beside=T)
barplot(table(data$satisfaction_result_sco)/nrow(data),col="red",density=c(NA,20,60), xlab="Satisfaction Scolaire",ylab="Frequence", main='Fréquence des étudiants selon la satisfaction',beside=T)
pie(table(data$moy_gen),col='slateblue1',density=c(NA,50,30,20),main='Distribution en fonction de la moyenne des étudiants')
La dataframe activité_oui contient les données sur les etudiants qui font des activitées extrascolaires et la dataframe activité_oui ceux qui en font pas
activité_oui = data |> subset(activite_extra_oui_non == "Oui")
activité_non = data |> subset(activite_extra_oui_non == "Non")
# Ceux qui pratiquent
barplot(table(activité_oui$satisfaction_result_sco)/nrow(data),col="Pink",density=c(NA,20,60), xlab="Satisfaction Scolaire",ylab="Proportion", main='Proportion des étudiants qui pratiquent des activitées selon la satisfaction',beside=T)
# Ceux qui pratiquent pas
barplot(table(activité_non$satisfaction_result_sco)/nrow(data),col="Blue",density=c(NA,20,60), xlab="Satisfaction Scolaire",ylab="Proportion", main='Proportion des étudiants qui pratiquent pas dactivitées selon la satisfaction',beside=T)
library(ggplot2)
ggplot(data) +
aes(x = satisfaction_result_sco, fill = activite_extra_oui_non) +
geom_bar() +
xlab("Satisfaction Scolaire") +
ylab("Proportions") +
labs(fill = "Pratique d'activité")
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
data$satisfaction_result_sco <- forcats::fct_explicit_na(factor(data$satisfaction_result_sco))
ggplot(data) +
aes(x = satisfaction_result_sco, fill = activite_extra_oui_non, by = activite_extra_oui_non) +
geom_bar(position = "dodge") +
theme_light()+
xlab("Satisfaction Scolaire") +
ylab("Proportions") +
labs(fill = "Pratique d'activité") +
ggtitle("Satisfaction scolaire en fonction de la Pratique d'activité") +
theme(
panel.grid = element_blank(),
panel.border = element_blank()) +
scale_fill_brewer()
L’objectif ici etant de savoir si il y a un genre qui predomine en terme d’activité. Es ce que parmi les etudiants qui font des activitées, l’ont à plus de femme que d’homme et vice versa
Tab_genre = table(activité_oui$Genre)
Tab_genre = prop.table(Tab_genre)
Tab_genre
##
## Femme Homme
## 0.21875 0.78125
barplot(Tab_genre,
col="green",density=c(20,60),xlab="Genre",ylab="Proportion", main='Proprtion des étudiants qui pratiquent en fonction du genre',beside=T)
Dans notre echantillon nous observons une proportion d’homme plus elevée que celui des femmes. Essayons d’estimiser ses valeurs à l’echelle de l’IUT
Table_Contingence = table(data$Genre,data$activite_extra_oui_non)
Table_Contingence
##
## Non Oui
## Femme 23 7
## Homme 28 25
# Créer un tableau de contingence
Tab_genre <- xtabs(~ Genre + activite_extra_oui_non, data=data)
# Effectuer le test de Fisher
fisher.test(Tab_genre)
##
## Fisher's Exact Test for Count Data
##
## data: Tab_genre
## p-value = 0.03721
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
## 0.9864801 9.4193290
## sample estimates:
## odds ratio
## 2.896308
En résumé : Il est important de souligner que les résultats montrent une association significative entre les deux variables qualitatives (selon une p-value inférieure à 0.05). Le rapport de cotes étant estimé à 2.896308 (avec un intervalle de confiance entre 0.9864801 et 9.4193290), cela signifie que les chances d’observer un individu pratiquant une activité dans l’un des genres sont 2.896308 fois plus élevées que dans l’autre genre. Il est important de noter que ces résultats ne permettent pas de déduire une causalité entre les variables mais seulement une association.
Il serait intéressant de continuer l’analyse en utilisant d’autres tests statistiques pour vérifier les différences de proportions de pratique sportive entre les deux genres, par exemple en utilisant un test de proportion pour chacun des genres.
result <- chisq.test(Table_Contingence)
result
##
## Pearson's Chi-squared test with Yates' continuity correction
##
## data: Table_Contingence
## X-squared = 3.6434, df = 1, p-value = 0.05629
Il est important de souligner que les résultats montrent une association significative entre les deux variables qualitatives (selon une p-value inférieure à 0.05). Il est également important de noter que le X-squared est de 3.6434, ce qui signifie qu’il y a une différence importante entre les fréquences observées et les fréquences attendues sous H0.
On calcule la proportion estimée en utilisant la formule : p_hat = x / n, où x est le nombre de réussites dans l’échantillon et n est la taille de l’échantillon On calcule le niveau de confiance souhaité (généralement 95%), où alpha est le niveau de signification (généralement 0.05)
Soit pf la proportion des femmes et ph celle des hommes
Hypothèse du test
L’hypothèse H0 est l’hypothèse d’éegalité des proportions: pf = ph L’hypothèse H1 est que les proportions sont différente pf <> ph
x_h = 25
n = 32
alpha = 0.05
p_hat <- x_h / n
se <- sqrt((p_hat * (1 - p_hat)) / n)
z <- qnorm(1 - (alpha/2))
lower_bound <- p_hat - z * se
upper_bound <- p_hat + z * se
lower_bound
## [1] 0.6380173
upper_bound
## [1] 0.9244827
On est certain à 95% que la proportion des hommes se situe entre [0.6380173; 0.9244827]
x_f = 7
n = 32
alpha = 0.05
p_hat <- x_f / n
se <- sqrt((p_hat * (1 - p_hat)) / n)
z <- qnorm(1 - (alpha/2))
lower_bound <- p_hat - z * se
upper_bound <- p_hat + z * se
lower_bound
## [1] 0.07551731
upper_bound
## [1] 0.3619827
On est certain à 95% que la proportion des hommes se situe entre [0.07551731; 0.3619827]
# Ceux qui pratiquent pas une activité
Tab_non_1 = table(activité_non$avenir_pro)
Tab_non_1 = prop.table(Tab_non_1)
# Ceux qui pratiquent une activité
Tab_oui_1 = table(activité_oui$avenir_pro)
Tab_oui_1 = prop.table(Tab_oui_1)
#ceux qui pratiquent
barplot(Tab_oui_1,
col="slateblue1",density=c(NA,20,60),xlab="Ressenti",ylab="Proportion", main='Ressenti des étudiants qui pratiquent',beside=T)
#ceux qui pratiquent pas
barplot(Tab_non_1,
col="magenta",density=c(NA,20,60),xlab="Ressenti",ylab="Proportion", main='Ressenti de ceux qui pratiquent pas',beside=T)
Ces graphioques peuvent laisser présager que les étudiants qui font des activitées semblent plus confiants que les autres tout sexe confondus
# Ceux qui font des activitées
chisq.test(Tab_oui_1, correct = TRUE)
## Warning in chisq.test(Tab_oui_1, correct = TRUE): L’approximation du Chi-2 est
## peut-être incorrecte
##
## Chi-squared test for given probabilities
##
## data: Tab_oui_1
## X-squared = 0.08949, df = 2, p-value = 0.9562
# Ceux qui font des activitées
chisq.test(Tab_non_1, correct = TRUE)
## Warning in chisq.test(Tab_non_1, correct = TRUE): L’approximation du Chi-2 est
## peut-être incorrecte
##
## Chi-squared test for given probabilities
##
## data: Tab_non_1
## X-squared = 0.14764, df = 2, p-value = 0.9288
Dans ce cas précis, les p-value obtenue sont de 0,9562 et 0.9288, ce qui est très proche de 1. On peut conclure que les fréquences observées dans le tableau de contingence Tab_oui_1 suivent la même distribution que les probabilités théoriques données.
#Proportion ceux qui pratiquent pas en fonction du genre
Tab_non = table(activité_non$Genre,activité_non$avenir_pro)
Tab_non = prop.table(Tab_non,2)
#Proportion ceux qui pratiquent en fonction du genre
Tab_oui = table(activité_oui$Genre,activité_oui$avenir_pro)
Tab_oui = prop.table(Tab_oui,2)
barplot(Tab_oui,
col="Purple",density=c(NA,20),xlab="Ressenti",ylab="Proportion", main='Ressenti des étudiants qui pratiquent en fonction du genre',beside=T)
legend("top",c("Femme","Homme"),bty='n',fill="Purple",density=c(NA,20),cex=1.2)
#
barplot(Tab_non,
col="cyan",density=c(NA,20),xlab="Ressenti",ylab="Proportion", main='Ressenti de ceux qui pratiquent pas en fonction du genre',beside=T)
legend("topleft",c("Femme","Homme"),bty='n',fill="cyan",density=c(NA,20),cex=1.2)
Certains etudiant ayant repondu ne pas faire d’activité on renségné qu’ils s’évadent du cours cela peut-être expliqué par le fait qu’il font autre chose qui permet cela et qui n’est pas pris en compte par notre questionnaire. On peut aussi prendre en compte le fait que notre questionnaire n’a pas été assez précis et clair pour certain qui ont répondu q’ils font pas d’activitéés
# Ceux qui font des activitées
chisq.test(Tab_oui, correct = TRUE)
## Warning in chisq.test(Tab_oui, correct = TRUE): L’approximation du Chi-2 est
## peut-être incorrecte
##
## Pearson's Chi-squared test
##
## data: Tab_oui
## X-squared = 0.71525, df = 2, p-value = 0.6993
# Ceux qui font des activitées
chisq.test(Tab_non, correct = TRUE)
## Warning in chisq.test(Tab_non, correct = TRUE): L’approximation du Chi-2 est
## peut-être incorrecte
##
## Pearson's Chi-squared test
##
## data: Tab_non
## X-squared = 0.59819, df = 2, p-value = 0.7415
Les résultats de ces deux tests du chi-deux montrent que la p-value obtenue pour chacun d’eux est supérieure à un seuil de significativité généralement utilisé (0.05) . Il est donc impossible de rejeter l’hypothèse nulle selon laquelle les fréquences observées dans les tableaux de contingence Tab_oui et Tab_non suivent la même distribution que les fréquences attendues.
Il est également important de remarquer l’avis qui accompagne ces résultats, qui indique que l’approximation du chi-deux peut être incorrecte. Cela signifie que les conditions nécessaires pour l’utilisation de ce test (indépendance et égalité des variances entre les catégories) peuvent ne pas être remplies pour ces données. Il est donc possible que les résultats obtenus ne soient pas fiables.
Il est important de noter que ces résultats ne permettent pas de tirer des conclusions sur une possible relation entre les variables qui ont été considérées dans les tableaux de contingence, mais uniquement sur la concordance entre les fréquences observées et les fréquences attendues. Il est donc important de considérer d’autres indicateurs pour évaluer la relation entre ces variables ou d’utiliser des méthodes différentes pour vérifier l’indépendance et l’égalité des variances entre les catégories.
# Tableau de contingence
Tab1 = table(activité_oui$evader_cours,activité_oui$temps_activite_extra)
Tab1
##
## 5 heures ou plus Entre 1 à 3h Entre 3 à 5h Moins de 1h
## Non 1 1 0 0
## Oui, totalement 2 11 4 0
## Oui, un peu 3 7 1 2
Le tableau peut nous laisser croire que les etudiants qui pratiquent entre 1h et 3h par semaine d’activités s’evadent plus que les autres mais qu’en est-il réelement ?
mosaicplot(Tab1, color = TRUE, main = "Evader_cours en fonction du temps d'activitées", las=1)
##Profilage ligne et colonne
# Profil ligne
round(prop.table(Tab1,1)*100,1)
##
## 5 heures ou plus Entre 1 à 3h Entre 3 à 5h Moins de 1h
## Non 50.0 50.0 0.0 0.0
## Oui, totalement 11.8 64.7 23.5 0.0
## Oui, un peu 23.1 53.8 7.7 15.4
# Profil colonne
round(prop.table(Tab1,2)*100,1)
##
## 5 heures ou plus Entre 1 à 3h Entre 3 à 5h Moins de 1h
## Non 16.7 5.3 0.0 0.0
## Oui, totalement 33.3 57.9 80.0 0.0
## Oui, un peu 50.0 36.8 20.0 100.0
##☻ Creation d’un tableau de contingence pour une meilleure comprehension
# déclaration des variables
Var.1<-activité_oui$evader_cours
Var.2<-activité_oui$temps_activite_extra
Y1 = 'Moins de 1h'
Y2 = 'Entre 1 à 3h'
Y3 = 'Entre 3 à 5h'
Y4 = '5 heures ou plus'
Z = '%'
X1 = 'Non'
X2 = 'Oui, un peu'
X3 = 'Oui, totalement'
# utilisation de fonctions descriptives.
a = table(Var.1,Var.2)
b = round(prop.table(a,1)*100,digit=1)
Total = margin.table(a,2)
# construction du tableau
Conting = rbind(a[1,],b[1,],a[2,],b[2,],a[3,],b[3,])
dimnames(Conting)<-list(c(X1,Z,X3,Z,X2,Z),c(Y4,Y2,Y3,Y1))
Total=margin.table(Conting,1)
Conting=cbind(Conting,Total)
index_c = c(4,2,3,1,5)
Conting = Conting[,index_c]
index_l = c(1,2,5,6,3,4)
Conting = Conting[index_l,]
Conting
## Moins de 1h Entre 1 à 3h Entre 3 à 5h 5 heures ou plus Total
## Non 0.0 1.0 0.0 1.0 2
## % 0.0 50.0 0.0 50.0 100
## Oui, un peu 2.0 7.0 1.0 3.0 13
## % 15.4 53.8 7.7 23.1 100
## Oui, totalement 0.0 11.0 4.0 2.0 17
## % 0.0 64.7 23.5 11.8 100
chisq.test(Tab1, correct = TRUE)
## Warning in chisq.test(Tab1, correct = TRUE): L’approximation du Chi-2 est
## peut-être incorrecte
##
## Pearson's Chi-squared test
##
## data: Tab1
## X-squared = 6.2307, df = 6, p-value = 0.3979
• X-squared représente la valeur du calcul du test de χ². • df
représente le nombre de degré de liberté, qui est la produit du (nombre
de lignes – 1) et du (nombre de colonnes -1) ->
ddl=(Nbligne-1)*(Nbcolonne-1) • p-value représente la valeur de la
probabilité en relation
avec le test
Ici on conclut qu’il n’a pas été montré de liaison statistiquement significative entre les heures d’activitées extra et le fait qu’ils s’evadent aux cours .
# H0 (hypothèse nulle) : Les données suivent une distribution équilibrée, c'est-à-dire que les fréquences observées dans chaque catégorie de la variable d'intérêt sont les mêmes que les fréquences attendues.
# Ha (hypothèse alternative) : Les données suivent pas une distribution équilibrée
fisher.test(Tab1)
##
## Fisher's Exact Test for Count Data
##
## data: Tab1
## p-value = 0.3624
## alternative hypothesis: two.sided
Ici la p-value est supérieure à 0.05, on ne rejette pas l’hypothèse nulle et on ne peut pas affirmer que la variable étudiée ne suit pas une distribution équilibrée.Il y a donc assez de preuve pour dire que la variable étudiée suit une distribution équilibrée. L’hypothèse alternative utilisée est “two.sided” qui signifie qu’on teste si la distribution observée est différente de l’équilibre attendu