From afc4611c3cb9c5cec3195b06b1c6c099a0270248 Mon Sep 17 00:00:00 2001 From: Arnaud Milet Date: Tue, 1 Oct 2024 14:50:44 +0200 Subject: [PATCH] Docs couv (#282) * maj base inserjeunes recette --- analyse/couverture_catalogue/README.html | 9 +- analyse/couverture_catalogue/README.md | 21 +- .../couverture_catalogue/base_inserjeunes.Rmd | 160 +- .../base_inserjeunes_production_2024_06.html} | 28 +- .../base_inserjeunes_recette_2024_10.html | 2842 +++++++++++++++++ ...erjeunes_avant_integration_sup_dans_ij.Rmd | 271 ++ .../couverture_catalogue/generer_rapports.R | 24 + 7 files changed, 3239 insertions(+), 116 deletions(-) rename analyse/couverture_catalogue/{base_inserjeunes.html => base_inserjeunes/base_inserjeunes_production_2024_06.html} (99%) create mode 100644 analyse/couverture_catalogue/base_inserjeunes/base_inserjeunes_recette_2024_10.html create mode 100644 analyse/couverture_catalogue/base_inserjeunes_avant_integration_sup_dans_ij.Rmd diff --git a/analyse/couverture_catalogue/README.html b/analyse/couverture_catalogue/README.html index adc5cc0a..6f0066ba 100644 --- a/analyse/couverture_catalogue/README.html +++ b/analyse/couverture_catalogue/README.html @@ -366,8 +366,15 @@

Problème

Liens vers les données de couverture

-
-

Base InserJeunes

+
+

Base InserJeunes - Production

+

Dernière mise à jour : 27/06/2024

@@ -2311,6 +2312,29 @@

Base InserJeunes

InserSup + + + + + + + + +
+Total + +Total + +NA + +NA + +68 195 + +200.0% + +Total +
diff --git a/analyse/couverture_catalogue/base_inserjeunes/base_inserjeunes_recette_2024_10.html b/analyse/couverture_catalogue/base_inserjeunes/base_inserjeunes_recette_2024_10.html new file mode 100644 index 00000000..feefa93d --- /dev/null +++ b/analyse/couverture_catalogue/base_inserjeunes/base_inserjeunes_recette_2024_10.html @@ -0,0 +1,2842 @@ + + + + + + + + + + + + + +Base InserJeunes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+
+ +
+ + + + + + + +
+

Base InserJeunes - Recette

+

Dernière mise à jour : 01/10/2024

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Niveau diplôme + +Avant/après bac + +Type diplôme + +Apprentissage + +Scolaire + +Supérieur + +Volume + +Part base + +Base +
+0 + +Avant le bac + +MC + +1 627 + +786 + +0 + +2 413 + +3.5% + +InserJeunes +
+3 + +Avant le bac + +BPA + +112 + +0 + +0 + +112 + +0.2% + +InserJeunes +
+3 + +Avant le bac + +CAP + +8 751 + +7 157 + +0 + +15 908 + +23.3% + +InserJeunes +
+3 + +Avant le bac + +CAPA + +517 + +208 + +0 + +725 + +1.1% + +InserJeunes +
+3 + +Avant le bac + +CS + +875 + +0 + +0 + +875 + +1.3% + +InserJeunes +
+3 + +Avant le bac + +CSA + +65 + +0 + +0 + +65 + +0.1% + +InserJeunes +
+3 + +Avant le bac + +DIV-5 + +434 + +0 + +0 + +434 + +0.6% + +InserJeunes +
+3 + +Avant le bac + +Titre professionnel homologué + +1 222 + +0 + +0 + +1 222 + +1.8% + +InserJeunes +
+4 + +Avant le bac + +BAC PRO + +5 194 + +12 725 + +0 + +17 919 + +26.3% + +InserJeunes +
+4 + +Avant le bac + +BAC PRO AG + +776 + +437 + +0 + +1 213 + +1.8% + +InserJeunes +
+4 + +Avant le bac + +BAC TECHNO + +6 + +0 + +0 + +6 + +0.0% + +InserJeunes +
+4 + +Avant le bac + +BMA + +63 + +0 + +0 + +63 + +0.1% + +InserJeunes +
+4 + +Avant le bac + +BP + +1 853 + +175 + +0 + +2 028 + +3.0% + +InserJeunes +
+4 + +Avant le bac + +BP JEPS + +395 + +0 + +0 + +395 + +0.6% + +InserJeunes +
+4 + +Avant le bac + +BPA + +215 + +0 + +0 + +215 + +0.3% + +InserJeunes +
+4 + +Avant le bac + +BT + +2 + +0 + +0 + +2 + +0.0% + +InserJeunes +
+4 + +Avant le bac + +CS + +439 + +0 + +0 + +439 + +0.6% + +InserJeunes +
+4 + +Avant le bac + +CSA + +288 + +0 + +0 + +288 + +0.4% + +InserJeunes +
+4 + +Avant le bac + +DIV-4 + +230 + +0 + +0 + +230 + +0.3% + +InserJeunes +
+4 + +Avant le bac + +Titre professionnel homologué + +1 276 + +0 + +0 + +1 276 + +1.9% + +InserJeunes +
+5 + +Après le bac + +BTS + +8 484 + +7 420 + +0 + +15 904 + +23.3% + +InserJeunes +
+5 + +Après le bac + +BTSA + +701 + +49 + +0 + +750 + +1.1% + +InserJeunes +
+5 + +Après le bac + +CSA + +18 + +0 + +0 + +18 + +0.0% + +InserJeunes +
+5 + +Après le bac + +DE JEPS + +75 + +0 + +0 + +75 + +0.1% + +InserJeunes +
+5 + +Après le bac + +DEUST + +45 + +0 + +0 + +45 + +0.1% + +InserJeunes +
+5 + +Après le bac + +DIV-3 + +22 + +0 + +0 + +22 + +0.0% + +InserJeunes +
+5 + +Après le bac + +DMA + +4 + +0 + +0 + +4 + +0.0% + +InserJeunes +
+5 + +Après le bac + +DUT + +436 + +0 + +0 + +436 + +0.6% + +InserJeunes +
+5 + +Après le bac + +Titre professionnel homologué + +1 373 + +0 + +0 + +1 373 + +2.0% + +InserJeunes +
+6 + +Après le bac + +DIV-2 + +8 + +0 + +0 + +8 + +0.0% + +InserJeunes +
+6 + +Après le bac + +Licence générale + +0 + +0 + +1 020 + +1 020 + +1.5% + +InserJeunes +
+6 + +Après le bac + +Licence professionnelle + +0 + +0 + +1 300 + +1 300 + +1.9% + +InserJeunes +
+6 + +Après le bac + +Master LMD + +0 + +0 + +1 432 + +1 432 + +2.1% + +InserJeunes +
+6 + +Après le bac + +Master MEEF + +0 + +0 + +40 + +40 + +0.1% + +InserJeunes +
+Total + +Total + +Total + +35 506 + +28 957 + +3 792 + +68 255 + +100.0% + +Total +
+
+ + + +
+
+ +
+ + + + + + + + + + + + + + + + diff --git a/analyse/couverture_catalogue/base_inserjeunes_avant_integration_sup_dans_ij.Rmd b/analyse/couverture_catalogue/base_inserjeunes_avant_integration_sup_dans_ij.Rmd new file mode 100644 index 00000000..d7a69e77 --- /dev/null +++ b/analyse/couverture_catalogue/base_inserjeunes_avant_integration_sup_dans_ij.Rmd @@ -0,0 +1,271 @@ +--- +title: "Base InserJeunes" +subtitle: "Formations couvertes par la base InserJeunes" +output: + html_document: + toc: true + toc_float: + toc_collapsed: true + +params: + phase: "Production" + date_maj: format(Sys.time(), '%d/%m/%Y') + emplacement_data_meta_formationsStats_init: "Donnees IJ/metabase/production/FormationsStats_2024_05_23.csv" +--- + +```{r setup, include=FALSE} +knitr::opts_chunk$set(echo = FALSE,warning = FALSE,error = FALSE,message = FALSE) + +# Chargement des librairies ---- +library(tidyverse) +library(readxl) +library(jsonlite) +library(knitr) +library(kableExtra) + +chemin_racine_data <- "../../../../0- data" + +# Données ---- +## Données BCN ---- +n_mef <- read_csv2(file.path(chemin_racine_data,"n_mef_.csv")) +n_formation_diplome <- read_delim(file.path(chemin_racine_data,"BCN/n_formation_diplome_.csv"),delim = ";", escape_double = FALSE, trim_ws = TRUE) +n_niveau_formation_diplome <- read_csv2(file.path(chemin_racine_data,"BCN/n_niveau_formation_diplome_.csv")) + +## Données IJ pour analyse de la couverture ---- +### Etablissements ---- +data_meta_formationsStats_init <- read_csv(file.path(chemin_racine_data,params$emplacement_data_meta_formationsStats_init)) + +data_meta_formationsStats_init <- data_meta_formationsStats_init %>% + setNames(names(.) %>% + str_to_lower() %>% + str_replace_all(" ", "_")) + +data_meta_formationsStats_init <- data_meta_formationsStats_init %>% + bind_cols( str_split_fixed( + data_meta_formationsStats_init$donnee_source, + pattern = ",", + n = 2 + ) %>% + as_tibble() %>% + mutate( + V1 = str_remove(V1, "\\{:code_certification "), + V2 = str_remove(V2, " :type "), + V2 = str_remove(V2, "\\}") + ) %>% + setNames(c( + "code_certification_source", "type_source" + ))) %>% + bind_cols( + str_split_fixed( + data_meta_formationsStats_init$diplome, + pattern = ",", + n = 2 + )%>% + as_tibble() %>% + mutate( + V1 = str_remove(V1, "\\{:code "), + # V1 = str_remove(V1, "\""), + V2 = str_remove(V2, " :libelle "), + V2 = str_remove(V2, "\\}") + ) %>% + setNames(c( + "niveau_diplome", "libelle_type_diplome" + )) + ) %>% + mutate( + "Couverture Taux En Emploi 6 Mois" = ifelse(is.na(taux_en_emploi_6_mois), F, T), + "Couverture Taux Autres 6 Mois" = ifelse(is.na(taux_autres_6_mois), F, T), + "Couverture Taux En poursuite" = ifelse(is.na(taux_en_formation), F, T) + ) %>% + distinct( + code_certification , + code_formation_diplome, + uai, + type_source, + filiere, + millesime, + niveau_diplome, + libelle_type_diplome, + nb_annee_term, + nb_en_emploi_6_mois, + nb_poursuite_etudes, + taux_en_emploi_6_mois, + taux_autres_6_mois, + taux_en_formation, + `Couverture Taux En Emploi 6 Mois`, + `Couverture Taux Autres 6 Mois`, + `Couverture Taux En poursuite` + ) %>% + mutate(presence_ij = T, + Avant_apres_continuum = case_when( + nb_annee_term < 20 ~ "Sous le seuil de 20 élèves", + type_source %in% c("self","nouvelle") ~ "Avant continuum", + type_source == "ancienne" ~ "Apres continuum" + ), + millesime=str_sub(millesime,-4), + Couverture=case_when( + millesime == max(millesime) & str_detect(Avant_apres_continuum, "continuum") ~ "Couvert", + Avant_apres_continuum =="Avant continuum" ~ "Couvert", + Avant_apres_continuum =="Apres continuum" ~ "Non couvert", + T~Avant_apres_continuum + ) + ) %>% + left_join(n_formation_diplome %>% + select(FORMATION_DIPLOME,NIVEAU_FORMATION_DIPLOME), + by=c("code_formation_diplome" ="FORMATION_DIPLOME") + ) %>% + left_join( + n_niveau_formation_diplome %>% + select(NIVEAU_FORMATION_DIPLOME,NIVEAU_QUALIFICATION_RNCP), + by="NIVEAU_FORMATION_DIPLOME" + ) %>% + mutate(id_unique=1:n()) + + +formation_catalogue_apprentissage <- read_csv2(file.path(chemin_racine_data,"RCO/formation_2024-01-11T11 35 57.905Z.csv")) + +formation_catalogue_apprentissage <- formation_catalogue_apprentissage %>% + mutate_all(str_remove_all,"=\"") %>% + mutate_all(str_remove_all,"\"") + + +formation_catalogue_apprentissage_long <- formation_catalogue_apprentissage %>% + # filter(`Statut Affelnet`!="non publiable en l'etat") %>% + distinct(`UAI Responsable`,`UAI formation`,`UAI formateur`,`Code du diplome ou du titre suivant la nomenclature de l'Education nationale (CodeEN)`,`Clé ministere educatif`) %>% + pivot_longer(cols = contains("Uai"),names_to = "Type UAI",values_to = "UAI",values_drop_na = TRUE) + + +formation_catalogue_apprentissage_long_comp <- formation_catalogue_apprentissage_long %>% + left_join( + data_meta_formationsStats_init %>% + filter( + filiere == "apprentissage", + millesime == "2022" + ), + by=c("UAI"="uai","Code du diplome ou du titre suivant la nomenclature de l'Education nationale (CodeEN)"="code_certification") + ) %>% + filter(!is.na(type_source)) + +formation_catalogue_apprentissage_long_comp <- formation_catalogue_apprentissage_long_comp %>% + mutate(`Type UAI`=factor(`Type UAI`,levels=c("UAI formation","UAI formateur","UAI Responsable"))) %>% + group_by(UAI,`Code du diplome ou du titre suivant la nomenclature de l'Education nationale (CodeEN)`) %>% + filter(as.numeric(`Type UAI`)==min(as.numeric(`Type UAI`))) %>% + ungroup() %>% + rename(code_certification=`Code du diplome ou du titre suivant la nomenclature de l'Education nationale (CodeEN)`) + + +ensemble_data_formationsStats <- formation_catalogue_apprentissage_long_comp %>% + bind_rows( + data_meta_formationsStats_init %>% + filter( + filiere == "pro", + millesime == "2022" + ) %>% + rename(UAI=uai) + ) + +### Insersup ---- +fr_esr_insersup <- read_excel(file.path(chemin_racine_data,"SSM/SIES/2023/insersup/fr-esr-insersup.xlsx")) + +# Base InserJeunes ---- + +stats_InserJeunes <- data_meta_formationsStats_init %>% + filter(type_source%in%c("self","ancienne"),millesime==2022) %>% + mutate( + type_formation=case_when( + as.numeric(NIVEAU_QUALIFICATION_RNCP)%in%0:4 ~ "Avant le bac", + as.numeric(NIVEAU_QUALIFICATION_RNCP)%in%5:8 ~ "Après le bac", + + niveau_diplome%in%0:4 ~ "Avant le bac", + niveau_diplome%in%5:8 ~ "Après le bac" + + ), + type_formation=factor(type_formation,levels=c("Avant le bac","Après le bac")), + libelle_type_diplome=case_when( + str_detect(libelle_type_diplome,"DIP3-CNAM")~"Titre professionnel homologué", + str_detect(libelle_type_diplome,"TH3")~"Titre professionnel homologué", + str_detect(libelle_type_diplome,"TH4")~"Titre professionnel homologué", + str_detect(libelle_type_diplome,"TH5")~"Titre professionnel homologué", + str_detect(libelle_type_diplome,"DIV-2")~"Autres diplômes", + str_detect(libelle_type_diplome,"DIV-3")~"Autres diplômes", + str_detect(libelle_type_diplome,"DIV-4")~"Autres diplômes", + str_detect(libelle_type_diplome,"DIV-5")~"Autres diplômes", + str_detect(libelle_type_diplome,"BPA")~"BPA", + str_detect(libelle_type_diplome,"CSA")~"CSA", + str_detect(libelle_type_diplome,"CS")~"CS", + str_detect(libelle_type_diplome,"ASSIMI.BTS")~"BTS", + + T~libelle_type_diplome + ), + filiere=ifelse(filiere=="pro","Scolaire",filiere) + ) %>% + filter(libelle_type_diplome!="Autres diplômes") %>% + group_by(type_formation,libelle_type_diplome,filiere) %>% + summarise(presence=n()) %>% + mutate(filiere=str_to_title(filiere)) %>% + pivot_wider(names_from = filiere,values_from = presence) %>% + mutate_all(replace_na,0) %>% + rename( + "Avant/après bac"=type_formation, + "Type diplôme"=libelle_type_diplome + ) %>% + ungroup() %>% + mutate( + Volume=Scolaire + Apprentissage, + "Part base"=prop.table(Volume), + Base="InserJeunes" + ) + + +# Base InserSup ---- + +stats_Insersup <- fr_esr_insersup %>% + filter(str_detect(`Année(s) d'obtention du diplôme prise(s) en compte`,"2021"),`Code UAI de l'établissement`!="UNIV",`Code du diplôme SISE`!="all") %>% + distinct(type_diplome,`Code du diplôme SISE`,`Code UAI de l'établissement`) %>% + mutate(`Avant/après bac`="Après le bac", + type_diplome=case_when( + type_diplome=="licence_pro"~"Licence pro", + type_diplome=="master_LMD"~"Master LMD", + type_diplome=="master_MEEF"~"Master MEEF" + ) + ) %>% + rename(`Type diplôme`=type_diplome) %>% + group_by(`Type diplôme`,`Avant/après bac`) %>% + summarise( + Volume=n() + ) %>% + ungroup() %>% + mutate( + "Part base"=prop.table(Volume), + Base="InserSup" + ) + + + +``` + + +## Base InserJeunes - `r params$phase` + +*Dernière mise à jour : `r params$date_maj`* + + +```{r} +temp <- stats_InserJeunes %>% + bind_rows(stats_Insersup) + +temp %>% + bind_rows( + temp %>% + summarise_if(is.numeric,sum) %>% + mutate( + `Avant/après bac`="Total", + `Type diplôme`="Total", + Base="Total" + ) + ) %>% + mutate(`Part base`=scales::percent(`Part base`,accuracy=0.1)) %>% + kbl(format.args = list(big.mark = " ", decimal.mark = ",")) %>% + kable_paper() +``` + diff --git a/analyse/couverture_catalogue/generer_rapports.R b/analyse/couverture_catalogue/generer_rapports.R index 422778df..ef460bba 100644 --- a/analyse/couverture_catalogue/generer_rapports.R +++ b/analyse/couverture_catalogue/generer_rapports.R @@ -3,8 +3,32 @@ library(tidyverse) library(readxl) library(rmarkdown) + setwd(dirname(rstudioapi::getSourceEditorContext()$path)) +#Base InserJeunes ---- +rmarkdown::render("base_inserjeunes_avant_integration_sup_dans_ij.Rmd", + params = list( + phase = "Production", + date_maj= "27/06/2024", + emplacement_data_meta_formationsStats_init = "Donnees IJ/metabase/production/FormationsStats_2024_05_23.csv" + ), + output_format = "html_document", + output_dir = "base_inserjeunes", + output_file = "base_inserjeunes_production_2024_06.html" +) + +rmarkdown::render("base_inserjeunes.Rmd", + params = list( + phase = "Recette", + date_maj= format(Sys.time(), '%d/%m/%Y'), + emplacement_data_meta_formationsStats_init = "Donnees IJ/metabase/recette/FormationsStats.csv" + ), + output_format = "html_document", + output_dir = "base_inserjeunes", + output_file = "base_inserjeunes_recette_2024_10.html" +) + chemin_racine_data <- "../../../../0- data" source("prepa_data_init_generique.R")