0% ont trouvé ce document utile (0 vote)
248 vues14 pages

Mini-Projet en R: Master en Finance, Actuariat & Data Science

Ce mini-projet en R analyse les résultats académiques de 400 étudiants, chacun ayant 11 notes par matière, afin d'évaluer leur performance et d'identifier des axes d'amélioration. Le projet inclut des étapes de chargement, nettoyage et exploration des données, ainsi que des statistiques descriptives et des visualisations pour représenter les résultats. Les conclusions mettent en lumière les tendances académiques et suggèrent des pistes pour des analyses futures.

Transféré par

Nesrine ZARROUK
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
248 vues14 pages

Mini-Projet en R: Master en Finance, Actuariat & Data Science

Ce mini-projet en R analyse les résultats académiques de 400 étudiants, chacun ayant 11 notes par matière, afin d'évaluer leur performance et d'identifier des axes d'amélioration. Le projet inclut des étapes de chargement, nettoyage et exploration des données, ainsi que des statistiques descriptives et des visualisations pour représenter les résultats. Les conclusions mettent en lumière les tendances académiques et suggèrent des pistes pour des analyses futures.

Transféré par

Nesrine ZARROUK
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Mini-projet en R

Master en Finance, Actuariat & Data Science

encadré par: Pr. Smail Ait El Asri

Préparé par : ZARROUK NESRINE


Table des matières

I. INTRODUCTION 3

II. CHARGEMENT ET EXPLORATION DES DONNEES 4

Etape 1 : créer un projet R 4

Etape 2 : ajouter la base de donnees etudiants , et etre de l’extenction de Fichier CSV Microsoft Excel (.csv) 4

Etape 3 : 4

Etape 4 : Afficher les 10 premières lignes du dataframe avec head(etudiants, 10). 4

Etape 5 : Utiliser la fonction str(etudiants) pour examiner la structure des données. 5

Etape 6 : Utiliser la fonction summary(etudiants) pour obtenir un résumé statistique (min, max, médiane, moyenne,
etc.) de chaque variable. 5

Conclusion : 6

III. NETTOYAGE EVENTUEL 7

IV. STATISTIQUES DESCRIPTIVES PAR ETUDIANT 8

V. STATISTIQUES DESCRIPTIVES PAR MATIERE 10

V. CALCUL DES STATISTIQUES PAR MATIERE 11

a. Calcul des statistiques pour chaque matière 11

b. Quelle matière a la moyenne la plus élevée et la plus faible ? 12

c. Quelle matière présente la plus grande dispersion ? 12

d. Analyse des distributions de notes 12

Interprétation possible : 13

VI. VISUALISATION DES DONNEES 13

1. Médiane des matières : 13

2. Dispersion des notes : 13

3. Présence de valeurs aberrantes : 13

Ajout des couleurs adaptées à ggplot2 : 13

Ajout d’informations supplémentaires : 14

CONCLUSION 14
I. Introduction

Dans ce mini-projet, nous nous intéressons à l'analyse des résultats académiques de 400

étudiants, chacun ayant obtenu 11 notes par matière, afin d'obtenir une vue d'ensemble de leur

performance académique. L'objectif principal de ce projet est d'examiner non seulement la

performance moyenne des étudiants, mais aussi la variabilité de leurs résultats au sein de

chaque matière. Cela nous permettra d'identifier des points forts ainsi que des axes

d'amélioration, en analysant des tendances potentielles ou des disparités dans la réussite des

étudiants.

En plus de cette analyse des résultats académiques, ce projet constitue également une

occasion d'approfondir nos compétences dans l'utilisation de R. Nous mettrons en œuvre

différentes techniques de manipulation de données, telles que le nettoyage et la préparation

des données, ainsi que des analyses statistiques avancées pour interpréter les résultats de

manière rigoureuse. La visualisation graphique, à travers des graphiques nous permettra de

représenter de manière claire et concise les insights obtenus et de mieux comprendre les

relations entre les différentes variables.

Ce projet servira donc à la fois de base pour une analyse académique détaillée et de terrain

d'apprentissage pour maîtriser les outils statistiques et graphiques de R


II. Chargement et exploration des donnees
Etape 1 : créer un projet R

Etape 2 : ajouter la base de donnees etudiants , et etre sur de l’extenction de Fichier


CSV Microsoft Excel (.csv)
Etape 3 :
Activer la page dans l’application R et Charger le fichier CSV etudiants.csv dans un dataframe
nommé etudiants en utilisant la fonction read.csv() .
Avec le code
df_etudiants <- read.csv("etudiants.csv", sep = ";")

Etape 4 : Afficher les 10 premières lignes du dataframe avec head(etudiants, 10).

