Ajout slides
This commit is contained in:
parent
8ffa0f5614
commit
5455281a42
13 changed files with 5957 additions and 15 deletions
5655
cah-analyse.html
Normal file
5655
cah-analyse.html
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -12,7 +12,6 @@ format:
|
|||
---
|
||||
|
||||
## Description des données
|
||||
|
||||
```{r}
|
||||
knitr::opts_chunk$set(echo = FALSE)
|
||||
library(ggplot2)
|
||||
|
|
@ -24,6 +23,7 @@ library(patchwork)
|
|||
library(here)
|
||||
|
||||
library(knitr)
|
||||
library(kableExtra)
|
||||
|
||||
library(dplyr)
|
||||
library(tidyr)
|
||||
|
|
@ -31,18 +31,19 @@ library(stringr)
|
|||
library(DT)
|
||||
|
||||
|
||||
data <- read.csv(file.path(here(), "data", "03_cah_results.csv"))
|
||||
colnames(data)[6:ncol(data) - 1] <- c(
|
||||
imp_data <- read.csv(file.path(here(), "data", "03_cah_results.csv"))
|
||||
colnames(imp_data)[6:ncol(imp_data) - 1] <- c(
|
||||
"1AC-OUVERTURE", "1AC-MI",
|
||||
"2A-UEchoix-S1-UC1", "2A-UEchoix-S1-UC2", "2A-UEchoix-S2-UC3",
|
||||
"2A-UEchoix-S2-UC4",
|
||||
"2A-UEchoix-S2-UC5", "2A-UEchoix-S2-UC6",
|
||||
"2A-Projet-S2"
|
||||
)
|
||||
data <- data %>%
|
||||
mutate_if(sapply(data, is.character), as.factor)
|
||||
```
|
||||
data <- imp_data %>%
|
||||
mutate_if(sapply(imp_data, is.character), as.factor)
|
||||
|
||||
effectif_cluster <- table(data[["cluster"]])
|
||||
```
|
||||
```{r}
|
||||
|
||||
data_details_sequence <- read.csv(file.path(here(), "data", "details-sequence-nettoyes.csv"))
|
||||
|
|
@ -62,10 +63,14 @@ for (code_bloc in colnames(data)[6:ncol(data) - 1]) {
|
|||
|
||||
Voici un extrait des données obtenues après tout le traitement :
|
||||
|
||||
|
||||
```{r}
|
||||
#| width: 50%
|
||||
kable(head(data[, -1], 3))
|
||||
effectif_cluster <- table(data[["cluster"]])
|
||||
#| output: asis
|
||||
example_data <- head(data[, -c(1,6:9)], 3)
|
||||
kable(example_data, format = "latex", booktabs = TRUE) %>%
|
||||
kable_styling(latex_options="scale_down") %>%
|
||||
column_spec(1:ncol(example_data),width = "3cm")
|
||||
```
|
||||
|
||||
:::{.callout-caution}
|
||||
|
|
@ -78,10 +83,10 @@ Nous avons nous même fixé ce nombre dans le fichier `03_CAH_clust.R`.
|
|||
|
||||
|
||||
```{r}
|
||||
nb_3A_min <- 0
|
||||
nb_3A_min <- 10
|
||||
data <- data %>%
|
||||
group_by(dominante3A) %>%
|
||||
mutate(dominante3A = ifelse(n() < nb_3A_min, "Autre", dominante3A))
|
||||
mutate(dominante3A = ifelse(n() < nb_3A_min, as.character("Autre"), as.character(dominante3A))) %>% mutate(dominante3A = as.factor(dominante3A))
|
||||
```
|
||||
|
||||
Les dominantes de 3A sont nombreuses, nous allons donc rassembler celles dont
|
||||
|
|
@ -115,8 +120,6 @@ plot_prop_cluster <- function(orig_data, eff, ...) {
|
|||
}
|
||||
```
|
||||
|
||||
:::{.panel-tabset}
|
||||
|
||||
### Graphiques
|
||||
|
||||
```{r}
|
||||
|
|
@ -137,9 +140,6 @@ htmltools::tagList(lapply(vec_sequences, function(sequence) {
|
|||
```
|
||||
|
||||
|
||||
:::
|
||||
|
||||
|
||||
# CAH par dominante
|
||||
|
||||
```{r}
|
||||
|
|
|
|||
BIN
slides.pdf
Normal file
BIN
slides.pdf
Normal file
Binary file not shown.
153
slides.qmd
Normal file
153
slides.qmd
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
---
|
||||
execute:
|
||||
echo: false
|
||||
warning: false
|
||||
fig-width: 10
|
||||
fig-height: 10
|
||||
format:
|
||||
beamer:
|
||||
theme: Boadilla
|
||||
---
|
||||
|
||||
```{r}
|
||||
knitr::opts_chunk$set(echo = FALSE)
|
||||
library(ggplot2)
|
||||
library(plotly)
|
||||
library(ggokabeito)
|
||||
library(RColorBrewer)
|
||||
library(patchwork)
|
||||
|
||||
library(here)
|
||||
|
||||
library(knitr)
|
||||
library(kableExtra)
|
||||
|
||||
library(dplyr)
|
||||
library(tidyr)
|
||||
library(stringr)
|
||||
library(DT)
|
||||
|
||||
|
||||
imp_data <- read.csv(file.path(here(), "data", "03_cah_results.csv"))
|
||||
colnames(imp_data)[6:ncol(imp_data) - 1] <- c(
|
||||
"1AC-OUVERTURE", "1AC-MI",
|
||||
"2A-UEchoix-S1-UC1", "2A-UEchoix-S1-UC2", "2A-UEchoix-S2-UC3",
|
||||
"2A-UEchoix-S2-UC4",
|
||||
"2A-UEchoix-S2-UC5", "2A-UEchoix-S2-UC6",
|
||||
"2A-Projet-S2"
|
||||
)
|
||||
data <- imp_data %>%
|
||||
mutate_if(sapply(imp_data, is.character), as.factor)
|
||||
|
||||
effectif_cluster <- table(data[["cluster"]])
|
||||
```
|
||||
```{r}
|
||||
|
||||
data_details_sequence <- read.csv(file.path(here(), "data", "details-sequence-nettoyes.csv"))
|
||||
|
||||
for (code_bloc in colnames(data)[6:ncol(data) - 1]) {
|
||||
# code_bloc <- "1AC-OUVERTURE"
|
||||
matching_code_cours <- data_details_sequence[which(data_details_sequence[["code_bloc"]] == code_bloc), c("code_cours", "cours")]
|
||||
row_id_in_matching <- which(matching_code_cours[["code_cours"]] %in% levels(data[[code_bloc]]))
|
||||
levels(data[[code_bloc]]) <- matching_code_cours[row_id_in_matching, "cours"]
|
||||
}
|
||||
```
|
||||
|
||||
# Présentation des données
|
||||
|
||||
```{r}
|
||||
#| width: 50%
|
||||
#| tab-cap: Extrait des données traitement et nettoyage ($N = 370$ étudiants)
|
||||
example_data <- head(data[, -c(1,6:9)], 3)
|
||||
kable(example_data, format = "latex", booktabs = TRUE) %>%
|
||||
kable_styling(latex_options="scale_down") %>%
|
||||
column_spec(1:ncol(example_data),width = "3cm")
|
||||
```
|
||||
|
||||
:::{.callout-warning appearance="minimal"}
|
||||
\small
|
||||
**Problème :** Il y a beaucoup de `NA` (des données manquantes), cela peut-être dûe à une
|
||||
mauvaise extraction, à de mauvaises correspondances quand j'ai croisé les
|
||||
sources.
|
||||
:::
|
||||
|
||||
```{r}
|
||||
getPalette <- colorRampPalette(colors = palette_okabe_ito())
|
||||
plot_prop_cluster <- function(orig_data, eff, ...) {
|
||||
data <- orig_data
|
||||
|
||||
colorCount <- length(unique(data[["uc"]]))
|
||||
levels(data$cluster) <- paste0(levels(data$cluster), " (N=", eff, ")")
|
||||
p <- ggplot(data, ...) +
|
||||
aes(x = "", y = nb, fill = uc, label = nb) +
|
||||
geom_bar(position = "fill", stat = "identity") +
|
||||
theme_bw() +
|
||||
xlab("Cluster") +
|
||||
ylab("Proportion dans le cluster") +
|
||||
labs(fill = "Choix") +
|
||||
theme(axis.title.y = element_text(angle = 90, vjust = .5, hjust = 1), aspect.ratio = 1) +
|
||||
theme(legend.position = "bottom", text=element_text(size=20)) +
|
||||
guides(fill = guide_legend(ncol = 2, byrow = TRUE)) +
|
||||
scale_fill_manual(values = getPalette(colorCount), ) +
|
||||
# coord_flip() +
|
||||
scale_x_discrete() +
|
||||
# coord_polar("y", start=0) +
|
||||
facet_wrap(vars(data[["cluster"]]))
|
||||
|
||||
return(p)
|
||||
}
|
||||
```
|
||||
|
||||
# Extraits de résultats
|
||||
|
||||
```{r parcours_domaine}
|
||||
#| layout-ncol: 2
|
||||
#| fig-cap: "Résultats pour les parcours et les domaines"
|
||||
#| fig-subcap: ""
|
||||
vec_sequences <- c("parcours", "domaine2A")#, "2A-UEchoix-S1-UC1")
|
||||
ac <- NULL
|
||||
for (sequence in vec_sequences){
|
||||
ac <- as.data.frame(table(data[["cluster"]], data[[sequence]], useNA = "ifany"))
|
||||
colnames(ac) <- c("cluster", "uc", "nb")
|
||||
ac <- ac %>%
|
||||
group_by(cluster) %>%
|
||||
mutate(Prop = nb / sum(nb), uc = str_wrap(uc, 32))
|
||||
p <- ac %>% plot_prop_cluster(eff = effectif_cluster) + ggtitle(str_wrap(paste("Proportion pour", sequence), 20))
|
||||
print(p)
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
```{r domaine_uc1}
|
||||
#| layout-ncol: 2
|
||||
#| fig-cap: "Résultats pour les domaines et les UC1"
|
||||
#| fig-subcap: ""
|
||||
vec_sequences <- c("domaine2A", "2A-UEchoix-S1-UC1")#, "2A-UEchoix-S1-UC1")
|
||||
ac <- NULL
|
||||
for (sequence in vec_sequences){
|
||||
ac <- as.data.frame(table(data[["cluster"]], data[[sequence]], useNA = "ifany"))
|
||||
colnames(ac) <- c("cluster", "uc", "nb")
|
||||
ac <- ac %>%
|
||||
group_by(cluster) %>%
|
||||
mutate(Prop = nb / sum(nb), uc = str_wrap(uc, 32))
|
||||
p <- ac %>% plot_prop_cluster(eff = effectif_cluster) + ggtitle(str_wrap(paste("Proportion pour", sequence), 20))
|
||||
print(p)
|
||||
}
|
||||
```
|
||||
|
||||
# En bref
|
||||
## Disponible dès maintenant
|
||||
|
||||
- Accès au détails pour chaque UCs à choix.
|
||||
- Toutes les données vous seront communiquées afin que vous puissiez vous en servir.
|
||||
- Nous avons accès à ces données par dominante également[^1].
|
||||
|
||||
## A améliorer pour pérenniser
|
||||
|
||||
- Avec de **meilleures données** (moins de `NA`, des noms de matières à jour avec Synapses) c'est une analyse très simple et rapide.
|
||||
- Avec **plus de données** (plusieurs années et promos) possible de dégager des tendances[^longnote].
|
||||
- Donc facilement automatisable et *peut aider à comprendre les choix des étudiants*.
|
||||
|
||||
[^1]: Pour les dominantes avec au moins 20 étudiants.
|
||||
[^longnote]: Ici l'analyse a été faite uniquement sur la promo diplomée cet avril 2024.
|
||||
BIN
slides_files/figure-beamer/domaine_uc1-1.pdf
Normal file
BIN
slides_files/figure-beamer/domaine_uc1-1.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/domaine_uc1-2.pdf
Normal file
BIN
slides_files/figure-beamer/domaine_uc1-2.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_domaine-1.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_domaine-1.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_domaine-2.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_domaine-2.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_domaine_uc1-1.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_domaine_uc1-1.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_domaine_uc1-2.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_domaine_uc1-2.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_uc1-1.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_uc1-1.pdf
Normal file
Binary file not shown.
BIN
slides_files/figure-beamer/parcours_uc1-2.pdf
Normal file
BIN
slides_files/figure-beamer/parcours_uc1-2.pdf
Normal file
Binary file not shown.
134
tmp-pdfcrop-72848.tex
Normal file
134
tmp-pdfcrop-72848.tex
Normal file
|
|
@ -0,0 +1,134 @@
|
|||
\catcode37 14 % percent
|
||||
\catcode33 12 % exclam
|
||||
\catcode34 12 % quote
|
||||
\catcode35 6 % hash
|
||||
\catcode39 12 % apostrophe
|
||||
\catcode40 12 % left parenthesis
|
||||
\catcode41 12 % right parenthesis
|
||||
\catcode45 12 % minus
|
||||
\catcode46 12 % period
|
||||
\catcode60 12 % less
|
||||
\catcode61 12 % equals
|
||||
\catcode62 12 % greater
|
||||
\catcode64 12 % at
|
||||
\catcode91 12 % left square
|
||||
\catcode93 12 % right square
|
||||
\catcode96 12 % back tick
|
||||
\catcode123 1 % left curly brace
|
||||
\catcode125 2 % right curly brace
|
||||
\catcode126 12 % tilde
|
||||
\catcode`\#=6 %
|
||||
\escapechar=92 %
|
||||
\def\IfUndefined#1#2#3{%
|
||||
\begingroup\expandafter\expandafter\expandafter\endgroup
|
||||
\expandafter\ifx\csname#1\endcsname\relax
|
||||
#2%
|
||||
\else
|
||||
#3%
|
||||
\fi
|
||||
}
|
||||
\def\pdffilehex{736C696465735F66696C65732F6669677572652D6265616D65722F646F6D61696E655F7563312D312E706466}
|
||||
\IfUndefined{pdfunescapehex}{%
|
||||
\begingroup
|
||||
\gdef\pdffile{}%
|
||||
\def\do#1#2{%
|
||||
\ifx\relax#2\relax
|
||||
\ifx\relax#1\relax
|
||||
\else
|
||||
\errmessage{Invalid hex string, should not happen!}%
|
||||
\fi
|
||||
\else
|
||||
\lccode`0="#1#2\relax
|
||||
\lowercase{%
|
||||
\xdef\pdffile{\pdffile0}%
|
||||
}%
|
||||
\expandafter\do
|
||||
\fi
|
||||
}%
|
||||
\expandafter\do\pdffilehex\relax\relax
|
||||
\endgroup
|
||||
}{%
|
||||
\edef\pdffile{\pdfunescapehex{\pdffilehex}}%
|
||||
}
|
||||
\immediate\write-1{Input file: \pdffile}
|
||||
\pdfcompresslevel=9 \pdfoutput=1 %
|
||||
\csname pdfmapfile\endcsname{}
|
||||
\def\setpdfversion#1#2{%
|
||||
\IfUndefined{pdfobjcompresslevel}{%
|
||||
}{%
|
||||
\ifnum#1=1 %
|
||||
\ifnum#2<5
|
||||
\pdfobjcompresslevel=0 %
|
||||
\else
|
||||
\pdfobjcompresslevel=2 %
|
||||
\fi
|
||||
\fi
|
||||
}%
|
||||
\IfUndefined{pdfminorversion}{%
|
||||
\IfUndefined{pdfoptionpdfminorversion}{%
|
||||
}{%
|
||||
\pdfoptionpdfminorversion=#2\relax
|
||||
}%
|
||||
}{%
|
||||
\pdfminorversion=#2\relax
|
||||
\IfUndefined{pdfmajorversion}{%
|
||||
\ifnum#2=0 \pdfminorversion=5\fi}
|
||||
{\pdfmajorversion=#1\relax}%
|
||||
}%
|
||||
}
|
||||
\def\page #1 [#2 #3 #4 #5]{%
|
||||
\count0=#1\relax
|
||||
\setbox0=\hbox{%
|
||||
\pdfximage page #1 mediabox{\pdffile}%
|
||||
\pdfrefximage\pdflastximage
|
||||
}%
|
||||
\pdfhorigin=-#2bp\relax
|
||||
\pdfvorigin=#3bp\relax
|
||||
\pdfpagewidth=#4bp\relax
|
||||
\advance\pdfpagewidth by -#2bp\relax
|
||||
\pdfpageheight=#5bp\relax
|
||||
\advance\pdfpageheight by -#3bp\relax
|
||||
\ht0=\pdfpageheight
|
||||
\shipout\box0\relax
|
||||
}
|
||||
\def\pageclip #1 [#2 #3 #4 #5][#6 #7 #8 #9]{%
|
||||
\count0=#1\relax
|
||||
\dimen0=#4bp\relax \advance\dimen0 by -#2bp\relax
|
||||
\edef\imagewidth{\the\dimen0}%
|
||||
\dimen0=#5bp\relax \advance\dimen0 by -#3bp\relax
|
||||
\edef\imageheight{\the\dimen0}%
|
||||
\pdfximage page #1 mediabox{\pdffile}%
|
||||
\setbox0=\hbox{%
|
||||
\kern -#2bp\relax
|
||||
\lower #3bp\hbox{\pdfrefximage\pdflastximage}%
|
||||
}%
|
||||
\wd0=\imagewidth\relax
|
||||
\ht0=\imageheight\relax
|
||||
\dp0=0pt\relax
|
||||
\pdfhorigin=#6pt\relax
|
||||
\pdfvorigin=#7bp\relax
|
||||
\pdfpagewidth=\imagewidth
|
||||
\advance\pdfpagewidth by #6bp\relax
|
||||
\advance\pdfpagewidth by #8bp\relax
|
||||
\pdfpageheight=\imageheight\relax
|
||||
\advance\pdfpageheight by #7bp\relax
|
||||
\advance\pdfpageheight by #9bp\relax
|
||||
\pdfxform0\relax
|
||||
\shipout\hbox{\pdfrefxform\pdflastxform}%
|
||||
}%
|
||||
\def\pageinclude#1{%
|
||||
\pdfhorigin=0pt\relax
|
||||
\pdfvorigin=0pt\relax
|
||||
\pdfximage page #1 mediabox{\pdffile}%
|
||||
\setbox0=\hbox{\pdfrefximage\pdflastximage}%
|
||||
\pdfpagewidth=\wd0\relax
|
||||
\pdfpageheight=\ht0\relax
|
||||
\advance\pdfpageheight by \dp0\relax
|
||||
\shipout\hbox{%
|
||||
\raise\dp0\box0\relax
|
||||
}%
|
||||
}
|
||||
\setpdfversion{1}{4}
|
||||
\page 1 [43 9 684 715]
|
||||
\csname @@end\endcsname
|
||||
\end
|
||||
Loading…
Add table
Reference in a new issue