Avec le code :: head(df_etudiants, 10)


Etape 5 : Utiliser la fonction str(etudiants) pour examiner la structure des données.

Avec le code :: str(df_etudiants)

Etape 6 : Utiliser la fonction summary(etudiants) pour obtenir un résumé statistique


(min, max, médiane, moyenne, etc.) de chaque variable.

Avec le code :: summary(df_etudiants)

conclusion :
observations faites sur les résultats des fonctions str() et summary()
Résultats de str(df_etudiants) :

Le dataframe contient 400 observations et 11 variables.

Les variables "Nom" et "Prenom" sont de type character, ce qui est logique car elles
contiennent du texte.

Les autres variables (Math, Physique, Anglais, Chimie, Biologie, Histoire, Géographie,
Français, Sport) sont de type numérique (num), ce qui est cohérent car elles représentent des
notes.

Résultats de summary(df_etudiants) :

Les variables Nom et Prenom ne sont pas résumées numériquement car elles sont de type
character.

Pour les matières, on observe plusieurs statistiques utiles :

Min et Max : Les notes varient entre 5.0 et 20.0 pour toutes les matières.

Médiane et Moyenne :

 La médiane des matières tourne autour de 12, ce qui suggère une


distribution relativement équilibrée.
 Les moyennes sont également proches de 12, confirmant une
distribution assez normale des notes.

Premier et troisième quartile :

 Le premier quartile (Q1) est autour de 8.5 (25% des étudiants ont une
note ≤ 8.5).
 Le troisième quartile (Q3) est autour de 16 (75% des étudiants ont une
note ≤ 16).
o Aucune valeur aberrante apparente (toutes les notes sont entre 5 et 20, donc
pas d’anomalie).

Conclusion :

 Les notes semblent suivre une distribution attendue, avec une moyenne autour de 12.
 La répartition est plutôt équilibrée, sans valeurs extrêmes ou incohérentes.
 On pourrait aller plus loin avec des visualisations (histogrammes, boxplots) pour
mieux comprendre la répartition des notes.
III. Nettoyage éventuel

Vérifier s'il existe des valeurs manquantes ou aberrantes.

Avec le code : anyNA(df_etudiants)

Vérifier si des notes sont en dehors de l'intervalle attendu [5, 20 ]


Avec le code :: sapply(df_etudiants[, 3:11], function(x) any(x < 5 | x > 20))

Vérifier s'il des données manquantes ou des incohérences dans les notes ?
Avec le code : colSums(is.na(df_etudiants))
IV. Statistiques descriptives par etudiant
Calculer la moyenne des notes de chaque étudiant sur l’ensemble des
matières.
Les notes des étudiants sont stockées dans les colonnes 3 à 11 (Math à
Sport)
Donc On ajoute la colonne Moyenne au dataframe :

Avec le code ::

moyenne_etudiants <- rowMeans(df_etudiants[, 3:11], na.rm = TRUE)

df_etudiants$Moyenne <- moyenne_etudiants

Calculer l’écart-type des notes pour chaque étudiant et ajouter


ce résultat dans une nouvelle colonne, par exemple Std.
Avec le code
# Ajouter la colonne Moyenne au dataframe

df_etudiants$Moyenne <- moyenne_etudiants

# Calculer l'écart-type des notes de chaque étudiant

df_etudiants$Std <- apply(df_etudiants[, 3:11], 1, sd, na.rm = TRUE)

Quels étudiants présentent la plus grande variabilité dans leurs notes ?


justifier
On cherche les étudiants avec les écarts-types les plus élevés, car cela signifie que leurs notes
varient beaucoup d'une matière à l'autre.

Trouver les étudiants avec la plus grande variabilité

Avec le code ::

etudiants_max_variabilite <- df_etudiants[order(df_etudiants$Std, decreasing = TRUE), ][1:5, ]


V. Statistiques descriptives par matiere
I.
II. Créer un nouveau DataFrame nommé stats_par_matiere dont les lignes
correspondent aux matières (Math, Physique, etc.) et les colonnes aux statistiques:
III. Calculer les statistiques descriptives pour chaque matière
IV. Avec le code ::
V. stats_par_matiere <- data.frame(
VI. Moyenne = sapply(notes_matiere, mean, na.rm = TRUE),
VII. Std = sapply(notes_matiere, sd, na.rm = TRUE),
VIII. Variance = sapply(notes_matiere, var, na.rm = TRUE),
IX. Médiane = sapply(notes_matiere, median, na.rm = TRUE),
X. Min = sapply(notes_matiere, min, na.rm = TRUE),
XI. Max = sapply(notes_matiere, max, na.rm = TRUE)
XII. )
XIII. print(stats_par_matiere)

On peut aussi afficher ces statistiques sous forme de barplot pour comparer les matières.

Avec le code ::barplot(stats_par_matiere$Moyenne, names.arg = colnames(notes_matiere),


col = "lightblue"main = "Moyenne des notes par matière", las = 2)
V. Calcul des statistiques par matiere
a. Calcul des statistiques pour chaque matière

On utilise sapply() pour calculer différentes statistiques sur les matières (Math à Sport).

Avec le code :: notes_matiere <- df_etudiants[, 3:11]


stats_par_matiere <- data.frame(
Moyenne = sapply(notes_matiere, mean, na.rm = TRUE),
Std = sapply(notes_matiere, sd, na.rm = TRUE),
Variance = sapply(notes_matiere, var, na.rm = TRUE),
Médiane = sapply(notes_matiere, median, na.rm = TRUE),
Min = sapply(notes_matiere, min, na.rm = TRUE),
Max = sapply(notes_matiere, max, na.rm = TRUE))
print(stats_par_matiere)
b. Quelle matière a la moyenne la plus élevée et la plus faible ?

On identifie les matières avec les moyennes maximale et minimale.

Avec le code :: matiere_max_moyenne <- names(which.max(stats_par_matiere$Moyenne))


matiere_min_moyenne <- names(which.min(stats_par_matiere$Moyenne))
cat(" La matière avec la moyenne la plus élevée est :", matiere_max_moyenne, "\n")
cat(" La matière avec la moyenne la plus faible est :", matiere_min_moyenne, "\n")

c. Quelle matière présente la plus grande dispersion ?

Avec le code ::

matiere_plus_variable <- rownames(stats_par_matiere)[which.max(stats_par_matiere$Std)

cat(" La matière avec la plus grande dispersion des notes est :", matiere_plus_variable, "\n")

d. Analyse des distributions de notes


On peut visualiser la dispersion des notes avec un boxplot.

Avec le code ::

boxplot(notes_matiere, main = "Distribution des notes par matière",

col = rainbow(ncol(notes_matiere)), las = 2, ylab = "Notes")


Interprétation possible :

Si une matière a une petite boîte, cela signifie que les notes sont concentrées autour de la
médiane (distributions resserrées).

Si une matière a une grande boîte ou de longs moustaches, cela signifie qu’il y a beaucoup
de variabilité dans les notes (distributions dispersées).

Les points au-dessus ou en dessous des moustaches sont des valeurs aberrantes.

VI. Visualisation des Données

1. Médiane des matières :

Les médianes des différentes matières semblent relativement proches (autour de 12-
13).

Certaines matières ont une médiane légèrement plus élevée ou plus basse, ce qui peut
indiquer des matières plus difficiles ou plus accessibles.

2. Dispersion des notes :

La largeur des boxplots montre la variabilité des notes pour chaque matière.

Certaines matières ont une plage plus large, indiquant une forte hétérogénéité des
performances des étudiants.

D’autres matières sont plus resserrées, suggérant que les étudiants ont des résultats plus
homogènes.

3. Présence de valeurs aberrantes :

On peut voir quelques points en dehors des moustaches, ce qui pourrait indiquer des
valeurs aberrantes (étudiants avec des notes extrêmement hautes ou basses).

Ajout des couleurs adaptées à ggplot2 :


 Le code actuel semble utiliser boxplot() en R de base, mais ggplot2 permet un meilleur
contrôle graphique.
 On pourrait utiliser un dégradé de couleurs plus lisible.

Ajout d’informations supplémentaires :

 Ajouter des moyennes en plus des médianes.


 Afficher les valeurs aberrantes avec des annotations

*Choix des visualisations

1. **Histogrammes** des notes pour voir la distribution par matière.

2. **Boxplots** pour comparer les dispersions entre matières.

3. **Diagrammes de dispersion** pour détecter les corrélations entre les matières.

** Réalisation avec ggplot2

library(ggplot2)

# Histogramme des notes par matière

ggplot(df_etudiants, aes(x=Maths)) + geom_histogram(binwidth=2, fill="blue", alpha=0.5) +


theme_minimal()

# Boxplot des notes par matière

ggplot(melt(df_etudiants[, -1]), aes(x=variable, y=value)) +

geom_boxplot(fill="lightblue") + theme_minimal() + labs(x="Matière", y="Note")

Conclusion
Ce projet a permis de mettre en évidence les tendances académiques des étudiants et de repérer les
matières ayant les notes les plus dispersées. L'utilisation de R a été essentielle pour la manipulation
des données et la visualisation des résultats. De futures analyses pourraient inclure l'étude des
corrélations entre matières ou l'impact d'autres variables sur les performances académiques.

Vous aimerez peut-être aussi